> (4^2,  Wrap(4)^Wrap(2))
(4^2, Wrap(4)^Wrap(2)) : (i8, i8)
BndKind:Tuple, Type:(i8, i8), Bnd:((16:i8, Power(Call(∂.Test.Wrap(4:i8):i8), Call(∂.Test.Wrap(2:i8):i8))):(i8, i8))
Func sig: () to (i8, i8)
Type: (i8,i8), Value: (16, 16)
###
> (4^0,  Wrap(4)^Wrap(0))
(4^0, Wrap(4)^Wrap(0)) : (i8, i8)
BndKind:Tuple, Type:(i8, i8), Bnd:((1:i8, Power(Call(∂.Test.Wrap(4:i8):i8), Call(∂.Test.Wrap(0:i8):i8))):(i8, i8))
Func sig: () to (i8, i8)
Type: (i8,i8), Value: (1, 1)
###
> (4^-1, Wrap(4)^Wrap(-1))
(4^-1, Wrap(4)^Wrap(-1)) : (i8, i8)
BndKind:Tuple, Type:(i8, i8), Bnd:((1:i8, Power(Call(∂.Test.Wrap(4:i8):i8), Call(∂.Test.Wrap(-1:i8):i8))):(i8, i8))
Func sig: () to (i8, i8)
Type: (i8,i8), Value: (1, 1)
###
> (4u8^2,  Wrap(4u8)^Wrap(2))
(4^2, Wrap(4)^Wrap(2)) : (u8, u8)
BndKind:Tuple, Type:(u8, u8), Bnd:((16:u8, Power(Call(∂.Test.Wrap(4:u8):u8), Call(∂.Test.Wrap(2:i8):i8))):(u8, u8))
Func sig: () to (u8, u8)
Type: (u8,u8), Value: (16, 16)
###
> (4u8^0,  Wrap(4u8)^Wrap(0))
(4^0, Wrap(4)^Wrap(0)) : (u8, u8)
BndKind:Tuple, Type:(u8, u8), Bnd:((1:u8, Power(Call(∂.Test.Wrap(4:u8):u8), Call(∂.Test.Wrap(0:i8):i8))):(u8, u8))
Func sig: () to (u8, u8)
Type: (u8,u8), Value: (1, 1)
###
> (4u8^-1, Wrap(4u8)^Wrap(-1))
(4^-1, Wrap(4)^Wrap(-1)) : (u8, u8)
BndKind:Tuple, Type:(u8, u8), Bnd:((1:u8, Power(Call(∂.Test.Wrap(4:u8):u8), Call(∂.Test.Wrap(-1:i8):i8))):(u8, u8))
Func sig: () to (u8, u8)
Type: (u8,u8), Value: (1, 1)
###
> (4r^2,  Wrap(4r)^Wrap(2))
(4^2, Wrap(4)^Wrap(2)) : (r8, r8)
BndKind:Tuple, Type:(r8, r8), Bnd:((16:r8, Power(Call(∂.Test.Wrap(4:r8):r8), Num<r8>(Call(∂.Test.Wrap(2:i8):i8)))):(r8, r8))
Func sig: () to (r8, r8)
Type: (r8,r8), Value: (16, 16)
###
> (4r^0,  Wrap(4r)^Wrap(0))
(4^0, Wrap(4)^Wrap(0)) : (r8, r8)
BndKind:Tuple, Type:(r8, r8), Bnd:((1:r8, Power(Call(∂.Test.Wrap(4:r8):r8), Num<r8>(Call(∂.Test.Wrap(0:i8):i8)))):(r8, r8))
Func sig: () to (r8, r8)
Type: (r8,r8), Value: (1, 1)
###
> (4r^-1, Wrap(4r)^Wrap(-1))
(4^-1, Wrap(4)^Wrap(-1)) : (r8, r8)
BndKind:Tuple, Type:(r8, r8), Bnd:((0.25:r8, Power(Call(∂.Test.Wrap(4:r8):r8), Num<r8>(Call(∂.Test.Wrap(-1:i8):i8)))):(r8, r8))
Func sig: () to (r8, r8)
Type: (r8,r8), Value: (0.25, 0.25)
###
> (4ia^2,  Wrap(4ia)^Wrap(2))
(4^2, Wrap(4)^Wrap(2)) : (r8, r8)
BndKind:Tuple, Type:(r8, r8), Bnd:((16:r8, Power(Num<r8>(Call(∂.Test.Wrap(4:i):i)), Num<r8>(Call(∂.Test.Wrap(2:i8):i8)))):(r8, r8))
Func sig: () to (r8, r8)
Type: (r8,r8), Value: (16, 16)
###
> (4ia^0,  Wrap(4ia)^Wrap(0))
(4^0, Wrap(4)^Wrap(0)) : (r8, r8)
BndKind:Tuple, Type:(r8, r8), Bnd:((1:r8, Power(Num<r8>(Call(∂.Test.Wrap(4:i):i)), Num<r8>(Call(∂.Test.Wrap(0:i8):i8)))):(r8, r8))
Func sig: () to (r8, r8)
Type: (r8,r8), Value: (1, 1)
###
> (4ia^-1, Wrap(4ia)^Wrap(-1))
(4^-1, Wrap(4)^Wrap(-1)) : (r8, r8)
BndKind:Tuple, Type:(r8, r8), Bnd:((0.25:r8, Power(Num<r8>(Call(∂.Test.Wrap(4:i):i)), Num<r8>(Call(∂.Test.Wrap(-1:i8):i8)))):(r8, r8))
Func sig: () to (r8, r8)
Type: (r8,r8), Value: (0.25, 0.25)
###
