**** New globals: {b:(b, b), d:d, i:i, i1:i1, i2:i2, i4:i4, i8:i8, qb:(b, b)?, qi:i?, qi1:i1?, qi2:i2?, qi4:i4?, qi8:i8?, qr4:r4?, qr8:r8?, qu1:u1?, qu2:u2?, qu4:u4?, qu8:u8?, r4:r4, r8:r8, t:t, u1:u1, u2:u2, u4:u4, u8:u8}

> -t
-t : t
Binder : ChronoMul(t, -1)
###
> -d
-d : t
*** Error: (1,2) Node: d, Message: Invalid operand type: cannot convert type 'd' to 't'
Binder : ChronoMul(Error(ErrBadType_Src_Dst), -1)
###
> d + t
d + t : d
Binder : ChronoAdd(d, t)
###
> d - t
d - t : d
Binder : ChronoSub(d, t)
###
> d - d
d - d : t
Binder : ChronoSub(d, d)
###
> t * i
t * i : t
Binder : ChronoMul(t, Num<r8>(i))
###
> t * i1
t * i1 : t
Binder : ChronoMul(t, Num<i8>(i1))
###
> t * i2
t * i2 : t
Binder : ChronoMul(t, Num<i8>(i2))
###
> t * i4
t * i4 : t
Binder : ChronoMul(t, Num<i8>(i4))
###
> t * i8
t * i8 : t
Binder : ChronoMul(t, i8)
###
> t * qi
t * qi : t?
Binder : Guard(?1: qi, ChronoMul(t, Num<r8>(?1)))
###
> t * qi1
t * qi1 : t?
Binder : Guard(?1: qi1, ChronoMul(t, Num<i8>(?1)))
###
> t * qi2
t * qi2 : t?
Binder : Guard(?1: qi2, ChronoMul(t, Num<i8>(?1)))
###
> t * qi4
t * qi4 : t?
Binder : Guard(?1: qi4, ChronoMul(t, Num<i8>(?1)))
###
> t * qi8
t * qi8 : t?
Binder : Guard(?1: qi8, ChronoMul(t, ?1))
###
> t * r4
t * r4 : t
Binder : ChronoMul(t, Num<r8>(r4))
###
> t * r8
t * r8 : t
Binder : ChronoMul(t, r8)
###
> t * qr4
t * qr4 : t?
Binder : Guard(?1: qr4, ChronoMul(t, Num<r8>(?1)))
###
> t * qr8
t * qr8 : t?
Binder : Guard(?1: qr8, ChronoMul(t, ?1))
###
> t * u1
t * u1 : t
Binder : ChronoMul(t, Num<i8>(u1))
###
> t * u2
t * u2 : t
Binder : ChronoMul(t, Num<i8>(u2))
###
> t * u4
t * u4 : t
Binder : ChronoMul(t, Num<i8>(u4))
###
> t * u8
t * u8 : t
*** Warning: (4,6) Node: u8, Message: Conversion from unsigned to signed integer can reinterpret large values as negative
Binder : ChronoMul(t, Num<i8>(u8))
###
> t * qu1
t * qu1 : t?
Binder : Guard(?1: qu1, ChronoMul(t, Num<i8>(?1)))
###
> t * qu2
t * qu2 : t?
Binder : Guard(?1: qu2, ChronoMul(t, Num<i8>(?1)))
###
> t * qu4
t * qu4 : t?
Binder : Guard(?1: qu4, ChronoMul(t, Num<i8>(?1)))
###
> t * qu8
t * qu8 : t?
*** Warning: (4,7) Node: qu8, Message: Conversion from unsigned to signed integer can reinterpret large values as negative
Binder : Guard(?1: qu8, ChronoMul(t, Num<i8>(?1)))
###
> i   * t
i * t : t
Binder : ChronoMul(t, Num<r8>(i))
###
> i1  * t
i1 * t : t
Binder : ChronoMul(t, Num<i8>(i1))
###
> i2  * t
i2 * t : t
Binder : ChronoMul(t, Num<i8>(i2))
###
> i4  * t
i4 * t : t
Binder : ChronoMul(t, Num<i8>(i4))
###
> i8  * t
i8 * t : t
Binder : ChronoMul(t, i8)
###
> qi  * t
qi * t : t?
Binder : Guard(?1: qi, ChronoMul(t, Num<r8>(?1)))
###
> qi1 * t
qi1 * t : t?
Binder : Guard(?1: qi1, ChronoMul(t, Num<i8>(?1)))
###
> qi2 * t
qi2 * t : t?
Binder : Guard(?1: qi2, ChronoMul(t, Num<i8>(?1)))
###
> qi4 * t
qi4 * t : t?
Binder : Guard(?1: qi4, ChronoMul(t, Num<i8>(?1)))
###
> qi8 * t
qi8 * t : t?
Binder : Guard(?1: qi8, ChronoMul(t, ?1))
###
> r4  * t
r4 * t : t
Binder : ChronoMul(t, Num<r8>(r4))
###
> r8  * t
r8 * t : t
Binder : ChronoMul(t, r8)
###
> qr4 * t
qr4 * t : t?
Binder : Guard(?1: qr4, ChronoMul(t, Num<r8>(?1)))
###
> qr8 * t
qr8 * t : t?
Binder : Guard(?1: qr8, ChronoMul(t, ?1))
###
> u1  * t
u1 * t : t
Binder : ChronoMul(t, Num<i8>(u1))
###
> u2  * t
u2 * t : t
Binder : ChronoMul(t, Num<i8>(u2))
###
> u4  * t
u4 * t : t
Binder : ChronoMul(t, Num<i8>(u4))
###
> u8  * t
u8 * t : t
*** Warning: (0,2) Node: u8, Message: Conversion from unsigned to signed integer can reinterpret large values as negative
Binder : ChronoMul(t, Num<i8>(u8))
###
> qu1 * t
qu1 * t : t?
Binder : Guard(?1: qu1, ChronoMul(t, Num<i8>(?1)))
###
> qu2 * t
qu2 * t : t?
Binder : Guard(?1: qu2, ChronoMul(t, Num<i8>(?1)))
###
> qu4 * t
qu4 * t : t?
Binder : Guard(?1: qu4, ChronoMul(t, Num<i8>(?1)))
###
> qu8 * t
qu8 * t : t?
*** Warning: (0,3) Node: qu8, Message: Conversion from unsigned to signed integer can reinterpret large values as negative
Binder : Guard(?1: qu8, ChronoMul(t, Num<i8>(?1)))
###
> t / t
t / t : r8
Binder : ChronoDiv(t, t)
###
> t / i
t / i : t
Binder : ChronoDiv(t, Num<r8>(i))
###
> t / i1
t / i1 : t
Binder : ChronoDiv(t, Num<r8>(i1))
###
> t / i2
t / i2 : t
Binder : ChronoDiv(t, Num<r8>(i2))
###
> t / i4
t / i4 : t
Binder : ChronoDiv(t, Num<r8>(i4))
###
> t / i8
t / i8 : t
Binder : ChronoDiv(t, Num<r8>(i8))
###
> t / qi
t / qi : t?
Binder : Guard(?1: qi, ChronoDiv(t, Num<r8>(?1)))
###
> t / qi1
t / qi1 : t?
Binder : Guard(?1: qi1, ChronoDiv(t, Num<r8>(?1)))
###
> t / qi2
t / qi2 : t?
Binder : Guard(?1: qi2, ChronoDiv(t, Num<r8>(?1)))
###
> t / qi4
t / qi4 : t?
Binder : Guard(?1: qi4, ChronoDiv(t, Num<r8>(?1)))
###
> t / qi8
t / qi8 : t?
Binder : Guard(?1: qi8, ChronoDiv(t, Num<r8>(?1)))
###
> t / r4
t / r4 : t
Binder : ChronoDiv(t, Num<r8>(r4))
###
> t / r8
t / r8 : t
Binder : ChronoDiv(t, r8)
###
> t / qr4
t / qr4 : t?
Binder : Guard(?1: qr4, ChronoDiv(t, Num<r8>(?1)))
###
> t / qr8
t / qr8 : t?
Binder : Guard(?1: qr8, ChronoDiv(t, ?1))
###
> t / u1
t / u1 : t
Binder : ChronoDiv(t, Num<r8>(u1))
###
> t / u2
t / u2 : t
Binder : ChronoDiv(t, Num<r8>(u2))
###
> t / u4
t / u4 : t
Binder : ChronoDiv(t, Num<r8>(u4))
###
> t / u8
t / u8 : t
Binder : ChronoDiv(t, Num<r8>(u8))
###
> t / qu1
t / qu1 : t?
Binder : Guard(?1: qu1, ChronoDiv(t, Num<r8>(?1)))
###
> t / qu2
t / qu2 : t?
Binder : Guard(?1: qu2, ChronoDiv(t, Num<r8>(?1)))
###
> t / qu4
t / qu4 : t?
Binder : Guard(?1: qu4, ChronoDiv(t, Num<r8>(?1)))
###
> t / qu8
t / qu8 : t?
Binder : Guard(?1: qu8, ChronoDiv(t, Num<r8>(?1)))
###
> t div t
t div t : i8
Binder : ChronoDiv(t, t)
###
> t div i
t div i : t
*** Error: (6,7) Node: i, Message: Invalid operand type: cannot convert type 'i' to 'i8'
Binder : ChronoDiv(t, Error(ErrBadType_Src_Dst))
###
> t div i1
t div i1 : t
Binder : ChronoDiv(t, Num<i8>(i1))
###
> t div i2
t div i2 : t
Binder : ChronoDiv(t, Num<i8>(i2))
###
> t div i4
t div i4 : t
Binder : ChronoDiv(t, Num<i8>(i4))
###
> t div i8
t div i8 : t
Binder : ChronoDiv(t, i8)
###
> t div qi
t div qi : t?
*** Error: (6,8) Node: qi, Message: Invalid operand type: cannot convert type 'i' to 'i8'
Binder : Guard(?1: qi, ChronoDiv(t, Error(ErrBadType_Src_Dst)))
###
> t div qi1
t div qi1 : t?
Binder : Guard(?1: qi1, ChronoDiv(t, Num<i8>(?1)))
###
> t div qi2
t div qi2 : t?
Binder : Guard(?1: qi2, ChronoDiv(t, Num<i8>(?1)))
###
> t div qi4
t div qi4 : t?
Binder : Guard(?1: qi4, ChronoDiv(t, Num<i8>(?1)))
###
> t div qi8
t div qi8 : t?
Binder : Guard(?1: qi8, ChronoDiv(t, ?1))
###
> t div r4
t div r4 : t
*** Error: (6,8) Node: r4, Message: Invalid operand type: cannot convert type 'r4' to 'i8'
Binder : ChronoDiv(t, Error(ErrBadType_Src_Dst))
###
> t div r8
t div r8 : t
*** Error: (6,8) Node: r8, Message: Invalid operand type: cannot convert type 'r8' to 'i8'
Binder : ChronoDiv(t, Error(ErrBadType_Src_Dst))
###
> t div qr4
t div qr4 : t?
*** Error: (6,9) Node: qr4, Message: Invalid operand type: cannot convert type 'r4' to 'i8'
Binder : Guard(?1: qr4, ChronoDiv(t, Error(ErrBadType_Src_Dst)))
###
> t div qr8
t div qr8 : t?
*** Error: (6,9) Node: qr8, Message: Invalid operand type: cannot convert type 'r8' to 'i8'
Binder : Guard(?1: qr8, ChronoDiv(t, Error(ErrBadType_Src_Dst)))
###
> t div u1
t div u1 : t
Binder : ChronoDiv(t, Num<i8>(u1))
###
> t div u2
t div u2 : t
Binder : ChronoDiv(t, Num<i8>(u2))
###
> t div u4
t div u4 : t
Binder : ChronoDiv(t, Num<i8>(u4))
###
> t div u8
t div u8 : t
*** Warning: (6,8) Node: u8, Message: Conversion from unsigned to signed integer can reinterpret large values as negative
Binder : ChronoDiv(t, Num<i8>(u8))
###
> t div qu1
t div qu1 : t?
Binder : Guard(?1: qu1, ChronoDiv(t, Num<i8>(?1)))
###
> t div qu2
t div qu2 : t?
Binder : Guard(?1: qu2, ChronoDiv(t, Num<i8>(?1)))
###
> t div qu4
t div qu4 : t?
Binder : Guard(?1: qu4, ChronoDiv(t, Num<i8>(?1)))
###
> t div qu8
t div qu8 : t?
*** Warning: (6,9) Node: qu8, Message: Conversion from unsigned to signed integer can reinterpret large values as negative
Binder : Guard(?1: qu8, ChronoDiv(t, Num<i8>(?1)))
###
> t mod t
t mod t : t
Binder : ChronoMod(t, t)
###
> d + d
d + d : v
*** Error: (2,3) Node: d + d, Message: Operator '+' not valid for types 'd' and 'd'
Binder : Error(ErrBadOperatorForType_Op_Left_Right)
###
> t + i4
t + i4 : t
*** Error: (4,6) Node: i4, Message: Invalid operand type: cannot convert type 'i4' to 't'
Binder : ChronoAdd(t, Error(ErrBadType_Src_Dst))
###
> t - r8
t - r8 : t
*** Error: (4,6) Node: r8, Message: Invalid operand type: cannot convert type 'r8' to 't'
Binder : ChronoSub(t, Error(ErrBadType_Src_Dst))
###
> t * t
t * t : t
*** Error: (4,5) Node: t, Message: Invalid operand type: cannot convert type 't' to 'r8'
Binder : ChronoMul(t, Error(ErrBadType_Src_Dst))
###
> d * t
d * t : t
*** Error: (0,1) Node: d, Message: Invalid operand type: cannot convert type 'd' to 'r8'
Binder : ChronoMul(t, Error(ErrBadType_Src_Dst))
###
> d * d
d * d : t
*** Error: (0,1) Node: d, Message: Invalid operand type: cannot convert type 'd' to 't'
*** Error: (4,5) Node: d, Message: Invalid operand type: cannot convert type 'd' to 'r8'
Binder : ChronoMul(Error(ErrBadType_Src_Dst), Error(ErrBadType_Src_Dst))
###
> d * r8
d * r8 : t
*** Error: (0,1) Node: d, Message: Invalid operand type: cannot convert type 'd' to 't'
Binder : ChronoMul(Error(ErrBadType_Src_Dst), r8)
###
> d * i4
d * i4 : t
*** Error: (0,1) Node: d, Message: Invalid operand type: cannot convert type 'd' to 't'
Binder : ChronoMul(Error(ErrBadType_Src_Dst), Num<i8>(i4))
###
> r8 / t
r8 / t : r8
*** Error: (0,2) Node: r8, Message: Invalid operand type: cannot convert type 'r8' to 't'
Binder : ChronoDiv(Error(ErrBadType_Src_Dst), t)
###
> d / t
d / t : r8
*** Error: (0,1) Node: d, Message: Invalid operand type: cannot convert type 'd' to 't'
Binder : ChronoDiv(Error(ErrBadType_Src_Dst), t)
###
> t / d
t / d : r8
*** Error: (4,5) Node: d, Message: Invalid operand type: cannot convert type 'd' to 't'
Binder : ChronoDiv(t, Error(ErrBadType_Src_Dst))
###
> d / d
d / d : r8
*** Error: (0,1) Node: d, Message: Invalid operand type: cannot convert type 'd' to 't'
*** Error: (4,5) Node: d, Message: Invalid operand type: cannot convert type 'd' to 't'
Binder : ChronoDiv(Error(ErrBadType_Src_Dst), Error(ErrBadType_Src_Dst))
###
> d / r8
d / r8 : t
*** Error: (0,1) Node: d, Message: Invalid operand type: cannot convert type 'd' to 't'
Binder : ChronoDiv(Error(ErrBadType_Src_Dst), r8)
###
> d / i8
d / i8 : t
*** Error: (0,1) Node: d, Message: Invalid operand type: cannot convert type 'd' to 't'
Binder : ChronoDiv(Error(ErrBadType_Src_Dst), Num<r8>(i8))
###
> d + b
d + b : d
*** Error: (4,5) Node: b, Message: Invalid operand type: cannot convert type '(b, b)' to 't'
Binder : ChronoAdd(d, Error(ErrBadType_Src_Dst))
###
> d - b
d - b : d
*** Error: (4,5) Node: b, Message: Invalid operand type: cannot convert type '(b, b)' to 't'
Binder : ChronoSub(d, Error(ErrBadType_Src_Dst))
###
> d * b
d * b : t
*** Error: (0,1) Node: d, Message: Invalid operand type: cannot convert type 'd' to 't'
*** Error: (4,5) Node: b, Message: Invalid operand type: cannot convert type '(b, b)' to 'r8'
Binder : ChronoMul(Error(ErrBadType_Src_Dst), Error(ErrBadType_Src_Dst))
###
> d / b
d / b : t
*** Error: (0,1) Node: d, Message: Invalid operand type: cannot convert type 'd' to 't'
*** Error: (4,5) Node: b, Message: Invalid operand type: cannot convert type '(b, b)' to 'r8'
Binder : ChronoDiv(Error(ErrBadType_Src_Dst), Error(ErrBadType_Src_Dst))
###
> b / d
b / d : r8
*** Error: (0,1) Node: b, Message: Invalid operand type: cannot convert type '(b, b)' to 't'
*** Error: (4,5) Node: d, Message: Invalid operand type: cannot convert type 'd' to 't'
Binder : ChronoDiv(Error(ErrBadType_Src_Dst), Error(ErrBadType_Src_Dst))
###
> t + b
t + b : t
*** Error: (4,5) Node: b, Message: Invalid operand type: cannot convert type '(b, b)' to 't'
Binder : ChronoAdd(t, Error(ErrBadType_Src_Dst))
###
> t - b
t - b : t
*** Error: (4,5) Node: b, Message: Invalid operand type: cannot convert type '(b, b)' to 't'
Binder : ChronoSub(t, Error(ErrBadType_Src_Dst))
###
> t * b
t * b : t
*** Error: (4,5) Node: b, Message: Invalid operand type: cannot convert type '(b, b)' to 'r8'
Binder : ChronoMul(t, Error(ErrBadType_Src_Dst))
###
> t / b
t / b : t
*** Error: (4,5) Node: b, Message: Invalid operand type: cannot convert type '(b, b)' to 'r8'
Binder : ChronoDiv(t, Error(ErrBadType_Src_Dst))
###
> b / t
b / t : r8
*** Error: (0,1) Node: b, Message: Invalid operand type: cannot convert type '(b, b)' to 't'
Binder : ChronoDiv(Error(ErrBadType_Src_Dst), t)
###
> d + qb
d + qb : d?
*** Error: (4,6) Node: qb, Message: Invalid operand type: cannot convert type '(b, b)' to 't'
Binder : Guard(?1: qb, ChronoAdd(d, Error(ErrBadType_Src_Dst)))
###
> d - qb
d - qb : d?
*** Error: (4,6) Node: qb, Message: Invalid operand type: cannot convert type '(b, b)' to 't'
Binder : Guard(?1: qb, ChronoSub(d, Error(ErrBadType_Src_Dst)))
###
> d * qb
d * qb : t?
*** Error: (0,1) Node: d, Message: Invalid operand type: cannot convert type 'd' to 't'
*** Error: (4,6) Node: qb, Message: Invalid operand type: cannot convert type '(b, b)' to 'r8'
Binder : Guard(?1: qb, ChronoMul(Error(ErrBadType_Src_Dst), Error(ErrBadType_Src_Dst)))
###
> d / qb
d / qb : t?
*** Error: (0,1) Node: d, Message: Invalid operand type: cannot convert type 'd' to 't'
*** Error: (4,6) Node: qb, Message: Invalid operand type: cannot convert type '(b, b)' to 'r8'
Binder : Guard(?1: qb, ChronoDiv(Error(ErrBadType_Src_Dst), Error(ErrBadType_Src_Dst)))
###
> qb / d
qb / d : r8?
*** Error: (0,2) Node: qb, Message: Invalid operand type: cannot convert type '(b, b)' to 't'
*** Error: (5,6) Node: d, Message: Invalid operand type: cannot convert type 'd' to 't'
Binder : Guard(?1: qb, ChronoDiv(Error(ErrBadType_Src_Dst), Error(ErrBadType_Src_Dst)))
###
> t + qb
t + qb : t?
*** Error: (4,6) Node: qb, Message: Invalid operand type: cannot convert type '(b, b)' to 't'
Binder : Guard(?1: qb, ChronoAdd(t, Error(ErrBadType_Src_Dst)))
###
> t - qb
t - qb : t?
*** Error: (4,6) Node: qb, Message: Invalid operand type: cannot convert type '(b, b)' to 't'
Binder : Guard(?1: qb, ChronoSub(t, Error(ErrBadType_Src_Dst)))
###
> t * qb
t * qb : t?
*** Error: (4,6) Node: qb, Message: Invalid operand type: cannot convert type '(b, b)' to 'r8'
Binder : Guard(?1: qb, ChronoMul(t, Error(ErrBadType_Src_Dst)))
###
> t / qb
t / qb : t?
*** Error: (4,6) Node: qb, Message: Invalid operand type: cannot convert type '(b, b)' to 'r8'
Binder : Guard(?1: qb, ChronoDiv(t, Error(ErrBadType_Src_Dst)))
###
> qb / t
qb / t : r8?
*** Error: (0,2) Node: qb, Message: Invalid operand type: cannot convert type '(b, b)' to 't'
Binder : Guard(?1: qb, ChronoDiv(Error(ErrBadType_Src_Dst), t))
###
> i8 div t
i8 div t : i8
*** Error: (0,2) Node: i8, Message: Invalid operand type: cannot convert type 'i8' to 't'
Binder : ChronoDiv(Error(ErrBadType_Src_Dst), t)
###
> t mod i8
t mod i8 : t
*** Error: (6,8) Node: i8, Message: Invalid operand type: cannot convert type 'i8' to 't'
Binder : ChronoMod(t, Error(ErrBadType_Src_Dst))
###
> i8 mod t
i8 mod t : t
*** Error: (0,2) Node: i8, Message: Invalid operand type: cannot convert type 'i8' to 't'
Binder : ChronoMod(Error(ErrBadType_Src_Dst), t)
###
