﻿:: {g:g, o:o, s:s, b:b, qb:b?, n:n, qn:n?, r8:r8, qr8:r8?, r4:r4, qr4:r4?, i:i, qi:i?, i8:i8, qi8:i8?, i4:i4, qi4:i4?, i2:i2, qi2:i2?, i1:i1, qi1:i1?, u8:u8, qu8:u8?, u4:u4, qu4:u4?, u2:u2, qu2:u2?, u1:u1, qu1:u1?}

8 mod 3
8 mod 1
i1 mod 1
i8 mod 1
u1 mod 1
u8 mod 1
u8 mod 1u8

53 mod 4
53 mod 4u8
53 mod 4ia
53u8 mod 4
53u8 mod 4u8
53u8 mod 4ia
53ia mod 4
53ia mod 4u8
53ia mod 4ia

 2 mod  1
 2 mod -1
-2 mod  1
-2 mod -1

 2 mod 0
-2 mod 0

0x3FFFFFFF mod 2
0x3FFFFFFF mod 4
0x7FFFFFFFU4 mod 2
0x7FFFFFFFU4 mod 2U4
0x7FFFFFFFU4 mod 4
0x7FFFFFFFU8 mod 2
0x7FFFFFFFU8 mod 2U8
0x7FFFFFFFU8 mod 4

3 mod null
null mod 3
0 mod null
null mod 0

i4 mod 3
3 mod i4

i4 mod null
null mod i4

i4 mod 2 mod null
null mod i4 mod 2

i1 mod i2 mod i2
i1 mod i2 mod i4
i4 mod i2 mod i1

(i1 mod 3) mod (i2 mod 2)
(i1 mod 3i1) mod (i2 mod i4)

i1 mod 3i1 mod 2i1
i1 mod -1i1 mod -1i1
i1 mod 3i1 mod -1i1

i2 mod qi2 mod i1
i4 mod qi2 mod i1

3 mod true
true mod 3
false mod true
true mod false
"3" mod true
3 mod "true"
"3" mod "true"

2.0f mod 4.0f
2.0d mod 4.0d

3 mod g
3 mod o
3 mod s
3 mod b
3 mod n
3 mod r8
3 mod r4
3 mod i
3 mod i8
3 mod i4
3 mod i2
3 mod i1
3 mod u8
3 mod u4
3 mod u2
3 mod u1

3u mod g
3u mod o
3u mod s
3u mod b
3u mod n
3u mod r8
3u mod r4
3u mod i
3u mod i8
3u mod i4
3u mod i2
3u mod i1
3u mod u8
3u mod u4
3u mod u2
3u mod u1

null mod g
null mod o
null mod s
null mod b
null mod n
null mod r8
null mod r4
null mod i
null mod i8
null mod i4
null mod i2
null mod i1
null mod u8
null mod u4
null mod u2
null mod u1

3 mod qb
3 mod qn
3 mod qr8
3 mod qr4
3 mod qi
3 mod qi8
3 mod qi4
3 mod qi2
3 mod qi1
3 mod qu8
3 mod qu4
3 mod qu2
3 mod qu1

3u mod qb
3u mod qn
3u mod qr8
3u mod qr4
3u mod qi
3u mod qi8
3u mod qi4
3u mod qi2
3u mod qi1
3u mod qu8
3u mod qu4
3u mod qu2
3u mod qu1

null mod qb
null mod qn
null mod qr8
null mod qr4
null mod qi
null mod qi8
null mod qi4
null mod qi2
null mod qi1
null mod qu8
null mod qu4
null mod qu2
null mod qu1

i mod qb
i mod qn
i mod qr8
i mod qr4
i mod qi
i mod qi8
i mod qi4
i mod qi2
i mod qi1
i mod qu8
i mod qu4
i mod qu2
i mod qu1

qi mod qb
qi mod qn
qi mod qr8
qi mod qr4
qi mod qi
qi mod qi8
qi mod qi4
qi mod qi2
qi mod qi1
qi mod qu8
qi mod qu4
qi mod qu2
qi mod qu1

// *** Lifting
:: {g:g*, o:o*, s:s*, b:b*, qb:b?*, n:n*, qn:n?*, r8:r8*, qr8:r8?*, r4:r4*, qr4:r4?*, i:i*, qi:i?*, i8:i8*, qi8:i8?*, i4:i4*, qi4:i4?*, i2:i2*, qi2:i2?*, i1:i1*, qi1:i1?*, u8:u8*, qu8:u8?*, u4:u4*, qu4:u4?*, u2:u2*, qu2:u2?*, u1:u1*, qu1:u1?*}

3 mod g
3 mod o
3 mod s
3 mod b
3 mod n
3 mod r8
3 mod r4
3 mod i
3 mod i8
3 mod i4
3 mod i2
3 mod i1
3 mod u8
3 mod u4
3 mod u2
3 mod u1

3 mod qb
3 mod qn
3 mod qr8
3 mod qr4
3 mod qi
3 mod qi8
3 mod qi4
3 mod qi2
3 mod qi1
3 mod qu8
3 mod qu4
3 mod qu2
3 mod qu1
