**** New globals: {b:b, g:g, i:i, i1:i1, i2:i2, i4:i4, i8:i8, o:o, qb:b?, qi:i?, qi1:i1?, qi2:i2?, qi4:i4?, qi8:i8?, qr:{A:i8}?, qr4:r4?, qr8:r8?, qu1:u1?, qu2:u2?, qu4:u4?, qu8:u8?, r:{A:i8}, r4:r4, r8:r8, s:s, u1:u1, u2:u2, u4:u4, u8:u8, v:v}
**** New definitions: r, type: {A:i8}

> Opt(b)
Opt(b) : b?
BndKind:CastOpt, Type:b?, Bnd:(Opt<b?>(Global(b)))
// (∂.b:b) : b?
top(Arr<obj>, Arr<obj>):obj
      1) ldarg.1 [Arr<obj>]
      1) ldc.i4.0
      1) ldelem.ref
      5) call static CodeGenUtil::ToVal(obj):bool
      1) stloc.0 [bool]
      1) ldloc.0 [bool]
      5) newobj Opt<bool>(bool)
      5) box [Opt<bool>]
      1) ret
  Total Size: 21

Func sig: (b:b) to b?
Type: bool, Value: false
###
> Opt(i8)
Opt(i8) : i8?
BndKind:CastOpt, Type:i8?, Bnd:(Opt<i8?>(Global(i8)))
// (∂.i8:i8) : i8?
top(Arr<obj>, Arr<obj>):obj
      1) ldarg.1 [Arr<obj>]
      1) ldc.i4.0
      1) ldelem.ref
      5) call static CodeGenUtil::ToVal(obj):i8
      1) stloc.0 [i8]
      1) ldloc.0 [i8]
      5) newobj Opt<i8>(i8)
      5) box [Opt<i8>]
      1) ret
  Total Size: 21

Func sig: (i8:i8) to i8?
Type: i8, Value: 0
###
> Opt(r8)
Opt(r8) : r8?
BndKind:CastOpt, Type:r8?, Bnd:(Opt<r8?>(Global(r8)))
// (∂.r8:r8) : r8?
top(Arr<obj>, Arr<obj>):obj
      1) ldarg.1 [Arr<obj>]
      1) ldc.i4.0
      1) ldelem.ref
      5) call static CodeGenUtil::ToVal(obj):r8
      1) stloc.0 [r8]
      1) ldloc.0 [r8]
      5) newobj Opt<r8>(r8)
      5) box [Opt<r8>]
      1) ret
  Total Size: 21

Func sig: (r8:r8) to r8?
Type: r8, Value: 0
###
> Opt(i)
Opt(i) : i?
BndKind:CastOpt, Type:i?, Bnd:(Opt<i?>(Global(i)))
// (∂.i:i) : i?
top(Arr<obj>, Arr<obj>):obj
      1) ldarg.1 [Arr<obj>]
      1) ldc.i4.0
      1) ldelem.ref
      5) call static CodeGenUtil::ToVal(obj):ia
      1) stloc.0 [ia]
      1) ldloc.0 [ia]
      5) newobj Opt<ia>(ia)
      5) box [Opt<ia>]
      1) ret
  Total Size: 21

Func sig: (i:i) to i?
Type: ia, Value: 0
###
> Opt(qi4)
Opt(qi4) : i4?
BndKind:Global, Type:i4?, Bnd:(Global(qi4))
*** Warning: (4,7) Node: qi4, Message: The type is already optional: 'i4?'
// (∂.qi4:i4?) : i4?
top(Arr<obj>, Arr<obj>):obj
      1) ldarg.1 [Arr<obj>]
      1) ldc.i4.0
      1) ldelem.ref
      5) call static CodeGenUtil::ToOpt(obj):Opt<i4>
      1) stloc.0 [Opt<i4>]
      1) ldloc.0 [Opt<i4>]
      5) box [Opt<i4>]
      1) ret
  Total Size: 16

Func sig: (qi4:i4?) to i4?
Type: <null>, Value: <null>
###
> Opt(s)
Opt(s) : s
BndKind:Global, Type:s, Bnd:(Global(s))
*** Warning: (4,5) Node: s, Message: The type is already optional: 's'
// (∂.s:s) : s
top(Arr<obj>, Arr<obj>):obj
      1) ldarg.1 [Arr<obj>]
      1) ldc.i4.0
      1) ldelem.ref
      5) call static CodeGenUtil::ToRef(obj):str
      1) stloc.0 [str]
      1) ldloc.0 [str]
      1) ret
  Total Size: 11

Func sig: (s:s) to s
Type: <null>, Value: <null>
###
> Opt(o)
Opt(o) : o
BndKind:Global, Type:o, Bnd:(Global(o))
*** Warning: (4,5) Node: o, Message: The type is already optional: 'o'
// (∂.o:o) : o
top(Arr<obj>, Arr<obj>):obj
      1) ldarg.1 [Arr<obj>]
      1) ldc.i4.0
      1) ldelem.ref
      5) call static CodeGenUtil::ToRef(obj):obj
      1) stloc.0 [obj]
      1) ldloc.0 [obj]
      1) ret
  Total Size: 11

Func sig: (o:o) to o
Type: <null>, Value: <null>
###
> Opt(g)
Opt(g) : g
BndKind:Global, Type:g, Bnd:(Global(g))
*** Warning: (4,5) Node: g, Message: The type is already optional: 'g'
// (∂.g:g) : g
top(Arr<obj>, Arr<obj>):obj
      1) ldarg.1 [Arr<obj>]
      1) ldc.i4.0
      1) ldelem.ref
      5) call static CodeGenUtil::ToRef(obj):obj
      1) stloc.0 [obj]
      1) ldloc.0 [obj]
      1) ret
  Total Size: 11

Func sig: (g:g) to g
Type: <null>, Value: <null>
###
> Opt(v)
Opt(v) : o
BndKind:CastOpt, Type:o, Bnd:(Opt<o>(Global(v)))
// (∂.v:v) : o
top(Arr<obj>, Arr<obj>):obj
      1) ldarg.1 [Arr<obj>]
      1) ldc.i4.0
      1) ldelem.ref
      5) call static CodeGenUtil::ToRef(obj):obj
      1) stloc.0 [obj]
      1) ldloc.0 [obj]
      1) ret
  Total Size: 11

Func sig: (v:v) to o
Type: <null>, Value: <null>
###
> Opt(r)
Opt(r) : {A:i8}?
BndKind:CastRef, Type:{A:i8}?, Bnd:(Ref<{A:i8}?>(Global(r)))
// (∂.r:{A:i8}) : {A:i8}?
top(Arr<obj>, Arr<obj>):obj
      1) ldarg.1 [Arr<obj>]
      1) ldc.i4.0
      1) ldelem.ref
      5) call static CodeGenUtil::ToRef(obj):{i8}
      1) stloc.0 [{i8}]
      1) ldloc.0 [{i8}]
      1) ret
  Total Size: 11

Func sig: (r:{A:i8}) to {A:i8}?
Type: {i8}, Value: { A: 7 }
###
> Opt(qr)
Opt(qr) : {A:i8}?
BndKind:Global, Type:{A:i8}?, Bnd:(Global(qr))
*** Warning: (4,6) Node: qr, Message: The type is already optional: '{A:i8}?'
// (∂.qr:{A:i8}?) : {A:i8}?
top(Arr<obj>, Arr<obj>):obj
      1) ldarg.1 [Arr<obj>]
      1) ldc.i4.0
      1) ldelem.ref
      5) call static CodeGenUtil::ToRef(obj):{i8}
      1) stloc.0 [{i8}]
      1) ldloc.0 [{i8}]
      1) ret
  Total Size: 11

Func sig: (qr:{A:i8}?) to {A:i8}?
Type: <null>, Value: <null>
###
> Def(b)
Def(b) : b
BndKind:Int, Type:b, Bnd:(false:b)
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) box [bool]
      1) ret
  Total Size: 7

Func sig: () to b
Type: bool, Value: false
###
> Def(i8)
Def(i8) : i8
BndKind:Int, Type:i8, Bnd:(0:i8)
// () : i8
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      1) conv.i8
      5) box [i8]
      1) ret
  Total Size: 8

Func sig: () to i8
Type: i8, Value: 0
###
> Def(r8)
Def(r8) : r8
BndKind:Flt, Type:r8, Bnd:(0:r8)
// () : r8
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [0]
      5) box [r8]
      1) ret
  Total Size: 15

Func sig: () to r8
Type: r8, Value: 0
###
> Def(i)
Def(i) : i
BndKind:Int, Type:i, Bnd:(0:i)
// () : i
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) newobj ia(i4)
      5) box [ia]
      1) ret
  Total Size: 12

Func sig: () to i
Type: ia, Value: 0
###
> Def(qi4)
Def(qi4) : i4?
BndKind:Null, Type:i4?, Bnd:(null:i4?)
// () : i4?
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<i4>
      5) box [Opt<i4>]
      1) ret
  Total Size: 11

Func sig: () to i4?
Type: <null>, Value: <null>
###
> Def(s)
Def(s) : s
BndKind:Str, Type:s, Bnd:(str(<null>))
// () : s
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to s
Type: <null>, Value: <null>
###
> Def(o)
Def(o) : o
BndKind:Null, Type:o, Bnd:(null)
// () : o
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to o
Type: <null>, Value: <null>
###
> Def(g)
Def(g) : g
BndKind:Null, Type:g, Bnd:(null:g)
// () : g
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to g
Type: <null>, Value: <null>
###
> Def(v)
Def(v) : v
BndKind:Default, Type:v, Bnd:(dflt<v>)
// () : v
*** Unsupported Exception: 'Unsupported default value'
###
> Def(r)
Def(r) : {A:i8}
BndKind:Default, Type:{A:i8}, Bnd:(dflt<{A:i8}>)
// () : {A:i8}
top(Arr<obj>, Arr<obj>):obj
      1) ldarg.0 [Arr<obj>]
      1) ldc.i4.0
      5) ldelem [{i8}]
      1) ret
  Total Size: 8

Func sig: () to {A:i8}
Type: {i8}, Value: { A: 0 }
###
> Def(qr)
Def(qr) : {A:i8}?
BndKind:Null, Type:{A:i8}?, Bnd:(null:{A:i8}?)
// () : {A:i8}?
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to {A:i8}?
Type: <null>, Value: <null>
###
> DefReq(b)
DefReq(b) : b
BndKind:Int, Type:b, Bnd:(false:b)
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) box [bool]
      1) ret
  Total Size: 7

Func sig: () to b
Type: bool, Value: false
###
> DefReq(i8)
DefReq(i8) : i8
BndKind:Int, Type:i8, Bnd:(0:i8)
// () : i8
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      1) conv.i8
      5) box [i8]
      1) ret
  Total Size: 8

Func sig: () to i8
Type: i8, Value: 0
###
> DefReq(r8)
DefReq(r8) : r8
BndKind:Flt, Type:r8, Bnd:(0:r8)
// () : r8
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [0]
      5) box [r8]
      1) ret
  Total Size: 15

Func sig: () to r8
Type: r8, Value: 0
###
> DefReq(i)
DefReq(i) : i
BndKind:Int, Type:i, Bnd:(0:i)
// () : i
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) newobj ia(i4)
      5) box [ia]
      1) ret
  Total Size: 12

Func sig: () to i
Type: ia, Value: 0
###
> DefReq(qi4)
DefReq(qi4) : i4
BndKind:Int, Type:i4, Bnd:(0:i4)
// () : i4
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) box [i4]
      1) ret
  Total Size: 7

Func sig: () to i4
Type: i4, Value: 0
###
> DefReq(s)
DefReq(s) : s
BndKind:Str, Type:s, Bnd:(str(<null>))
*** Warning: (7,8) Node: s, Message: The type has no required form: 's'
// () : s
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to s
Type: <null>, Value: <null>
###
> DefReq(o)
DefReq(o) : v
BndKind:Default, Type:v, Bnd:(dflt<v>)
// () : v
*** Unsupported Exception: 'Unsupported default value'
###
> DefReq(g)
DefReq(g) : g
BndKind:Null, Type:g, Bnd:(null:g)
*** Warning: (7,8) Node: g, Message: The type has no required form: 'g'
// () : g
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to g
Type: <null>, Value: <null>
###
> DefReq(v)
DefReq(v) : v
BndKind:Default, Type:v, Bnd:(dflt<v>)
// () : v
*** Unsupported Exception: 'Unsupported default value'
###
> DefReq(r)
DefReq(r) : {A:i8}
BndKind:Default, Type:{A:i8}, Bnd:(dflt<{A:i8}>)
// () : {A:i8}
top(Arr<obj>, Arr<obj>):obj
      1) ldarg.0 [Arr<obj>]
      1) ldc.i4.0
      5) ldelem [{i8}]
      1) ret
  Total Size: 8

Func sig: () to {A:i8}
Type: {i8}, Value: { A: 0 }
###
> DefReq(qr)
DefReq(qr) : {A:i8}
BndKind:Default, Type:{A:i8}, Bnd:(dflt<{A:i8}>)
// () : {A:i8}
top(Arr<obj>, Arr<obj>):obj
      1) ldarg.0 [Arr<obj>]
      1) ldc.i4.0
      5) ldelem [{i8}]
      1) ret
  Total Size: 8

Func sig: () to {A:i8}
Type: {i8}, Value: { A: 0 }
###
> Null(b)
Null(b) : b?
BndKind:Null, Type:b?, Bnd:(null:b?)
// () : b?
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) box [Opt<bool>]
      1) ret
  Total Size: 11

Func sig: () to b?
Type: <null>, Value: <null>
###
> Null(i8)
Null(i8) : i8?
BndKind:Null, Type:i8?, Bnd:(null:i8?)
// () : i8?
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<i8>
      5) box [Opt<i8>]
      1) ret
  Total Size: 11

Func sig: () to i8?
Type: <null>, Value: <null>
###
> Null(r8)
Null(r8) : r8?
BndKind:Null, Type:r8?, Bnd:(null:r8?)
// () : r8?
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) box [Opt<r8>]
      1) ret
  Total Size: 11

Func sig: () to r8?
Type: <null>, Value: <null>
###
> Null(i)
Null(i) : i?
BndKind:Null, Type:i?, Bnd:(null:i?)
// () : i?
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<ia>
      5) box [Opt<ia>]
      1) ret
  Total Size: 11

Func sig: () to i?
Type: <null>, Value: <null>
###
> Null(qi4)
Null(qi4) : i4?
BndKind:Null, Type:i4?, Bnd:(null:i4?)
// () : i4?
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<i4>
      5) box [Opt<i4>]
      1) ret
  Total Size: 11

Func sig: () to i4?
Type: <null>, Value: <null>
###
> Null(s)
Null(s) : s
BndKind:Str, Type:s, Bnd:(str(<null>))
// () : s
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to s
Type: <null>, Value: <null>
###
> Null(o)
Null(o) : o
BndKind:Null, Type:o, Bnd:(null)
// () : o
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to o
Type: <null>, Value: <null>
###
> Null(g)
Null(g) : g
BndKind:Null, Type:g, Bnd:(null:g)
// () : g
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to g
Type: <null>, Value: <null>
###
> Null(v)
Null(v) : o
BndKind:Null, Type:o, Bnd:(null)
// () : o
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to o
Type: <null>, Value: <null>
###
> Null(r)
Null(r) : {A:i8}?
BndKind:Null, Type:{A:i8}?, Bnd:(null:{A:i8}?)
// () : {A:i8}?
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to {A:i8}?
Type: <null>, Value: <null>
###
> Null(qr)
Null(qr) : {A:i8}?
BndKind:Null, Type:{A:i8}?, Bnd:(null:{A:i8}?)
// () : {A:i8}?
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to {A:i8}?
Type: <null>, Value: <null>
###

**** New globals: {b:b*, g:g*, i:i*, i1:i1*, i2:i2*, i4:i4*, i8:i8*, o:o*, qb:b?*, qi:i?*, qi1:i1?*, qi2:i2?*, qi4:i4?*, qi8:i8?*, qr:{A:i8}?*, qr4:r4?*, qr8:r8?*, qu1:u1?*, qu2:u2?*, qu4:u4?*, qu8:u8?*, r:{A:i8}*, r4:r4*, r8:r8*, s:s*, u1:u1*, u2:u2*, u4:u4*, u8:u8*, v:v*}
**** New definitions: r, type: {A:i8}*

> Opt(r)
Opt(r) : {A:i8}*
BndKind:Global, Type:{A:i8}*, Bnd:(Global(r))
*** Warning: (4,5) Node: r, Message: The type is already optional: '{A:i8}*'
// (∂.r:{A:i8}*) : {A:i8}*
top(Arr<obj>, Arr<obj>):obj
      1) ldarg.1 [Arr<obj>]
      1) ldc.i4.0
      1) ldelem.ref
      5) call static CodeGenUtil::ToRef(obj):Seq<{i8}>
      1) stloc.0 [Seq<{i8}>]
      1) ldloc.0 [Seq<{i8}>]
      1) ret
  Total Size: 11

Func sig: (r:{A:i8}*) to {A:i8}*
Sequence: Seq<{i8}>
 0) { A: 7 }
###
> DefItem(b)
DefItem(b) : b
BndKind:Int, Type:b, Bnd:(false:b)
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) box [bool]
      1) ret
  Total Size: 7

Func sig: () to b
Type: bool, Value: false
###
> DefItem(i8)
DefItem(i8) : i8
BndKind:Int, Type:i8, Bnd:(0:i8)
// () : i8
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      1) conv.i8
      5) box [i8]
      1) ret
  Total Size: 8

Func sig: () to i8
Type: i8, Value: 0
###
> DefItem(r8)
DefItem(r8) : r8
BndKind:Flt, Type:r8, Bnd:(0:r8)
// () : r8
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [0]
      5) box [r8]
      1) ret
  Total Size: 15

Func sig: () to r8
Type: r8, Value: 0
###
> DefItem(i)
DefItem(i) : i
BndKind:Int, Type:i, Bnd:(0:i)
// () : i
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) newobj ia(i4)
      5) box [ia]
      1) ret
  Total Size: 12

Func sig: () to i
Type: ia, Value: 0
###
> DefItem(qi4)
DefItem(qi4) : i4?
BndKind:Null, Type:i4?, Bnd:(null:i4?)
// () : i4?
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<i4>
      5) box [Opt<i4>]
      1) ret
  Total Size: 11

Func sig: () to i4?
Type: <null>, Value: <null>
###
> DefItem(s)
DefItem(s) : s
BndKind:Str, Type:s, Bnd:(str(<null>))
// () : s
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to s
Type: <null>, Value: <null>
###
> DefItem(o)
DefItem(o) : o
BndKind:Null, Type:o, Bnd:(null)
// () : o
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to o
Type: <null>, Value: <null>
###
> DefItem(g)
DefItem(g) : g
BndKind:Null, Type:g, Bnd:(null:g)
// () : g
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to g
Type: <null>, Value: <null>
###
> DefItem(v)
DefItem(v) : v
BndKind:Default, Type:v, Bnd:(dflt<v>)
// () : v
*** Unsupported Exception: 'Unsupported default value'
###
> DefItem(r)
DefItem(r) : {A:i8}
BndKind:Default, Type:{A:i8}, Bnd:(dflt<{A:i8}>)
// () : {A:i8}
top(Arr<obj>, Arr<obj>):obj
      1) ldarg.0 [Arr<obj>]
      1) ldc.i4.0
      5) ldelem [{i8}]
      1) ret
  Total Size: 8

Func sig: () to {A:i8}
Type: {i8}, Value: { A: 0 }
###
> DefItem(qr)
DefItem(qr) : {A:i8}?
BndKind:Null, Type:{A:i8}?, Bnd:(null:{A:i8}?)
// () : {A:i8}?
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to {A:i8}?
Type: <null>, Value: <null>
###
> DefItemReq(b)
DefItemReq(b) : b
BndKind:Int, Type:b, Bnd:(false:b)
// () : b
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) box [bool]
      1) ret
  Total Size: 7

Func sig: () to b
Type: bool, Value: false
###
> DefItemReq(i8)
DefItemReq(i8) : i8
BndKind:Int, Type:i8, Bnd:(0:i8)
// () : i8
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      1) conv.i8
      5) box [i8]
      1) ret
  Total Size: 8

Func sig: () to i8
Type: i8, Value: 0
###
> DefItemReq(r8)
DefItemReq(r8) : r8
BndKind:Flt, Type:r8, Bnd:(0:r8)
// () : r8
top(Arr<obj>, Arr<obj>):obj
      9) ldc.r8 [0]
      5) box [r8]
      1) ret
  Total Size: 15

Func sig: () to r8
Type: r8, Value: 0
###
> DefItemReq(i)
DefItemReq(i) : i
BndKind:Int, Type:i, Bnd:(0:i)
// () : i
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) newobj ia(i4)
      5) box [ia]
      1) ret
  Total Size: 12

Func sig: () to i
Type: ia, Value: 0
###
> DefItemReq(qi4)
DefItemReq(qi4) : i4
BndKind:Int, Type:i4, Bnd:(0:i4)
// () : i4
top(Arr<obj>, Arr<obj>):obj
      1) ldc.i4.0
      5) box [i4]
      1) ret
  Total Size: 7

Func sig: () to i4
Type: i4, Value: 0
###
> DefItemReq(s)
DefItemReq(s) : s
BndKind:Str, Type:s, Bnd:(str(<null>))
*** Warning: (11,12) Node: s, Message: The type has no required form: 's'
// () : s
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to s
Type: <null>, Value: <null>
###
> DefItemReq(o)
DefItemReq(o) : v
BndKind:Default, Type:v, Bnd:(dflt<v>)
// () : v
*** Unsupported Exception: 'Unsupported default value'
###
> DefItemReq(g)
DefItemReq(g) : g
BndKind:Null, Type:g, Bnd:(null:g)
*** Warning: (11,12) Node: g, Message: The type has no required form: 'g'
// () : g
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to g
Type: <null>, Value: <null>
###
> DefItemReq(v)
DefItemReq(v) : v
BndKind:Default, Type:v, Bnd:(dflt<v>)
// () : v
*** Unsupported Exception: 'Unsupported default value'
###
> DefItemReq(r)
DefItemReq(r) : {A:i8}
BndKind:Default, Type:{A:i8}, Bnd:(dflt<{A:i8}>)
// () : {A:i8}
top(Arr<obj>, Arr<obj>):obj
      1) ldarg.0 [Arr<obj>]
      1) ldc.i4.0
      5) ldelem [{i8}]
      1) ret
  Total Size: 8

Func sig: () to {A:i8}
Type: {i8}, Value: { A: 0 }
###
> DefItemReq(qr)
DefItemReq(qr) : {A:i8}
BndKind:Default, Type:{A:i8}, Bnd:(dflt<{A:i8}>)
// () : {A:i8}
top(Arr<obj>, Arr<obj>):obj
      1) ldarg.0 [Arr<obj>]
      1) ldc.i4.0
      5) ldelem [{i8}]
      1) ret
  Total Size: 8

Func sig: () to {A:i8}
Type: {i8}, Value: { A: 0 }
###
> NullItem(b)
NullItem(b) : b?
BndKind:Null, Type:b?, Bnd:(null:b?)
// () : b?
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<bool>
      5) box [Opt<bool>]
      1) ret
  Total Size: 11

Func sig: () to b?
Type: <null>, Value: <null>
###
> NullItem(i8)
NullItem(i8) : i8?
BndKind:Null, Type:i8?, Bnd:(null:i8?)
// () : i8?
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<i8>
      5) box [Opt<i8>]
      1) ret
  Total Size: 11

Func sig: () to i8?
Type: <null>, Value: <null>
###
> NullItem(r8)
NullItem(r8) : r8?
BndKind:Null, Type:r8?, Bnd:(null:r8?)
// () : r8?
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<r8>
      5) box [Opt<r8>]
      1) ret
  Total Size: 11

Func sig: () to r8?
Type: <null>, Value: <null>
###
> NullItem(i)
NullItem(i) : i?
BndKind:Null, Type:i?, Bnd:(null:i?)
// () : i?
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<ia>
      5) box [Opt<ia>]
      1) ret
  Total Size: 11

Func sig: () to i?
Type: <null>, Value: <null>
###
> NullItem(qi4)
NullItem(qi4) : i4?
BndKind:Null, Type:i4?, Bnd:(null:i4?)
// () : i4?
top(Arr<obj>, Arr<obj>):obj
      5) call static CodeGenUtil::GetDefault():Opt<i4>
      5) box [Opt<i4>]
      1) ret
  Total Size: 11

Func sig: () to i4?
Type: <null>, Value: <null>
###
> NullItem(s)
NullItem(s) : s
BndKind:Str, Type:s, Bnd:(str(<null>))
// () : s
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to s
Type: <null>, Value: <null>
###
> NullItem(o)
NullItem(o) : o
BndKind:Null, Type:o, Bnd:(null)
// () : o
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to o
Type: <null>, Value: <null>
###
> NullItem(g)
NullItem(g) : g
BndKind:Null, Type:g, Bnd:(null:g)
// () : g
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to g
Type: <null>, Value: <null>
###
> NullItem(v)
NullItem(v) : o
BndKind:Null, Type:o, Bnd:(null)
// () : o
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to o
Type: <null>, Value: <null>
###
> NullItem(r)
NullItem(r) : {A:i8}?
BndKind:Null, Type:{A:i8}?, Bnd:(null:{A:i8}?)
// () : {A:i8}?
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to {A:i8}?
Type: <null>, Value: <null>
###
> NullItem(qr)
NullItem(qr) : {A:i8}?
BndKind:Null, Type:{A:i8}?, Bnd:(null:{A:i8}?)
// () : {A:i8}?
top(Arr<obj>, Arr<obj>):obj
      1) ldnull
      1) ret
  Total Size: 2

Func sig: () to {A:i8}?
Type: <null>, Value: <null>
###
