﻿:: {g:g, o:o, s:s, b:b, qb:b?, d:d, qd:d?, 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?}

Mod(3, 4)
Mod(2, -1)
Mod(2, 0)

Mod(-0, 2)
Mod(-0f, 2f)
Mod(-0.0, 2.0)

Mod(-2, -0)
Mod(-2f, -0f)
Mod(-2.0, -0.0)

Mod(0x3FFF_FFFFI4, 2I4)
Mod(0x3FFF_FFFFI4, 4I4)
Mod(0x7FFF_FFFFU4, 2I4) // i8
Mod(0x7FFF_FFFFU4, 2U4) // i8
Mod(0x7FFF_FFFFU4, 4I4) // i8
Mod(0x3FFF_FFFF, 2)
Mod(0x3FFF_FFFF, 4)
Mod(0x7FFF_FFFFU, 2 ) // i8
Mod(0x7FFF_FFFFU, 2U) // u8
Mod(0x7FFF_FFFFU, 4 ) // i8
Mod(0x3FFF_FFFF_FFFF_FFFF, 2)
Mod(0x3FFF_FFFF_FFFF_FFFF, 4)
Mod(0x7FFF_FFFF_FFFF_FFFFU, 2)
Mod(0x7FFF_FFFF_FFFF_FFFFU, 2U)
Mod(0x7FFF_FFFF_FFFF_FFFFU, 4)

Mod(3, null)
Mod(null, 3)
Mod(0, null)
Mod(null, 0)
Mod(null, null)

Mod(i4, 3)
Mod(3, i4)

Mod(i4, null)
Mod(null, i4)


Mod(3, true)
Mod(true, 3)
Mod(true, false)
Mod("hello", true)

Mod(2.0, 4.0)
Mod(2.0, 3.0)
Mod(3f, null)
Mod(null, 2f)
Mod(2, r4)
Mod(r4, 3)
Mod(1, r4)
Mod(r4, 1)
Mod(null, r4)
Mod(r4, null)
Mod(0, r4)
Mod(r4, 0)

Mod(2ia, 0)
Mod(2i8, 0)
Mod(0x80000000i4, -1)
Mod(0x8000000000000000i8, -1)
Mod(2, -1)
Mod(2u, 0u)
Mod(7u8, 4u)
Mod(7ia, 4)
Mod(2u8, 0u)
Mod(3.0r4, 2.0r4)
Mod(3.0r8, 2.0r8)

Mod(2f, 0f)
Mod(-2f, 0f)
Mod(0f, 0f)
Mod(-0f, 0f)

Mod(CastR4(1/0.0), 0f)
Mod(CastR4(-1/0.0), 0f)
Mod(0f/0f, 0f)
Mod(-0f/0f, 0f)

Mod(1.0/0, 0.0)
Mod(-1.0/0, 0.0)
Mod(0r8/0, 0.0)
Mod(-0r8/0, 0.0)

Mod(1r/0r, 0r)
Mod(-1r/0r, 0r)
Mod(0r/0r, 0r)
Mod(-0r/0r, 0.0r)

Mod(0x812345u8, 0x81234567u8)
Mod(0x80123456u8, 0x81234567u8)
Mod(0x81234567u8, 0x80123456u8)
Mod(0x81234567u8, 0x812345u8)

Mod(3, g)
Mod(3, o)
Mod(3, s)
Mod(3, d)
Mod(3, b)
Mod(3, n)
Mod(3, r8)
Mod(3, r4)
Mod(3, i)
Mod(3, i8)
Mod(3, i4)
Mod(3, i2)
Mod(3, i1)
Mod(3, u8)
Mod(3, u4)
Mod(3, u2)
Mod(3, u1)

Mod(-3, g)
Mod(-3, o)
Mod(-3, s)
Mod(-3, d)
Mod(-3, b)
Mod(-3, n)
Mod(-3, r8)
Mod(-3, r4)
Mod(-3, i)
Mod(-3, i8)
Mod(-3, i4)
Mod(-3, i2)
Mod(-3, i1)
Mod(-3, u8)
Mod(-3, u4)
Mod(-3, u2)
Mod(-3, u1)

Mod(3u, g)
Mod(3u, o)
Mod(3u, s)
Mod(3u, d)
Mod(3u, b)
Mod(3u, n)
Mod(3u, r8)
Mod(3u, r4)
Mod(3u, i)
Mod(3u, i8)
Mod(3u, i4)
Mod(3u, i2)
Mod(3u, i1)
Mod(3u, u8)
Mod(3u, u4)
Mod(3u, u2)
Mod(3u, u1)

Mod(3f, g)
Mod(3f, o)
Mod(3f, s)
Mod(3f, d)
Mod(3f, b)
Mod(3f, n)
Mod(3f, r8)
Mod(3f, r4)
Mod(3f, i)
Mod(3f, i8)
Mod(3f, i4)
Mod(3f, i2)
Mod(3f, i1)
Mod(3f, u8)
Mod(3f, u4)
Mod(3f, u2)
Mod(3f, u1)

Mod(3, qd)
Mod(3, qb)
Mod(3, qn)
Mod(3, qr8)
Mod(3, qr4)
Mod(3, qi)
Mod(3, qi8)
Mod(3, qi4)
Mod(3, qi2)
Mod(3, qi1)
Mod(3, qu8)
Mod(3, qu4)
Mod(3, qu2)
Mod(3, qu1)

Mod(-3, qd)
Mod(-3, qb)
Mod(-3, qn)
Mod(-3, qr8)
Mod(-3, qr4)
Mod(-3, qi)
Mod(-3, qi8)
Mod(-3, qi4)
Mod(-3, qi2)
Mod(-3, qi1)
Mod(-3, qu8)
Mod(-3, qu4)
Mod(-3, qu2)
Mod(-3, qu1)

Mod(3u, qd)
Mod(3u, qb)
Mod(3u, qn)
Mod(3u, qr8)
Mod(3u, qr4)
Mod(3u, qi)
Mod(3u, qi8)
Mod(3u, qi4)
Mod(3u, qi2)
Mod(3u, qi1)
Mod(3u, qu8)
Mod(3u, qu4)
Mod(3u, qu2)
Mod(3u, qu1)

Mod(3f, qd)
Mod(3f, qb)
Mod(3f, qn)
Mod(3f, qr8)
Mod(3f, qr4)
Mod(3f, qi)
Mod(3f, qi8)
Mod(3f, qi4)
Mod(3f, qi2)
Mod(3f, qi1)
Mod(3f, qu8)
Mod(3f, qu4)
Mod(3f, qu2)
Mod(3f, qu1)

Mod(g, 1)
Mod(o, 1)
Mod(s, 1)
Mod(d, 1)
Mod(b, 1)
Mod(n, 1)
Mod(r8, 1)
Mod(r4, 1)
Mod(i, 1)
Mod(i8, 1)
Mod(i4, 1)
Mod(i2, 1)
Mod(i1, 1)
Mod(u8, 1)
Mod(u4, 1)
Mod(u2, 1)
Mod(u1, 1)

Mod(qd, 1)
Mod(qb, 1)
Mod(qn, 1)
Mod(qr8, 1)
Mod(qr4, 1)
Mod(qi, 1)
Mod(qi8, 1)
Mod(qi4, 1)
Mod(qi2, 1)
Mod(qi1, 1)
Mod(qu8, 1)
Mod(qu4, 1)
Mod(qu2, 1)
Mod(qu1, 1)

Mod(null, 0)
Mod(g, 0)
Mod(o, 0)
Mod(s, 0)
Mod(d, 0)
Mod(b, 0)
Mod(n, 0)
Mod(r8, 0)
Mod(r4, 0)
Mod(i, 0)
Mod(i8, 0)
Mod(i4, 0)
Mod(i2, 0)
Mod(i1, 0)
Mod(u8, 0)
Mod(u4, 0)
Mod(u2, 0)
Mod(u1, 0)

Mod(qd, 0)
Mod(qb, 0)
Mod(qn, 0)
Mod(qr8, 0)
Mod(qr4, 0)
Mod(qi, 0)
Mod(qi8, 0)
Mod(qi4, 0)
Mod(qi2, 0)
Mod(qi1, 0)
Mod(qu8, 0)
Mod(qu4, 0)
Mod(qu2, 0)
Mod(qu1, 0)
