> Wrap(3.0)  @ = Wrap(5.0)
Wrap(3) @= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Eq(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: false
###
> Wrap(3.0)  $ = Wrap(5.0)
Wrap(3) $= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) $= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 36

Func sig: () to b
Type: bool, Value: false
###
> Wrap(3.0)  @<  Wrap(5.0)
Wrap(3) @< Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @< Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Lt(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0)  @<= Wrap(5.0)
Wrap(3) @<= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @<= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Le(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0)  @>= Wrap(5.0)
Wrap(3) @>= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @>= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Ge(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: false
###
> Wrap(3.0)  @>  Wrap(5.0)
Wrap(3) @> Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @> Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Gt(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: false
###
> Wrap(3.0) !@ = Wrap(5.0)
Wrap(3) !@= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) !@= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Eq(r8, r8):bool
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 42

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0) !$ = Wrap(5.0)
Wrap(3) !$= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) !$= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      2) ceq
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0) !@<  Wrap(5.0)
Wrap(3) !@< Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @>= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Ge(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: false
###
> Wrap(3.0) !@<= Wrap(5.0)
Wrap(3) !@<= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @> Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Gt(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: false
###
> Wrap(3.0) !@>= Wrap(5.0)
Wrap(3) !@>= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @< Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Lt(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0) !@>  Wrap(5.0)
Wrap(3) !@> Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @<= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Le(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0)  @ = Wrap(5)
Wrap(3) @= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @= Num<r8>(Call(∂.Test.Wrap(5:i8):i8))))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      1) ldc.i4.5
      1) conv.i8
      5) call static WrapFuncGen::Exec(i8):i8
      1) conv.r8
      5) call static NumUtil::Eq(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 33

Func sig: () to b
Type: bool, Value: false
###
> Wrap(3.0)  $ = Wrap(5)
Wrap(3) $= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) $= Num<r8>(Call(∂.Test.Wrap(5:i8):i8))))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      1) ldc.i4.5
      1) conv.i8
      5) call static WrapFuncGen::Exec(i8):i8
      1) conv.r8
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 30

Func sig: () to b
Type: bool, Value: false
###
> Wrap(3.0)  @<  Wrap(5)
Wrap(3) @< Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @< Num<r8>(Call(∂.Test.Wrap(5:i8):i8))))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      1) ldc.i4.5
      1) conv.i8
      5) call static WrapFuncGen::Exec(i8):i8
      1) conv.r8
      5) call static NumUtil::Lt(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 33

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0)  @<= Wrap(5)
Wrap(3) @<= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @<= Num<r8>(Call(∂.Test.Wrap(5:i8):i8))))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      1) ldc.i4.5
      1) conv.i8
      5) call static WrapFuncGen::Exec(i8):i8
      1) conv.r8
      5) call static NumUtil::Le(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 33

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0)  @>= Wrap(5)
Wrap(3) @>= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @>= Num<r8>(Call(∂.Test.Wrap(5:i8):i8))))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      1) ldc.i4.5
      1) conv.i8
      5) call static WrapFuncGen::Exec(i8):i8
      1) conv.r8
      5) call static NumUtil::Ge(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 33

Func sig: () to b
Type: bool, Value: false
###
> Wrap(3.0)  @>  Wrap(5)
Wrap(3) @> Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @> Num<r8>(Call(∂.Test.Wrap(5:i8):i8))))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      1) ldc.i4.5
      1) conv.i8
      5) call static WrapFuncGen::Exec(i8):i8
      1) conv.r8
      5) call static NumUtil::Gt(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 33

Func sig: () to b
Type: bool, Value: false
###
> Wrap(3.0) !@ = Wrap(5)
Wrap(3) !@= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) !@= Num<r8>(Call(∂.Test.Wrap(5:i8):i8))))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      1) ldc.i4.5
      1) conv.i8
      5) call static WrapFuncGen::Exec(i8):i8
      1) conv.r8
      5) call static NumUtil::Eq(r8, r8):bool
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 36

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0) !$ = Wrap(5)
Wrap(3) !$= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) !$= Num<r8>(Call(∂.Test.Wrap(5:i8):i8))))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      1) ldc.i4.5
      1) conv.i8
      5) call static WrapFuncGen::Exec(i8):i8
      1) conv.r8
      2) ceq
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 33

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0) !@<  Wrap(5)
Wrap(3) !@< Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @>= Num<r8>(Call(∂.Test.Wrap(5:i8):i8))))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      1) ldc.i4.5
      1) conv.i8
      5) call static WrapFuncGen::Exec(i8):i8
      1) conv.r8
      5) call static NumUtil::Ge(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 33

Func sig: () to b
Type: bool, Value: false
###
> Wrap(3.0) !@<= Wrap(5)
Wrap(3) !@<= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @> Num<r8>(Call(∂.Test.Wrap(5:i8):i8))))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      1) ldc.i4.5
      1) conv.i8
      5) call static WrapFuncGen::Exec(i8):i8
      1) conv.r8
      5) call static NumUtil::Gt(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 33

Func sig: () to b
Type: bool, Value: false
###
> Wrap(3.0) !@>= Wrap(5)
Wrap(3) !@>= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @< Num<r8>(Call(∂.Test.Wrap(5:i8):i8))))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      1) ldc.i4.5
      1) conv.i8
      5) call static WrapFuncGen::Exec(i8):i8
      1) conv.r8
      5) call static NumUtil::Lt(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 33

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0) !@>  Wrap(5)
Wrap(3) !@> Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @<= Num<r8>(Call(∂.Test.Wrap(5:i8):i8))))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      1) ldc.i4.5
      1) conv.i8
      5) call static WrapFuncGen::Exec(i8):i8
      1) conv.r8
      5) call static NumUtil::Le(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 33

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0)  @ = Wrap(0/0)
Wrap(3) @= Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @= Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Eq(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: false
###
> Wrap(3.0)  $ = Wrap(0/0)
Wrap(3) $= Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) $= Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 36

Func sig: () to b
Type: bool, Value: false
###
> Wrap(3.0)  @<  Wrap(0/0)
Wrap(3) @< Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @< Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Lt(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: false
###
> Wrap(3.0)  @<= Wrap(0/0)
Wrap(3) @<= Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @<= Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Le(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: false
###
> Wrap(3.0)  @>= Wrap(0/0)
Wrap(3) @>= Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @>= Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Ge(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0)  @>  Wrap(0/0)
Wrap(3) @> Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @> Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Gt(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0) !@ = Wrap(0/0)
Wrap(3) !@= Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) !@= Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Eq(r8, r8):bool
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 42

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0) !$= Wrap(0/0)
Wrap(3) !$= Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) !$= Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      2) ceq
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0) !@<  Wrap(0/0)
Wrap(3) !@< Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @>= Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Ge(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0) !@<= Wrap(0/0)
Wrap(3) !@<= Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @> Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Gt(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0) !@>= Wrap(0/0)
Wrap(3) !@>= Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @< Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Lt(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: false
###
> Wrap(3.0) !@>  Wrap(0/0)
Wrap(3) !@> Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @<= Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Le(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: false
###
> Wrap(0/0)  @ = Wrap(5.0)
Wrap(0 / 0) @= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) @= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Eq(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: false
###
> Wrap(0/0)  $ = Wrap(5.0)
Wrap(0 / 0) $= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) $= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 36

Func sig: () to b
Type: bool, Value: false
###
> Wrap(0/0)  @<  Wrap(5.0)
Wrap(0 / 0) @< Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) @< Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Lt(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(0/0)  @<= Wrap(5.0)
Wrap(0 / 0) @<= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) @<= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Le(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(0/0)  @>= Wrap(5.0)
Wrap(0 / 0) @>= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) @>= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Ge(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: false
###
> Wrap(0/0)  @>  Wrap(5.0)
Wrap(0 / 0) @> Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) @> Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Gt(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: false
###
> Wrap(0/0) !@ = Wrap(5.0)
Wrap(0 / 0) !@= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) !@= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Eq(r8, r8):bool
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 42

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(0/0) !$=  Wrap(5.0)
Wrap(0 / 0) !$= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) !$= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      2) ceq
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(0/0) !@<  Wrap(5.0)
Wrap(0 / 0) !@< Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) @>= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Ge(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: false
###
> Wrap(0/0) !@<= Wrap(5.0)
Wrap(0 / 0) !@<= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) @> Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Gt(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: false
###
> Wrap(0/0) !@>= Wrap(5.0)
Wrap(0 / 0) !@>= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) @< Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Lt(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(0/0) !@>  Wrap(5.0)
Wrap(0 / 0) !@> Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) @<= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Le(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(0/0)  @ = Wrap(0/0)
Wrap(0 / 0) @= Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) @= Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Eq(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(0/0)  $ = Wrap(0/0)
Wrap(0 / 0) $= Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) $= Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 36

Func sig: () to b
Type: bool, Value: false
###
> Wrap(0/0)  @<  Wrap(0/0)
Wrap(0 / 0) @< Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) @< Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Lt(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: false
###
> Wrap(0/0)  @<= Wrap(0/0)
Wrap(0 / 0) @<= Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) @<= Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Le(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(0/0)  @>= Wrap(0/0)
Wrap(0 / 0) @>= Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) @>= Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Ge(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(0/0)  @>  Wrap(0/0)
Wrap(0 / 0) @> Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) @> Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Gt(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: false
###
> Wrap(0/0) !@ = Wrap(0/0)
Wrap(0 / 0) !@= Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) !@= Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Eq(r8, r8):bool
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 42

Func sig: () to b
Type: bool, Value: false
###
> Wrap(0/0) !$=  Wrap(0/0)
Wrap(0 / 0) !$= Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) !$= Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      2) ceq
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(0/0) !@<  Wrap(0/0)
Wrap(0 / 0) !@< Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) @>= Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Ge(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(0/0) !@<= Wrap(0/0)
Wrap(0 / 0) !@<= Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) @> Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Gt(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: false
###
> Wrap(0/0) !@>= Wrap(0/0)
Wrap(0 / 0) !@>= Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) @< Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Lt(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: false
###
> Wrap(0/0) !@>  Wrap(0/0)
Wrap(0 / 0) !@> Wrap(0 / 0) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(NaN:r8):r8) @<= Call(∂.Test.Wrap(NaN:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      9) ldc.r8 [NaN]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Le(r8, r8):bool
      5) box [bool]
      1) ret
  Total Size: 39

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0)  @ = Wrap(Null(5.0))
Wrap(3) @= Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @= Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      5) call static NumUtil::Eq(r8, r8):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 61

Func sig: () to b
Type: bool, Value: false
###
> Wrap(3.0)  $ = Wrap(Null(5.0))
Wrap(3) $= Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) $= Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 58

Func sig: () to b
Type: bool, Value: false
###
> Wrap(3.0)  @<  Wrap(Null(5.0))
Wrap(3) @< Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @< Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      5) call static NumUtil::Lt(r8, r8):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 61

Func sig: () to b
Type: bool, Value: false
###
> Wrap(3.0)  @<= Wrap(Null(5.0))
Wrap(3) @<= Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @<= Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      5) call static NumUtil::Le(r8, r8):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 61

Func sig: () to b
Type: bool, Value: false
###
> Wrap(3.0)  @>= Wrap(Null(5.0))
Wrap(3) @>= Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @>= Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      5) call static NumUtil::Ge(r8, r8):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 61

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0)  @>  Wrap(Null(5.0))
Wrap(3) @> Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @> Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      5) call static NumUtil::Gt(r8, r8):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 61

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0) !@ = Wrap(Null(5.0))
Wrap(3) !@= Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) !@= Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      5) call static NumUtil::Eq(r8, r8):bool
      1) ldc.i4.0
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 64

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0) !$=  Wrap(Null(5.0))
Wrap(3) !$= Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) !$= Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      2) ceq
      1) ldc.i4.0
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 61

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0) !@<  Wrap(Null(5.0))
Wrap(3) !@< Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @>= Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      5) call static NumUtil::Ge(r8, r8):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 61

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0) !@<= Wrap(Null(5.0))
Wrap(3) !@<= Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @> Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      5) call static NumUtil::Gt(r8, r8):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 61

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0) !@>= Wrap(Null(5.0))
Wrap(3) !@>= Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @< Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      5) call static NumUtil::Lt(r8, r8):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 61

Func sig: () to b
Type: bool, Value: false
###
> Wrap(3.0) !@>  Wrap(Null(5.0))
Wrap(3) !@> Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(3:r8):r8) @<= Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      9) ldc.r8 [3]
      5) call static WrapFuncGen::Exec(r8):r8
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      5) call static NumUtil::Le(r8, r8):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 61

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(3.0))  @ = Wrap(5.0)
Wrap(Null(3)) @= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) @= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Eq(r8, r8):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 61

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(3.0))  $ = Wrap(5.0)
Wrap(Null(3)) $= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) $= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 58

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(3.0))  @<  Wrap(5.0)
Wrap(Null(3)) @< Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) @< Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Lt(r8, r8):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 61

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(3.0))  @<= Wrap(5.0)
Wrap(Null(3)) @<= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) @<= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Le(r8, r8):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 61

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(3.0))  @>= Wrap(5.0)
Wrap(Null(3)) @>= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) @>= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Ge(r8, r8):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 61

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(3.0))  @>  Wrap(5.0)
Wrap(Null(3)) @> Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) @> Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Gt(r8, r8):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 61

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(3.0)) !@ = Wrap(5.0)
Wrap(Null(3)) !@= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) !@= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Eq(r8, r8):bool
      1) ldc.i4.0
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 64

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(3.0)) !$=  Wrap(5.0)
Wrap(Null(3)) !$= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) !$= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      2) ceq
      1) ldc.i4.0
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 61

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(3.0)) !@<  Wrap(5.0)
Wrap(Null(3)) !@< Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) @>= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Ge(r8, r8):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 61

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(3.0)) !@<= Wrap(5.0)
Wrap(Null(3)) !@<= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) @> Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Gt(r8, r8):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 61

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(3.0)) !@>= Wrap(5.0)
Wrap(Null(3)) !@>= Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) @< Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Lt(r8, r8):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 61

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(3.0)) !@>  Wrap(5.0)
Wrap(Null(3)) !@> Wrap(5) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) @<= Call(∂.Test.Wrap(5:r8):r8)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      9) ldc.r8 [5]
      5) call static WrapFuncGen::Exec(r8):r8
      5) call static NumUtil::Le(r8, r8):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 61

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(3.0))  @ = Wrap(Null(5.0))
Wrap(Null(3)) @= Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) @= Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.1 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::get_HasValue():bool
      5) bne.un [0]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::GetValueOrDefault():r8
      5) call static NumUtil::Eq(r8, r8):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 72

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(3.0))  $ = Wrap(Null(5.0))
Wrap(Null(3)) $= Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) $= Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.1 [Opt<r8>]
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::GetValueOrDefault():r8
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 74

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(3.0))  @<  Wrap(Null(5.0))
Wrap(Null(3)) @< Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) @< Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.1 [Opt<r8>]
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [1]
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::GetValueOrDefault():r8
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      5) call static NumUtil::Lt(r8, r8):bool
      5) br [2]
  Label [1]:
      1) ldc.i4.1
      5) br [2]
  Label [0]:
      1) ldc.i4.0
  Label [2]:
      5) box [bool]
      1) ret
  Total Size: 83

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(3.0))  @<= Wrap(Null(5.0))
Wrap(Null(3)) @<= Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) @<= Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.1 [Opt<r8>]
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [1]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::GetValueOrDefault():r8
      5) call static NumUtil::Le(r8, r8):bool
      5) br [2]
  Label [0]:
      1) ldc.i4.1
      5) br [2]
  Label [1]:
      1) ldc.i4.0
  Label [2]:
      5) box [bool]
      1) ret
  Total Size: 83

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(3.0))  @>= Wrap(Null(5.0))
Wrap(Null(3)) @>= Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) @>= Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.1 [Opt<r8>]
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [1]
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::GetValueOrDefault():r8
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      5) call static NumUtil::Ge(r8, r8):bool
      5) br [2]
  Label [0]:
      1) ldc.i4.1
      5) br [2]
  Label [1]:
      1) ldc.i4.0
  Label [2]:
      5) box [bool]
      1) ret
  Total Size: 83

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(3.0))  @>  Wrap(Null(5.0))
Wrap(Null(3)) @> Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) @> Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.1 [Opt<r8>]
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [1]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::GetValueOrDefault():r8
      5) call static NumUtil::Gt(r8, r8):bool
      5) br [2]
  Label [1]:
      1) ldc.i4.1
      5) br [2]
  Label [0]:
      1) ldc.i4.0
  Label [2]:
      5) box [bool]
      1) ret
  Total Size: 83

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(3.0)) !@ = Wrap(Null(5.0))
Wrap(Null(3)) !@= Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) !@= Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.1 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::get_HasValue():bool
      5) bne.un [0]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::GetValueOrDefault():r8
      5) call static NumUtil::Eq(r8, r8):bool
      1) ldc.i4.0
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 75

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(3.0)) !$=  Wrap(Null(5.0))
Wrap(Null(3)) !$= Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) !$= Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.1 [Opt<r8>]
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::GetValueOrDefault():r8
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      2) ceq
      1) ldc.i4.0
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 77

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(3.0)) !@<  Wrap(Null(5.0))
Wrap(Null(3)) !@< Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) @>= Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.1 [Opt<r8>]
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [1]
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::GetValueOrDefault():r8
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      5) call static NumUtil::Ge(r8, r8):bool
      5) br [2]
  Label [0]:
      1) ldc.i4.1
      5) br [2]
  Label [1]:
      1) ldc.i4.0
  Label [2]:
      5) box [bool]
      1) ret
  Total Size: 83

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(3.0)) !@<= Wrap(Null(5.0))
Wrap(Null(3)) !@<= Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) @> Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.1 [Opt<r8>]
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [1]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::GetValueOrDefault():r8
      5) call static NumUtil::Gt(r8, r8):bool
      5) br [2]
  Label [1]:
      1) ldc.i4.1
      5) br [2]
  Label [0]:
      1) ldc.i4.0
  Label [2]:
      5) box [bool]
      1) ret
  Total Size: 83

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(3.0)) !@>= Wrap(Null(5.0))
Wrap(Null(3)) !@>= Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) @< Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.1 [Opt<r8>]
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [1]
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::GetValueOrDefault():r8
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      5) call static NumUtil::Lt(r8, r8):bool
      5) br [2]
  Label [1]:
      1) ldc.i4.1
      5) br [2]
  Label [0]:
      1) ldc.i4.0
  Label [2]:
      5) box [bool]
      1) ret
  Total Size: 83

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(3.0)) !@>  Wrap(Null(5.0))
Wrap(Null(3)) !@> Wrap(Null(5)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:r8?):r8?) @<= Call(∂.Test.Wrap(null:r8?):r8?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.0 [Opt<r8>]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [0]
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) call static WrapFuncGen::Exec(Opt<r8>):Opt<r8>
      1) stloc.1 [Opt<r8>]
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::get_HasValue():bool
      5) brfalse [1]
      2) ldloca.s [Opt<r8> (0)]
      5) call Opt<r8>::GetValueOrDefault():r8
      2) ldloca.s [Opt<r8> (1)]
      5) call Opt<r8>::GetValueOrDefault():r8
      5) call static NumUtil::Le(r8, r8):bool
      5) br [2]
  Label [0]:
      1) ldc.i4.1
      5) br [2]
  Label [1]:
      1) ldc.i4.0
  Label [2]:
      5) box [bool]
      1) ret
  Total Size: 83

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(3.0) != null != "hello"
Wrap(3) !@= null !@= "hello" : b
BndKind:Compare, Type:b, Bnd:(Cmp(null:r8? !@= Error(ErrBadType_Src_Dst)))
*** Error: (21,28) Node: "hello", Message: Invalid operand type: cannot convert type 's' to 'r8?'
###
> Wrap("Hello")   @ = Wrap("hi")
Wrap("Hello") @= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(Hello)):s) @= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [Hello]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static str::Equals(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: false
###
> Wrap("Hello")   @<  Wrap("hi")
Wrap("Hello") @< Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(Hello)):s) @< Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [Hello]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Lt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("Hello")   @<= Wrap("hi")
Wrap("Hello") @<= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(Hello)):s) @<= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [Hello]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Le(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("Hello")   @>= Wrap("hi")
Wrap("Hello") @>= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(Hello)):s) @>= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [Hello]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Ge(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: false
###
> Wrap("Hello")   @>  Wrap("hi")
Wrap("Hello") @> Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(Hello)):s) @> Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [Hello]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Gt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: false
###
> Wrap("Hello")  !@ = Wrap("hi")
Wrap("Hello") !@= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(Hello)):s) !@= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [Hello]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static str::Equals(str, str):bool
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 34

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("Hello")  !@<  Wrap("hi")
Wrap("Hello") !@< Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(Hello)):s) @>= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [Hello]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Ge(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: false
###
> Wrap("Hello")  !@<= Wrap("hi")
Wrap("Hello") !@<= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(Hello)):s) @> Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [Hello]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Gt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: false
###
> Wrap("Hello")  !@>= Wrap("hi")
Wrap("Hello") !@>= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(Hello)):s) @< Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [Hello]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Lt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("Hello")  !@>  Wrap("hi")
Wrap("Hello") !@> Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(Hello)):s) @<= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [Hello]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Le(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("Hello")  ~@=  Wrap("hi")
Wrap("Hello") ~@= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(Hello)):s) ~@= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [Hello]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::EqCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: false
###
> Wrap("Hello")  ~@<  Wrap("hi")
Wrap("Hello") ~@< Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(Hello)):s) ~@< Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [Hello]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::LtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("Hello")  ~@<= Wrap("hi")
Wrap("Hello") ~@<= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(Hello)):s) ~@<= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [Hello]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::LeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("Hello")  ~@>= Wrap("hi")
Wrap("Hello") ~@>= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(Hello)):s) ~@>= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [Hello]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::GeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: false
###
> Wrap("Hello")  ~@>  Wrap("hi")
Wrap("Hello") ~@> Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(Hello)):s) ~@> Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [Hello]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::GtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: false
###
> Wrap("Hello") !~@=  Wrap("hi")
Wrap("Hello") !~@= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(Hello)):s) !~@= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [Hello]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::EqCi(str, str):bool
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 34

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("Hello") !~@<  Wrap("hi")
Wrap("Hello") !~@< Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(Hello)):s) ~@>= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [Hello]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::GeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: false
###
> Wrap("Hello") !~@<= Wrap("hi")
Wrap("Hello") !~@<= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(Hello)):s) ~@> Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [Hello]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::GtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: false
###
> Wrap("Hello") !~@>= Wrap("hi")
Wrap("Hello") !~@>= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(Hello)):s) ~@< Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [Hello]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::LtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("Hello") !~@>  Wrap("hi")
Wrap("Hello") !~@> Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(Hello)):s) ~@<= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [Hello]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::LeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")   @ = Wrap("hi")
Wrap("hi") @= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static str::Equals(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")   @<  Wrap("hi")
Wrap("hi") @< Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @< Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Lt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi")   @<= Wrap("hi")
Wrap("hi") @<= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @<= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Le(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")   @>= Wrap("hi")
Wrap("hi") @>= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @>= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Ge(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")   @>  Wrap("hi")
Wrap("hi") @> Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @> Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Gt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi")  !@ = Wrap("hi")
Wrap("hi") !@= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) !@= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static str::Equals(str, str):bool
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 34

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi")  !@<  Wrap("hi")
Wrap("hi") !@< Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @>= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Ge(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")  !@<= Wrap("hi")
Wrap("hi") !@<= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @> Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Gt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi")  !@>= Wrap("hi")
Wrap("hi") !@>= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @< Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Lt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi")  !@>  Wrap("hi")
Wrap("hi") !@> Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @<= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Le(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")  ~@=  Wrap("hi")
Wrap("hi") ~@= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::EqCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")  ~@<  Wrap("hi")
Wrap("hi") ~@< Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@< Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::LtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi")  ~@<= Wrap("hi")
Wrap("hi") ~@<= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@<= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::LeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")  ~@>= Wrap("hi")
Wrap("hi") ~@>= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@>= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::GeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")  ~@>  Wrap("hi")
Wrap("hi") ~@> Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@> Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::GtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi") !~@=  Wrap("hi")
Wrap("hi") !~@= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) !~@= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::EqCi(str, str):bool
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 34

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi") !~@<  Wrap("hi")
Wrap("hi") !~@< Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@>= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::GeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi") !~@<= Wrap("hi")
Wrap("hi") !~@<= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@> Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::GtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi") !~@>= Wrap("hi")
Wrap("hi") !~@>= Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@< Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::LtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi") !~@>  Wrap("hi")
Wrap("hi") !~@> Wrap("hi") : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@<= Call(∂.Test.Wrap(str(hi)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::LeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 31

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")   @ = "Hi"
Wrap("hi") @= "Hi" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @= str(Hi)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [Hi]
      5) call static str::Equals(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi")   @<  "Hi"
Wrap("hi") @< "Hi" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @< str(Hi)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [Hi]
      5) call static StrComparer::Lt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")   @<= "Hi"
Wrap("hi") @<= "Hi" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @<= str(Hi)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [Hi]
      5) call static StrComparer::Le(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")   @>= "Hi"
Wrap("hi") @>= "Hi" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @>= str(Hi)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [Hi]
      5) call static StrComparer::Ge(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi")   @>  "Hi"
Wrap("hi") @> "Hi" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @> str(Hi)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [Hi]
      5) call static StrComparer::Gt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi")  !@ = "Hi"
Wrap("hi") !@= "Hi" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) !@= str(Hi)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [Hi]
      5) call static str::Equals(str, str):bool
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 29

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")  !@<  "Hi"
Wrap("hi") !@< "Hi" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @>= str(Hi)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [Hi]
      5) call static StrComparer::Ge(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi")  !@<= "Hi"
Wrap("hi") !@<= "Hi" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @> str(Hi)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [Hi]
      5) call static StrComparer::Gt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi")  !@>= "Hi"
Wrap("hi") !@>= "Hi" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @< str(Hi)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [Hi]
      5) call static StrComparer::Lt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")  !@>  "Hi"
Wrap("hi") !@> "Hi" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @<= str(Hi)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [Hi]
      5) call static StrComparer::Le(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")  ~@=  "Hi"
Wrap("hi") ~@= "Hi" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@= str(Hi)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [Hi]
      5) call static StrComparer::EqCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")  ~@<  "Hi"
Wrap("hi") ~@< "Hi" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@< str(Hi)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [Hi]
      5) call static StrComparer::LtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi")  ~@<= "Hi"
Wrap("hi") ~@<= "Hi" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@<= str(Hi)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [Hi]
      5) call static StrComparer::LeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")  ~@>= "Hi"
Wrap("hi") ~@>= "Hi" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@>= str(Hi)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [Hi]
      5) call static StrComparer::GeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")  ~@>  "Hi"
Wrap("hi") ~@> "Hi" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@> str(Hi)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [Hi]
      5) call static StrComparer::GtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi") !~@=  "Hi"
Wrap("hi") !~@= "Hi" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) !~@= str(Hi)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [Hi]
      5) call static StrComparer::EqCi(str, str):bool
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 29

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi") !~@<  "Hi"
Wrap("hi") !~@< "Hi" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@>= str(Hi)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [Hi]
      5) call static StrComparer::GeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi") !~@<= "Hi"
Wrap("hi") !~@<= "Hi" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@> str(Hi)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [Hi]
      5) call static StrComparer::GtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi") !~@>= "Hi"
Wrap("hi") !~@>= "Hi" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@< str(Hi)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [Hi]
      5) call static StrComparer::LtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi") !~@>  "Hi"
Wrap("hi") !~@> "Hi" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@<= str(Hi)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [Hi]
      5) call static StrComparer::LeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")   @ = "hI"
Wrap("hi") @= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static str::Equals(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi")   @<  "hI"
Wrap("hi") @< "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @< str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::Lt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")   @<= "hI"
Wrap("hi") @<= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @<= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::Le(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")   @>= "hI"
Wrap("hi") @>= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @>= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::Ge(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi")   @>  "hI"
Wrap("hi") @> "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @> str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::Gt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi")  !@ = "hI"
Wrap("hi") !@= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) !@= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static str::Equals(str, str):bool
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 29

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")  !@<  "hI"
Wrap("hi") !@< "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @>= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::Ge(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi")  !@<= "hI"
Wrap("hi") !@<= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @> str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::Gt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi")  !@>= "hI"
Wrap("hi") !@>= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @< str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::Lt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")  !@>  "hI"
Wrap("hi") !@> "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) @<= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::Le(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")  ~@=  "hI"
Wrap("hi") ~@= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::EqCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")  ~@<  "hI"
Wrap("hi") ~@< "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@< str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::LtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi")  ~@<= "hI"
Wrap("hi") ~@<= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@<= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::LeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")  ~@>= "hI"
Wrap("hi") ~@>= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@>= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::GeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi")  ~@>  "hI"
Wrap("hi") ~@> "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@> str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::GtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi") !~@=  "hI"
Wrap("hi") !~@= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) !~@= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::EqCi(str, str):bool
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 29

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi") !~@<  "hI"
Wrap("hi") !~@< "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@>= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::GeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("hi") !~@<= "hI"
Wrap("hi") !~@<= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@> str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::GtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi") !~@>= "hI"
Wrap("hi") !~@>= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@< str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::LtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("hi") !~@>  "hI"
Wrap("hi") !~@> "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(hi)):s) ~@<= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hi]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::LeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("HI")   @ = "hI"
Wrap("HI") @= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(HI)):s) @= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [HI]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static str::Equals(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("HI")   @<  "hI"
Wrap("HI") @< "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(HI)):s) @< str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [HI]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::Lt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("HI")   @<= "hI"
Wrap("HI") @<= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(HI)):s) @<= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [HI]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::Le(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("HI")   @>= "hI"
Wrap("HI") @>= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(HI)):s) @>= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [HI]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::Ge(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("HI")   @>  "hI"
Wrap("HI") @> "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(HI)):s) @> str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [HI]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::Gt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("HI")  !@ = "hI"
Wrap("HI") !@= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(HI)):s) !@= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [HI]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static str::Equals(str, str):bool
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 29

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("HI")  !@<  "hI"
Wrap("HI") !@< "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(HI)):s) @>= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [HI]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::Ge(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("HI")  !@<= "hI"
Wrap("HI") !@<= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(HI)):s) @> str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [HI]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::Gt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("HI")  !@>= "hI"
Wrap("HI") !@>= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(HI)):s) @< str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [HI]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::Lt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("HI")  !@>  "hI"
Wrap("HI") !@> "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(HI)):s) @<= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [HI]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::Le(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("HI")  ~@=  "hI"
Wrap("HI") ~@= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(HI)):s) ~@= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [HI]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::EqCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("HI")  ~@<  "hI"
Wrap("HI") ~@< "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(HI)):s) ~@< str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [HI]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::LtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("HI")  ~@<= "hI"
Wrap("HI") ~@<= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(HI)):s) ~@<= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [HI]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::LeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("HI")  ~@>= "hI"
Wrap("HI") ~@>= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(HI)):s) ~@>= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [HI]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::GeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("HI")  ~@>  "hI"
Wrap("HI") ~@> "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(HI)):s) ~@> str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [HI]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::GtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("HI") !~@=  "hI"
Wrap("HI") !~@= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(HI)):s) !~@= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [HI]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::EqCi(str, str):bool
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 29

Func sig: () to b
Type: bool, Value: false
###
> Wrap("HI") !~@<  "hI"
Wrap("HI") !~@< "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(HI)):s) ~@>= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [HI]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::GeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("HI") !~@<= "hI"
Wrap("HI") !~@<= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(HI)):s) ~@> str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [HI]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::GtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("HI") !~@>= "hI"
Wrap("HI") !~@>= "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(HI)):s) ~@< str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [HI]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::LtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap("HI") !~@>  "hI"
Wrap("HI") !~@> "hI" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(HI)):s) ~@<= str(hI)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [HI]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [hI]
      5) call static StrComparer::LeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: true 
###
> "hello"   @ = Wrap(Null(""))
"hello" @= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(str(hello) @= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hello]
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static str::Equals(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: false
###
> "hello"   @<  Wrap(Null(""))
"hello" @< Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(str(hello) @< Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hello]
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Lt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: false
###
> "hello"   @<= Wrap(Null(""))
"hello" @<= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(str(hello) @<= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hello]
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Le(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: false
###
> "hello"   @>= Wrap(Null(""))
"hello" @>= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(str(hello) @>= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hello]
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Ge(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: true 
###
> "hello"   @>  Wrap(Null(""))
"hello" @> Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(str(hello) @> Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hello]
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Gt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: true 
###
> "hello"  !@ = Wrap(Null(""))
"hello" !@= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(str(hello) !@= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hello]
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static str::Equals(str, str):bool
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 25

Func sig: () to b
Type: bool, Value: true 
###
> "hello"  !@<  Wrap(Null(""))
"hello" !@< Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(str(hello) @>= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hello]
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Ge(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: true 
###
> "hello"  !@<= Wrap(Null(""))
"hello" !@<= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(str(hello) @> Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hello]
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Gt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: true 
###
> "hello"  !@>= Wrap(Null(""))
"hello" !@>= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(str(hello) @< Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hello]
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Lt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: false
###
> "hello"  !@>  Wrap(Null(""))
"hello" !@> Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(str(hello) @<= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hello]
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Le(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: false
###
> "hello"  ~@=  Wrap(Null(""))
"hello" ~@= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(str(hello) ~@= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hello]
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::EqCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: false
###
> "hello"  ~@<  Wrap(Null(""))
"hello" ~@< Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(str(hello) ~@< Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hello]
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::LtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: false
###
> "hello"  ~@<= Wrap(Null(""))
"hello" ~@<= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(str(hello) ~@<= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hello]
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::LeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: false
###
> "hello"  ~@>= Wrap(Null(""))
"hello" ~@>= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(str(hello) ~@>= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hello]
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::GeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: true 
###
> "hello"  ~@>  Wrap(Null(""))
"hello" ~@> Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(str(hello) ~@> Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hello]
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::GtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: true 
###
> "hello" !~@=  Wrap(Null(""))
"hello" !~@= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(str(hello) !~@= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hello]
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::EqCi(str, str):bool
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 25

Func sig: () to b
Type: bool, Value: true 
###
> "hello" !~@<  Wrap(Null(""))
"hello" !~@< Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(str(hello) ~@>= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hello]
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::GeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: true 
###
> "hello" !~@<= Wrap(Null(""))
"hello" !~@<= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(str(hello) ~@> Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hello]
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::GtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: true 
###
> "hello" !~@>= Wrap(Null(""))
"hello" !~@>= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(str(hello) ~@< Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hello]
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::LtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: false
###
> "hello" !~@>  Wrap(Null(""))
"hello" !~@> Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(str(hello) ~@<= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [hello]
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::LeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(""))   @ = "goodbye"
Wrap(Null("")) @= "goodbye" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) @= str(goodbye)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [goodbye]
      5) call static str::Equals(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(""))   @<  "goodbye"
Wrap(Null("")) @< "goodbye" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) @< str(goodbye)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [goodbye]
      5) call static StrComparer::Lt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(""))   @<= "goodbye"
Wrap(Null("")) @<= "goodbye" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) @<= str(goodbye)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [goodbye]
      5) call static StrComparer::Le(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(""))   @>= "goodbye"
Wrap(Null("")) @>= "goodbye" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) @>= str(goodbye)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [goodbye]
      5) call static StrComparer::Ge(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(""))   @>  "goodbye"
Wrap(Null("")) @> "goodbye" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) @> str(goodbye)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [goodbye]
      5) call static StrComparer::Gt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(""))  !@ = "goodbye"
Wrap(Null("")) !@= "goodbye" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) !@= str(goodbye)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [goodbye]
      5) call static str::Equals(str, str):bool
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 25

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(""))  !@<  "goodbye"
Wrap(Null("")) !@< "goodbye" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) @>= str(goodbye)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [goodbye]
      5) call static StrComparer::Ge(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(""))  !@<= "goodbye"
Wrap(Null("")) !@<= "goodbye" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) @> str(goodbye)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [goodbye]
      5) call static StrComparer::Gt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(""))  !@>= "goodbye"
Wrap(Null("")) !@>= "goodbye" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) @< str(goodbye)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [goodbye]
      5) call static StrComparer::Lt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(""))  !@>  "goodbye"
Wrap(Null("")) !@> "goodbye" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) @<= str(goodbye)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [goodbye]
      5) call static StrComparer::Le(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(""))  ~@=  "goodbye"
Wrap(Null("")) ~@= "goodbye" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) ~@= str(goodbye)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [goodbye]
      5) call static StrComparer::EqCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(""))  ~@<  "goodbye"
Wrap(Null("")) ~@< "goodbye" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) ~@< str(goodbye)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [goodbye]
      5) call static StrComparer::LtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(""))  ~@<= "goodbye"
Wrap(Null("")) ~@<= "goodbye" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) ~@<= str(goodbye)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [goodbye]
      5) call static StrComparer::LeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(""))  ~@>= "goodbye"
Wrap(Null("")) ~@>= "goodbye" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) ~@>= str(goodbye)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [goodbye]
      5) call static StrComparer::GeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(""))  ~@>  "goodbye"
Wrap(Null("")) ~@> "goodbye" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) ~@> str(goodbye)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [goodbye]
      5) call static StrComparer::GtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null("")) !~@=  "goodbye"
Wrap(Null("")) !~@= "goodbye" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) !~@= str(goodbye)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [goodbye]
      5) call static StrComparer::EqCi(str, str):bool
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 25

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null("")) !~@<  "goodbye"
Wrap(Null("")) !~@< "goodbye" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) ~@>= str(goodbye)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [goodbye]
      5) call static StrComparer::GeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null("")) !~@<= "goodbye"
Wrap(Null("")) !~@<= "goodbye" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) ~@> str(goodbye)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [goodbye]
      5) call static StrComparer::GtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null("")) !~@>= "goodbye"
Wrap(Null("")) !~@>= "goodbye" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) ~@< str(goodbye)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [goodbye]
      5) call static StrComparer::LtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null("")) !~@>  "goodbye"
Wrap(Null("")) !~@> "goodbye" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) ~@<= str(goodbye)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [goodbye]
      5) call static StrComparer::LeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 22

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(""))   @ = Wrap(Null(""))
Wrap(Null("")) @= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) @= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static str::Equals(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(""))   @<  Wrap(Null(""))
Wrap(Null("")) @< Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) @< Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Lt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(""))   @<= Wrap(Null(""))
Wrap(Null("")) @<= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) @<= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Le(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(""))   @>= Wrap(Null(""))
Wrap(Null("")) @>= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) @>= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Ge(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(""))   @>  Wrap(Null(""))
Wrap(Null("")) @> Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) @> Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Gt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(""))  !@ = Wrap(Null(""))
Wrap(Null("")) !@= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) !@= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static str::Equals(str, str):bool
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(""))  !@<  Wrap(Null(""))
Wrap(Null("")) !@< Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) @>= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Ge(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(""))  !@<= Wrap(Null(""))
Wrap(Null("")) !@<= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) @> Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Gt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(""))  !@>= Wrap(Null(""))
Wrap(Null("")) !@>= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) @< Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Lt(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(""))  !@>  Wrap(Null(""))
Wrap(Null("")) !@> Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) @<= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::Le(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(""))  ~@=  Wrap(Null(""))
Wrap(Null("")) ~@= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) ~@= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::EqCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(""))  ~@<  Wrap(Null(""))
Wrap(Null("")) ~@< Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) ~@< Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::LtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(""))  ~@<= Wrap(Null(""))
Wrap(Null("")) ~@<= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) ~@<= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::LeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(""))  ~@>= Wrap(Null(""))
Wrap(Null("")) ~@>= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) ~@>= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::GeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(""))  ~@>  Wrap(Null(""))
Wrap(Null("")) ~@> Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) ~@> Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::GtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null("")) !~@=  Wrap(Null(""))
Wrap(Null("")) !~@= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) !~@= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::EqCi(str, str):bool
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 26

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null("")) !~@<  Wrap(Null(""))
Wrap(Null("")) !~@< Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) ~@>= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::GeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null("")) !~@<= Wrap(Null(""))
Wrap(Null("")) !~@<= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) ~@> Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::GtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null("")) !~@>= Wrap(Null(""))
Wrap(Null("")) !~@>= Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) ~@< Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::LtCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null("")) !~@>  Wrap(Null(""))
Wrap(Null("")) !~@> Wrap(Null("")) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(<null>)):s) ~@<= Call(∂.Test.Wrap(str(<null>)):s)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      1) ldnull
      5) call static WrapFuncGen::Exec(str):str
      5) call static StrComparer::LeCi(str, str):bool
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("A") ~@ = Wrap("a") @= "a"
Wrap("A") ~@= Wrap("a") @= "a" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(A)):s) ~@= Call(∂.Test.Wrap(str(a)):s) @= str(a)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [A]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [a]
      5) call static WrapFuncGen::Exec(str):str
      1) dup
      1) stloc.0 [str]
      5) call static StrComparer::EqCi(str, str):bool
      5) brfalse [0]
      1) ldloc.0 [str]
      5) ldstr [a]
      5) call static str::Equals(str, str):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 55

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("A") ~@<  Wrap("a") @= "a"
Wrap("A") ~@< Wrap("a") @= "a" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(A)):s) ~@< Call(∂.Test.Wrap(str(a)):s) @= str(a)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [A]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [a]
      5) call static WrapFuncGen::Exec(str):str
      1) dup
      1) stloc.0 [str]
      5) call static StrComparer::LtCi(str, str):bool
      5) brfalse [0]
      1) ldloc.0 [str]
      5) ldstr [a]
      5) call static str::Equals(str, str):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 55

Func sig: () to b
Type: bool, Value: false
###
> Wrap("A") ~@<= Wrap("a") @= "a"
Wrap("A") ~@<= Wrap("a") @= "a" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(A)):s) ~@<= Call(∂.Test.Wrap(str(a)):s) @= str(a)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [A]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [a]
      5) call static WrapFuncGen::Exec(str):str
      1) dup
      1) stloc.0 [str]
      5) call static StrComparer::LeCi(str, str):bool
      5) brfalse [0]
      1) ldloc.0 [str]
      5) ldstr [a]
      5) call static str::Equals(str, str):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 55

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("A") ~@>  Wrap("a") @= "a"
Wrap("A") ~@> Wrap("a") @= "a" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(A)):s) ~@> Call(∂.Test.Wrap(str(a)):s) @= str(a)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [A]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [a]
      5) call static WrapFuncGen::Exec(str):str
      1) dup
      1) stloc.0 [str]
      5) call static StrComparer::GtCi(str, str):bool
      5) brfalse [0]
      1) ldloc.0 [str]
      5) ldstr [a]
      5) call static str::Equals(str, str):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 55

Func sig: () to b
Type: bool, Value: false
###
> Wrap("A") ~@>= Wrap("a") @= "a"
Wrap("A") ~@>= Wrap("a") @= "a" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(A)):s) ~@>= Call(∂.Test.Wrap(str(a)):s) @= str(a)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [A]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [a]
      5) call static WrapFuncGen::Exec(str):str
      1) dup
      1) stloc.0 [str]
      5) call static StrComparer::GeCi(str, str):bool
      5) brfalse [0]
      1) ldloc.0 [str]
      5) ldstr [a]
      5) call static str::Equals(str, str):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 55

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("A") ~@ = Wrap("b") @= "b"
Wrap("A") ~@= Wrap("b") @= "b" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(A)):s) ~@= Call(∂.Test.Wrap(str(b)):s) @= str(b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [A]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [b]
      5) call static WrapFuncGen::Exec(str):str
      1) dup
      1) stloc.0 [str]
      5) call static StrComparer::EqCi(str, str):bool
      5) brfalse [0]
      1) ldloc.0 [str]
      5) ldstr [b]
      5) call static str::Equals(str, str):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 55

Func sig: () to b
Type: bool, Value: false
###
> Wrap("A") ~@<  Wrap("b") @= "b"
Wrap("A") ~@< Wrap("b") @= "b" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(A)):s) ~@< Call(∂.Test.Wrap(str(b)):s) @= str(b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [A]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [b]
      5) call static WrapFuncGen::Exec(str):str
      1) dup
      1) stloc.0 [str]
      5) call static StrComparer::LtCi(str, str):bool
      5) brfalse [0]
      1) ldloc.0 [str]
      5) ldstr [b]
      5) call static str::Equals(str, str):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 55

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("A") ~@<= Wrap("b") @= "b"
Wrap("A") ~@<= Wrap("b") @= "b" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(A)):s) ~@<= Call(∂.Test.Wrap(str(b)):s) @= str(b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [A]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [b]
      5) call static WrapFuncGen::Exec(str):str
      1) dup
      1) stloc.0 [str]
      5) call static StrComparer::LeCi(str, str):bool
      5) brfalse [0]
      1) ldloc.0 [str]
      5) ldstr [b]
      5) call static str::Equals(str, str):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 55

Func sig: () to b
Type: bool, Value: true 
###
> Wrap("A") ~@>  Wrap("b") @= "b"
Wrap("A") ~@> Wrap("b") @= "b" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(A)):s) ~@> Call(∂.Test.Wrap(str(b)):s) @= str(b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [A]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [b]
      5) call static WrapFuncGen::Exec(str):str
      1) dup
      1) stloc.0 [str]
      5) call static StrComparer::GtCi(str, str):bool
      5) brfalse [0]
      1) ldloc.0 [str]
      5) ldstr [b]
      5) call static str::Equals(str, str):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 55

Func sig: () to b
Type: bool, Value: false
###
> Wrap("A") ~@>= Wrap("b") @= "b"
Wrap("A") ~@>= Wrap("b") @= "b" : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(str(A)):s) ~@>= Call(∂.Test.Wrap(str(b)):s) @= str(b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) ldstr [A]
      5) call static WrapFuncGen::Exec(str):str
      5) ldstr [b]
      5) call static WrapFuncGen::Exec(str):str
      1) dup
      1) stloc.0 [str]
      5) call static StrComparer::GeCi(str, str):bool
      5) brfalse [0]
      1) ldloc.0 [str]
      5) ldstr [b]
      5) call static str::Equals(str, str):bool
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 55

Func sig: () to b
Type: bool, Value: false
###
> Wrap(false)  @ = Wrap(false)
Wrap(false) @= Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @= Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 20

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(false)  @<  Wrap(false)
Wrap(false) @< Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @< Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      5) box [bool]
      1) ret
  Total Size: 20

Func sig: () to b
Type: bool, Value: false
###
> Wrap(false)  @<= Wrap(false)
Wrap(false) @<= Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @<= Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(false)  @>= Wrap(false)
Wrap(false) @>= Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @>= Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(false)  @>  Wrap(false)
Wrap(false) @> Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @> Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      5) box [bool]
      1) ret
  Total Size: 20

Func sig: () to b
Type: bool, Value: false
###
> Wrap(false) !@ = Wrap(false)
Wrap(false) !@= Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) !@= Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) xor
      5) box [bool]
      1) ret
  Total Size: 19

Func sig: () to b
Type: bool, Value: false
###
> Wrap(false) !@<  Wrap(false)
Wrap(false) !@< Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @>= Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(false) !@<= Wrap(false)
Wrap(false) !@<= Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @> Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      5) box [bool]
      1) ret
  Total Size: 20

Func sig: () to b
Type: bool, Value: false
###
> Wrap(false) !@>= Wrap(false)
Wrap(false) !@>= Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @< Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      5) box [bool]
      1) ret
  Total Size: 20

Func sig: () to b
Type: bool, Value: false
###
> Wrap(false) !@>  Wrap(false)
Wrap(false) !@> Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @<= Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(true)  @ = Wrap(false)
Wrap(true) @= Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @= Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 20

Func sig: () to b
Type: bool, Value: false
###
> Wrap(true)  @<  Wrap(false)
Wrap(true) @< Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @< Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      5) box [bool]
      1) ret
  Total Size: 20

Func sig: () to b
Type: bool, Value: false
###
> Wrap(true)  @<= Wrap(false)
Wrap(true) @<= Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @<= Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: false
###
> Wrap(true)  @>= Wrap(false)
Wrap(true) @>= Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @>= Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(true)  @>  Wrap(false)
Wrap(true) @> Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @> Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      5) box [bool]
      1) ret
  Total Size: 20

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(true) !@ = Wrap(false)
Wrap(true) !@= Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) !@= Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) xor
      5) box [bool]
      1) ret
  Total Size: 19

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(true) !@<  Wrap(false)
Wrap(true) !@< Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @>= Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(true) !@<= Wrap(false)
Wrap(true) !@<= Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @> Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      5) box [bool]
      1) ret
  Total Size: 20

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(true) !@>= Wrap(false)
Wrap(true) !@>= Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @< Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      5) box [bool]
      1) ret
  Total Size: 20

Func sig: () to b
Type: bool, Value: false
###
> Wrap(true) !@>  Wrap(false)
Wrap(true) !@> Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @<= Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: false
###
> Wrap(false)  @ = Wrap(true)
Wrap(false) @= Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @= Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 20

Func sig: () to b
Type: bool, Value: false
###
> Wrap(false)  @<  Wrap(true)
Wrap(false) @< Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @< Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      5) box [bool]
      1) ret
  Total Size: 20

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(false)  @<= Wrap(true)
Wrap(false) @<= Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @<= Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(false)  @>= Wrap(true)
Wrap(false) @>= Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @>= Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: false
###
> Wrap(false)  @>  Wrap(true)
Wrap(false) @> Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @> Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      5) box [bool]
      1) ret
  Total Size: 20

Func sig: () to b
Type: bool, Value: false
###
> Wrap(false) !@ = Wrap(true)
Wrap(false) !@= Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) !@= Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) xor
      5) box [bool]
      1) ret
  Total Size: 19

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(false) !@<  Wrap(true)
Wrap(false) !@< Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @>= Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: false
###
> Wrap(false) !@<= Wrap(true)
Wrap(false) !@<= Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @> Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      5) box [bool]
      1) ret
  Total Size: 20

Func sig: () to b
Type: bool, Value: false
###
> Wrap(false) !@>= Wrap(true)
Wrap(false) !@>= Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @< Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      5) box [bool]
      1) ret
  Total Size: 20

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(false) !@>  Wrap(true)
Wrap(false) !@> Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @<= Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(true)  @ = Wrap(true)
Wrap(true) @= Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @= Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 20

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(true)  @<  Wrap(true)
Wrap(true) @< Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @< Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      5) box [bool]
      1) ret
  Total Size: 20

Func sig: () to b
Type: bool, Value: false
###
> Wrap(true)  @<= Wrap(true)
Wrap(true) @<= Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @<= Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(true)  @>= Wrap(true)
Wrap(true) @>= Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @>= Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(true)  @>  Wrap(true)
Wrap(true) @> Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @> Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      5) box [bool]
      1) ret
  Total Size: 20

Func sig: () to b
Type: bool, Value: false
###
> Wrap(true) !@ = Wrap(true)
Wrap(true) !@= Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) !@= Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) xor
      5) box [bool]
      1) ret
  Total Size: 19

Func sig: () to b
Type: bool, Value: false
###
> Wrap(true) !@<  Wrap(true)
Wrap(true) !@< Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @>= Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(true) !@<= Wrap(true)
Wrap(true) !@<= Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @> Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      5) box [bool]
      1) ret
  Total Size: 20

Func sig: () to b
Type: bool, Value: false
###
> Wrap(true) !@>= Wrap(true)
Wrap(true) !@>= Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @< Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      5) box [bool]
      1) ret
  Total Size: 20

Func sig: () to b
Type: bool, Value: false
###
> Wrap(true) !@>  Wrap(true)
Wrap(true) !@> Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @<= Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      1) ldc.i4.0
      2) ceq
      5) box [bool]
      1) ret
  Total Size: 23

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(false)  @ = Wrap(Null(true))
Wrap(false) @= Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @= Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 50

Func sig: () to b
Type: bool, Value: false
###
> Wrap(false)  @<  Wrap(Null(true))
Wrap(false) @< Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @< Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) clt.un
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 50

Func sig: () to b
Type: bool, Value: false
###
> Wrap(false)  @<= Wrap(Null(true))
Wrap(false) @<= Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @<= Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) cgt.un
      1) ldc.i4.0
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 53

Func sig: () to b
Type: bool, Value: false
###
> Wrap(false)  @>= Wrap(Null(true))
Wrap(false) @>= Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @>= Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) clt.un
      1) ldc.i4.0
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 53

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(false)  @>  Wrap(Null(true))
Wrap(false) @> Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @> Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) cgt.un
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 50

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(false) !@ = Wrap(Null(true))
Wrap(false) !@= Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) !@= Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) xor
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 49

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(false) !@<  Wrap(Null(true))
Wrap(false) !@< Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @>= Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) clt.un
      1) ldc.i4.0
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 53

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(false) !@<= Wrap(Null(true))
Wrap(false) !@<= Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @> Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) cgt.un
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 50

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(false) !@>= Wrap(Null(true))
Wrap(false) !@>= Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @< Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) clt.un
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 50

Func sig: () to b
Type: bool, Value: false
###
> Wrap(false) !@>  Wrap(Null(true))
Wrap(false) !@> Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(false:b):b) @<= Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) cgt.un
      1) ldc.i4.0
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 53

Func sig: () to b
Type: bool, Value: false
###
> Wrap(true)  @ = Wrap(Null(true))
Wrap(true) @= Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @= Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 50

Func sig: () to b
Type: bool, Value: false
###
> Wrap(true)  @<  Wrap(Null(true))
Wrap(true) @< Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @< Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) clt.un
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 50

Func sig: () to b
Type: bool, Value: false
###
> Wrap(true)  @<= Wrap(Null(true))
Wrap(true) @<= Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @<= Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) cgt.un
      1) ldc.i4.0
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 53

Func sig: () to b
Type: bool, Value: false
###
> Wrap(true)  @>= Wrap(Null(true))
Wrap(true) @>= Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @>= Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) clt.un
      1) ldc.i4.0
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 53

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(true)  @>  Wrap(Null(true))
Wrap(true) @> Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @> Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) cgt.un
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 50

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(true) !@ = Wrap(Null(true))
Wrap(true) !@= Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) !@= Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) xor
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 49

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(true) !@<  Wrap(Null(true))
Wrap(true) !@< Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @>= Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) clt.un
      1) ldc.i4.0
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 53

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(true) !@<= Wrap(Null(true))
Wrap(true) !@<= Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @> Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) cgt.un
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 50

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(true) !@>= Wrap(Null(true))
Wrap(true) !@>= Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @< Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) clt.un
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 50

Func sig: () to b
Type: bool, Value: false
###
> Wrap(true) !@>  Wrap(Null(true))
Wrap(true) !@> Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(true:b):b) @<= Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) cgt.un
      1) ldc.i4.0
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 53

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(true))  @ = Wrap(false)
Wrap(Null(true)) @= Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @= Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 50

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(true))  @<  Wrap(false)
Wrap(Null(true)) @< Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @< Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 50

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(true))  @<= Wrap(false)
Wrap(Null(true)) @<= Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @<= Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      1) ldc.i4.0
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 53

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(true))  @>= Wrap(false)
Wrap(Null(true)) @>= Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @>= Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      1) ldc.i4.0
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 53

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(true))  @>  Wrap(false)
Wrap(Null(true)) @> Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @> Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 50

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(true)) !@ = Wrap(false)
Wrap(Null(true)) !@= Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) !@= Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      1) xor
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 49

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(true)) !@<  Wrap(false)
Wrap(Null(true)) !@< Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @>= Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      1) ldc.i4.0
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 53

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(true)) !@<= Wrap(false)
Wrap(Null(true)) !@<= Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @> Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 50

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(true)) !@>= Wrap(false)
Wrap(Null(true)) !@>= Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @< Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 50

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(true)) !@>  Wrap(false)
Wrap(Null(true)) !@> Wrap(false) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @<= Call(∂.Test.Wrap(false:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) ldc.i4.0
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      1) ldc.i4.0
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 53

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(true))  @ = Wrap(true)
Wrap(Null(true)) @= Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @= Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 50

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(true))  @<  Wrap(true)
Wrap(Null(true)) @< Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @< Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 50

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(true))  @<= Wrap(true)
Wrap(Null(true)) @<= Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @<= Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      1) ldc.i4.0
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 53

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(true))  @>= Wrap(true)
Wrap(Null(true)) @>= Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @>= Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      1) ldc.i4.0
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 53

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(true))  @>  Wrap(true)
Wrap(Null(true)) @> Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @> Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 50

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(true)) !@ = Wrap(true)
Wrap(Null(true)) !@= Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) !@= Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      1) xor
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 49

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(true)) !@<  Wrap(true)
Wrap(Null(true)) !@< Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @>= Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      1) ldc.i4.0
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 53

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(true)) !@<= Wrap(true)
Wrap(Null(true)) !@<= Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @> Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 50

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(true)) !@>= Wrap(true)
Wrap(Null(true)) !@>= Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @< Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) clt.un
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 50

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(true)) !@>  Wrap(true)
Wrap(Null(true)) !@> Wrap(true) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @<= Call(∂.Test.Wrap(true:b):b)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) ldc.i4.1
      5) call static WrapFuncGen::Exec(bool):bool
      2) cgt.un
      1) ldc.i4.0
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 53

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(true))  @ = Wrap(Null(true))
Wrap(Null(true)) @= Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @= Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.1 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      2) ldloca.s [Opt<bool> (1)]
      5) call Opt<bool>::get_HasValue():bool
      5) bne.un [0]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) ldloca.s [Opt<bool> (1)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) ceq
      5) br [1]
  Label [0]:
      1) ldc.i4.0
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 69

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(true))  @<  Wrap(Null(true))
Wrap(Null(true)) @< Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @< Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.1 [Opt<bool>]
      2) ldloca.s [Opt<bool> (1)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [1]
      2) ldloca.s [Opt<bool> (1)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) clt.un
      5) br [2]
  Label [1]:
      1) ldc.i4.1
      5) br [2]
  Label [0]:
      1) ldc.i4.0
  Label [2]:
      5) box [bool]
      1) ret
  Total Size: 80

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(true))  @<= Wrap(Null(true))
Wrap(Null(true)) @<= Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @<= Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.1 [Opt<bool>]
      2) ldloca.s [Opt<bool> (1)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [1]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) ldloca.s [Opt<bool> (1)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) cgt.un
      1) ldc.i4.0
      2) ceq
      5) br [2]
  Label [0]:
      1) ldc.i4.1
      5) br [2]
  Label [1]:
      1) ldc.i4.0
  Label [2]:
      5) box [bool]
      1) ret
  Total Size: 83

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(true))  @>= Wrap(Null(true))
Wrap(Null(true)) @>= Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @>= Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.1 [Opt<bool>]
      2) ldloca.s [Opt<bool> (1)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [1]
      2) ldloca.s [Opt<bool> (1)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) clt.un
      1) ldc.i4.0
      2) ceq
      5) br [2]
  Label [0]:
      1) ldc.i4.1
      5) br [2]
  Label [1]:
      1) ldc.i4.0
  Label [2]:
      5) box [bool]
      1) ret
  Total Size: 83

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(true))  @>  Wrap(Null(true))
Wrap(Null(true)) @> Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @> Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.1 [Opt<bool>]
      2) ldloca.s [Opt<bool> (1)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [1]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) ldloca.s [Opt<bool> (1)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) cgt.un
      5) br [2]
  Label [1]:
      1) ldc.i4.1
      5) br [2]
  Label [0]:
      1) ldc.i4.0
  Label [2]:
      5) box [bool]
      1) ret
  Total Size: 80

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(true)) !@ = Wrap(Null(true))
Wrap(Null(true)) !@= Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) !@= Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.1 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      2) ldloca.s [Opt<bool> (1)]
      5) call Opt<bool>::get_HasValue():bool
      5) bne.un [0]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) ldloca.s [Opt<bool> (1)]
      5) call Opt<bool>::GetValueOrDefault():bool
      1) xor
      5) br [1]
  Label [0]:
      1) ldc.i4.1
  Label [1]:
      5) box [bool]
      1) ret
  Total Size: 68

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(true)) !@<  Wrap(Null(true))
Wrap(Null(true)) !@< Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @>= Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.1 [Opt<bool>]
      2) ldloca.s [Opt<bool> (1)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [1]
      2) ldloca.s [Opt<bool> (1)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) clt.un
      1) ldc.i4.0
      2) ceq
      5) br [2]
  Label [0]:
      1) ldc.i4.1
      5) br [2]
  Label [1]:
      1) ldc.i4.0
  Label [2]:
      5) box [bool]
      1) ret
  Total Size: 83

Func sig: () to b
Type: bool, Value: true 
###
> Wrap(Null(true)) !@<= Wrap(Null(true))
Wrap(Null(true)) !@<= Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @> Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.1 [Opt<bool>]
      2) ldloca.s [Opt<bool> (1)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [1]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) ldloca.s [Opt<bool> (1)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) cgt.un
      5) br [2]
  Label [1]:
      1) ldc.i4.1
      5) br [2]
  Label [0]:
      1) ldc.i4.0
  Label [2]:
      5) box [bool]
      1) ret
  Total Size: 80

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(true)) !@>= Wrap(Null(true))
Wrap(Null(true)) !@>= Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @< Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.1 [Opt<bool>]
      2) ldloca.s [Opt<bool> (1)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [1]
      2) ldloca.s [Opt<bool> (1)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) clt.un
      5) br [2]
  Label [1]:
      1) ldc.i4.1
      5) br [2]
  Label [0]:
      1) ldc.i4.0
  Label [2]:
      5) box [bool]
      1) ret
  Total Size: 80

Func sig: () to b
Type: bool, Value: false
###
> Wrap(Null(true)) !@>  Wrap(Null(true))
Wrap(Null(true)) !@> Wrap(Null(true)) : b
BndKind:Compare, Type:b, Bnd:(Cmp(Call(∂.Test.Wrap(null:b?):b?) @<= Call(∂.Test.Wrap(null:b?):b?)))
// () : b
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.0 [Opt<bool>]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [0]
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) call static WrapFuncGen::Exec(Opt<bool>):Opt<bool>
      1) stloc.1 [Opt<bool>]
      2) ldloca.s [Opt<bool> (1)]
      5) call Opt<bool>::get_HasValue():bool
      5) brfalse [1]
      2) ldloca.s [Opt<bool> (0)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) ldloca.s [Opt<bool> (1)]
      5) call Opt<bool>::GetValueOrDefault():bool
      2) cgt.un
      1) ldc.i4.0
      2) ceq
      5) br [2]
  Label [0]:
      1) ldc.i4.1
      5) br [2]
  Label [1]:
      1) ldc.i4.0
  Label [2]:
      5) box [bool]
      1) ret
  Total Size: 83

Func sig: () to b
Type: bool, Value: true 
###
