summaryrefslogtreecommitdiff
path: root/testsuite/tests/ghc-regress/numeric/should_run
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/ghc-regress/numeric/should_run')
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/1603.hs7
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/1603.stdout1
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/3676.hs32
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/3676.stdout48
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/4381.hs5
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/4381.stdout2
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/4383.hs1
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/4383.stdout1
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/Makefile3
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/all.T50
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith001.hs28
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith001.stdout5
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith001.stdout-ghc5
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith002.hs52
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith002.stdout4
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith002.stdout-ghc4
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith003.hs84
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith003.stdout1109
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith003.stdout-alpha-dec-osf31053
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith003.stdout-mips-sgi-irix1053
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith003.stdout-ws-641109
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith004.hs86
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith004.stdout12
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith005.hs60
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith005.stdout22
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith005.stdout-ws-6422
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith006.hs4
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith006.stdout1
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith007.hs23
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith007.stdout1
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith008.hs24
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith008.stdout1000
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith009.hs6
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith009.stdout1
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith010.hs11
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith010.stdout8
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith011.hs174
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith011.stdout15418
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith011.stdout-alpha-dec-osf314508
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith011.stdout-mips-sgi-irix15138
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith011.stdout-ws-6415418
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith012.hs90
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith012.stdout32
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith013.hs13
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith013.stdout32
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith014.hs11
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith014.stdout1
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith015.hs5
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith015.stdout2
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith016.hs33
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith016.stdout55
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith017.hs10
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith017.stdout2
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith018.hs12
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith018.stdout2
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith019.hs10
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/arith019.stdout1
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/expfloat.hs7
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/expfloat.stdout1
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/numrun009.hs17
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/numrun009.stdout12
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/numrun009.stdout-alpha-dec-osf312
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/numrun009.stdout-mips-sgi-irix12
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/numrun009.stdout-ws-6412
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/numrun009.stdout-x86_64-unknown-openbsd12
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/numrun010.hs13
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/numrun010.stdout1
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/numrun011.hs2
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/numrun011.stdout1
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/numrun012.hs35
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/numrun012.stdout5
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/numrun012.stdout-ws-649
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/numrun013.hs17
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/numrun013.stdout5
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/numrun014.hs211
-rw-r--r--testsuite/tests/ghc-regress/numeric/should_run/numrun014.stdout172
76 files changed, 0 insertions, 67460 deletions
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/1603.hs b/testsuite/tests/ghc-regress/numeric/should_run/1603.hs
deleted file mode 100644
index 09dd05a550..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/1603.hs
+++ /dev/null
@@ -1,7 +0,0 @@
-module Main where
-
-main = print (syn [-1])
-
-syn :: [Int] -> [Int]
-syn (d:ds) = rem d 0x40000000 : syn ds
-syn [] = []
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/1603.stdout b/testsuite/tests/ghc-regress/numeric/should_run/1603.stdout
deleted file mode 100644
index 2363a1ac08..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/1603.stdout
+++ /dev/null
@@ -1 +0,0 @@
-[-1]
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/3676.hs b/testsuite/tests/ghc-regress/numeric/should_run/3676.hs
deleted file mode 100644
index 242a9c5bb3..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/3676.hs
+++ /dev/null
@@ -1,32 +0,0 @@
--- test conversion of funny numbers through Rational (#3676)
-
-main = mapM_ putStrLn $ concat $
- [map (show.d2d) doubles1,
- map (show.d2f) doubles1,
- map (show.d2r) doubles1,
- map (show.f2d) floats1,
- map (show.f2f) floats1,
- map (show.f2r) floats1,
- map (show.d2d) doubles2,
- map (show.d2f) doubles2,
- map (show.d2r) doubles2,
- map (show.f2d) floats2,
- map (show.f2f) floats2,
- map (show.f2r) floats2
- ]
-
-d2d = realToFrac :: Double -> Double
-d2f = realToFrac :: Double -> Float
-d2r = realToFrac :: Double -> Rational
-f2d = realToFrac :: Float -> Double
-f2f = realToFrac :: Float -> Float
-f2r = realToFrac :: Float -> Rational
-
-doubles1 = [0/0, 1/0, -1/0, 0/(-1)] :: [Double]
-floats1 = [0/0, 1/0, -1/0, 0/(-1)] :: [Float]
-
-doubles2 = names :: [Double]
-floats2 = names :: [Float]
-
-names :: Read a => [a]
-names = map read ["NaN", "Infinity", "-Infinity", "-0"]
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/3676.stdout b/testsuite/tests/ghc-regress/numeric/should_run/3676.stdout
deleted file mode 100644
index ab3234f458..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/3676.stdout
+++ /dev/null
@@ -1,48 +0,0 @@
-NaN
-Infinity
--Infinity
--0.0
-NaN
-Infinity
--Infinity
--0.0
-0 % 0
-1 % 0
-(-1) % 0
-0 % (-1)
-NaN
-Infinity
--Infinity
--0.0
-NaN
-Infinity
--Infinity
--0.0
-0 % 0
-1 % 0
-(-1) % 0
-0 % (-1)
-NaN
-Infinity
--Infinity
--0.0
-NaN
-Infinity
--Infinity
--0.0
-0 % 0
-1 % 0
-(-1) % 0
-0 % (-1)
-NaN
-Infinity
--Infinity
--0.0
-NaN
-Infinity
--Infinity
--0.0
-0 % 0
-1 % 0
-(-1) % 0
-0 % (-1)
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/4381.hs b/testsuite/tests/ghc-regress/numeric/should_run/4381.hs
deleted file mode 100644
index e55a86939e..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/4381.hs
+++ /dev/null
@@ -1,5 +0,0 @@
-module Main where
-
-main = do
- print (scaleFloat 30000 1)
- print (scaleFloat (maxBound :: Int) 1)
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/4381.stdout b/testsuite/tests/ghc-regress/numeric/should_run/4381.stdout
deleted file mode 100644
index 715699eb5e..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/4381.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-Infinity
-Infinity
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/4383.hs b/testsuite/tests/ghc-regress/numeric/should_run/4383.hs
deleted file mode 100644
index 06c7b265d7..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/4383.hs
+++ /dev/null
@@ -1 +0,0 @@
-main = print (0.5 ^ 1030)
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/4383.stdout b/testsuite/tests/ghc-regress/numeric/should_run/4383.stdout
deleted file mode 100644
index d6e38dc3fc..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/4383.stdout
+++ /dev/null
@@ -1 +0,0 @@
-8.691694759794e-311
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/Makefile b/testsuite/tests/ghc-regress/numeric/should_run/Makefile
deleted file mode 100644
index 1c39d1c1fe..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/Makefile
+++ /dev/null
@@ -1,3 +0,0 @@
-TOP=../../../..
-include $(TOP)/mk/boilerplate.mk
-include $(TOP)/mk/test.mk
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/all.T b/testsuite/tests/ghc-regress/numeric/should_run/all.T
deleted file mode 100644
index 0916af1d7d..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/all.T
+++ /dev/null
@@ -1,50 +0,0 @@
-# Args to compile_and_run are:
-# extra compile flags
-# extra run flags
-# expected process return value, if not zero
-
-test('arith001', normal, compile_and_run, [''])
-test('arith002', normal, compile_and_run, [''])
-test('arith003', normal, compile_and_run, [''])
-test('arith004', normal, compile_and_run, [''])
-test('arith005', normal, compile_and_run, [''])
-test('arith006', normal, compile_and_run, [''])
-test('arith007', normal, compile_and_run, [''])
-
-# On i386, we need -msse2 to get reliable floating point results
-ways = normal
-opts = ''
-if config.platform.startswith('i386-'):
- if config.compiler_type == 'ghc' and \
- version_ge(config.compiler_version, '6.13'):
- opts = '-msse2'
- else:
- ways = expect_fail_for(['optasm','threaded2','hpc','dyn','profasm'])
-
-test('arith008', ways, compile_and_run, [opts])
-
-test('arith009', normal, compile_and_run, [''])
-test('arith010', normal, compile_and_run, [''])
-test('arith011', normal, compile_and_run, [''])
-
-test('arith012', ways, compile_and_run, [opts])
-
-test('arith013', compose(normal,only_compiler_types(['ghc'])), compile_and_run, [''])
-test('arith014', normal, compile_and_run, [''])
-test('arith015', normal, compile_and_run, [''])
-test('numrun009', normal, compile_and_run, [''])
-test('numrun010', normal, compile_and_run, [''])
-test('numrun011', normal, compile_and_run, [''])
-test('numrun012', normal, compile_and_run, [''])
-test('numrun013', normal, compile_and_run, [''])
-test('numrun014', normal, compile_and_run, [''])
-test('arith016', compose(normal,only_compiler_types(['ghc'])), compile_and_run, [''])
-test('arith017', normal, compile_and_run, [''])
-test('arith018', normal, compile_and_run, [''])
-test('arith019', normal, compile_and_run, [''])
-test('expfloat', normal, compile_and_run, [''])
-
-test('1603', skip, compile_and_run, [''])
-test('3676', expect_broken(3676), compile_and_run, [''])
-test('4381', normal, compile_and_run, [''])
-test('4383', normal, compile_and_run, [''])
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith001.hs b/testsuite/tests/ghc-regress/numeric/should_run/arith001.hs
deleted file mode 100644
index ed9cd5febc..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith001.hs
+++ /dev/null
@@ -1,28 +0,0 @@
--- !!! conversions: Double <=> Rational/Integer things
---
-import Data.Ratio
-
-main = putStr (show r42 ++ "\n" ++
- show nu42 ++ ", " ++
- show de42 ++ "\n" ++
- show nu42d ++ ", " ++
- show de42d ++ "\n" ++
- show s2 ++ ", " ++
- show e2 ++ "\n" ++
- show s ++ ", " ++
- show e ++ "\n" )
- where
- d42 :: Double
- r42 :: Rational
- nu42, de42 :: Integer
- nu42d, de42d :: Double
-
- d42 = 42
- r42 = toRational d42
- nu42 = numerator r42
- de42 = denominator r42
- nu42d= fromInteger nu42
- de42d= fromInteger de42
-
- (s,e)= decodeFloat (nu42d / de42d )
- (s2,e2) = decodeFloat d42
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith001.stdout b/testsuite/tests/ghc-regress/numeric/should_run/arith001.stdout
deleted file mode 100644
index 741c4809ef..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith001.stdout
+++ /dev/null
@@ -1,5 +0,0 @@
-42 % 1
-42, 1
-42.0, 1.0
-5910974510923776, -47
-5910974510923776, -47
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith001.stdout-ghc b/testsuite/tests/ghc-regress/numeric/should_run/arith001.stdout-ghc
deleted file mode 100644
index 741c4809ef..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith001.stdout-ghc
+++ /dev/null
@@ -1,5 +0,0 @@
-42 % 1
-42, 1
-42.0, 1.0
-5910974510923776, -47
-5910974510923776, -47
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith002.hs b/testsuite/tests/ghc-regress/numeric/should_run/arith002.hs
deleted file mode 100644
index b7f5acf136..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith002.hs
+++ /dev/null
@@ -1,52 +0,0 @@
--- !!! basic Rational operations
---
-import Data.Ratio
-
-main
- = putStr
- (-- Ratio Ints
- show [i0a, i0b, i0c, i2a, i2b, im2a, im2b, i_pi, i_misc]
- ++ "\n"
- -- the Ints
- ++ show ((map numerator [i0a, i0b, i0c, i2a, i2b, im2a, im2b, i_pi, i_misc])
- ++(map denominator [i0a, i0b, i0c, i2a, i2b, im2a, im2b, i_pi, i_misc]))
- ++ "\n"
- -- Booleans
--- ++ show []
--- ++ "\n"
-
- -- Rationals (Ratio Integers)
- ++ show [r0a, r0b, r0c, r2a, r2b, rm2a, rm2b, r_pi, r_misc]
- ++ "\n"
- -- the Integers
- ++ show ((map numerator [r0a, r0b, r0c, r2a, r2b, rm2a, rm2b, r_pi, r_misc])
- ++(map denominator [r0a, r0b, r0c, r2a, r2b, rm2a, rm2b, r_pi, r_misc]))
- ++ "\n"
- -- Booleans
--- ++ show []
--- ++ "\n"
- )
- where
- i0a, i0b, i0c, i2a, i2b, im2a, im2b, i_pi, i_misc :: Ratio Int
-
- i0a = 0 % 1
- i0b = (-0) % 1
- i0c = 0 % (-1)
- i2a = 4 % 2
- i2b = (-4) % (-2)
- im2a = (-4) % 2
- im2b = 4 % (-2)
- i_pi = 22 % 7
- i_misc = 2 % 10000
-
- r0a, r0b, r0c, r2a, r2b, rm2a, rm2b, r_pi, r_misc :: Rational
-
- r0a = 0 % 1
- r0b = (-0) % 1
- r0c = 0 % (-1)
- r2a = 4 % 2
- r2b = (-4) % (-2)
- rm2a = (-4) % 2
- rm2b = 4 % (-2)
- r_pi = 22 % 7
- r_misc = 2 % 10000
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith002.stdout b/testsuite/tests/ghc-regress/numeric/should_run/arith002.stdout
deleted file mode 100644
index ab717549fd..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith002.stdout
+++ /dev/null
@@ -1,4 +0,0 @@
-[0 % 1,0 % 1,0 % 1,2 % 1,2 % 1,(-2) % 1,(-2) % 1,22 % 7,1 % 5000]
-[0,0,0,2,2,-2,-2,22,1,1,1,1,1,1,1,1,7,5000]
-[0 % 1,0 % 1,0 % 1,2 % 1,2 % 1,(-2) % 1,(-2) % 1,22 % 7,1 % 5000]
-[0,0,0,2,2,-2,-2,22,1,1,1,1,1,1,1,1,7,5000]
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith002.stdout-ghc b/testsuite/tests/ghc-regress/numeric/should_run/arith002.stdout-ghc
deleted file mode 100644
index ab717549fd..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith002.stdout-ghc
+++ /dev/null
@@ -1,4 +0,0 @@
-[0 % 1,0 % 1,0 % 1,2 % 1,2 % 1,(-2) % 1,(-2) % 1,22 % 7,1 % 5000]
-[0,0,0,2,2,-2,-2,22,1,1,1,1,1,1,1,1,7,5000]
-[0 % 1,0 % 1,0 % 1,2 % 1,2 % 1,(-2) % 1,(-2) % 1,22 % 7,1 % 5000]
-[0,0,0,2,2,-2,-2,22,1,1,1,1,1,1,1,1,7,5000]
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith003.hs b/testsuite/tests/ghc-regress/numeric/should_run/arith003.hs
deleted file mode 100644
index 46f008120a..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith003.hs
+++ /dev/null
@@ -1,84 +0,0 @@
--- $Id: arith003.hs,v 1.2 2002/01/25 13:40:39 simonmar Exp $
---
--- !!! test Int/Integer arithmetic operations from the Prelude.
---
-
-main
- = putStr
- (
- showit (do_ops int_ops) ++
- showit (do_ops integer_ops)
- )
-
-showit :: Integral a => [(String, a, a, a)] -> String
-showit stuff = concat
- [ str ++ " " ++ show l ++ " " ++ show r ++ " = " ++ show result ++ "\n"
- | (str, l, r, result) <- stuff
- ]
-
-do_ops :: Integral a => [((a -> a -> a), String, [(a,a)])]
- -> [(String, a, a, a)]
-do_ops ops = [ (str, l, r, l `op` r) | (op,str,args) <- ops, (l,r) <- args ]
-
-small_operands, non_min_operands, operands, non_max_operands
- :: Integral a => [a]
-small_operands = [ 0, 1, -1, 2, -2 ]
-operands = small_operands ++ [ fromIntegral minInt, fromIntegral maxInt ]
-non_min_operands = small_operands ++ [ fromIntegral maxInt ]
-non_max_operands = small_operands ++ [ fromIntegral minInt ]
-
-large_operands :: [ Integer ]
-large_operands = operands ++
- [ fromIntegral minInt - 1,
- fromIntegral maxInt + 1,
- fromIntegral minInt * 2,
- fromIntegral maxInt * 2,
- fromIntegral minInt ^ 2,
- fromIntegral maxInt ^ 2
- ]
-
-integer_ops :: [((Integer -> Integer -> Integer), String, [(Integer,Integer)])]
-integer_ops = [
- ((+), "(+)", both_large),
- ((-), "(-)", both_large),
- (div, "div", large_non_zero_r),
- (mod, "mod", large_non_zero_r),
- (quot, "quot", large_non_zero_r),
- (rem, "rem", large_non_zero_r),
- (gcd, "gcd", large_either_non_zero),
- (lcm, "lcm", large_either_non_zero)
- ]
-
-int_ops :: [((Int -> Int -> Int), String, [(Int,Int)])]
-int_ops = [
- ((+), "(+)", both_small),
- ((-), "(-)", both_small),
- ((^), "(^)", small_non_neg_r),
- (div, "div", non_min_l_or_zero_r),
- (mod, "mod", non_min_l_or_zero_r),
- (quot, "quot", non_min_l_or_zero_r),
- (rem, "rem", non_min_l_or_zero_r),
- (gcd, "gcd", non_min_either_non_zero),
- (lcm, "lcm", non_max_r_either_non_zero)
- ]
-
--- NOTE: when abs(minInt) is undefined (it is in GHC, because
--- abs(minInt) would be greater than maxInt), then gcd on Ints is also
--- undefined when either operand is minInt.
-
-both_small, non_zero_r, non_min_either_non_zero, non_min_l_or_zero_r,
- non_max_r_either_non_zero, small_non_neg_r
- :: Integral a => [(a,a)]
-
-both_small = [ (l,r) | l <- operands, r <- operands ]
-both_large = [ (l,r) | l <- large_operands, r <- large_operands ]
-large_non_zero_r = [ (l,r) | l <- operands, r <- large_operands, r /= 0 ]
-non_zero_r = [ (l,r) | l <- operands, r <- operands, r /= 0 ]
-non_min_either_non_zero = [ (l,r) | l <- non_min_operands, r <- non_min_operands, l /= 0 || r /= 0 ]
-large_either_non_zero = [ (l,r) | l <- operands, r <- operands, l /= 0 || r /= 0 ]
-small_non_neg_r = [ (l,r) | l <- operands, r <- small_operands, r >= 0 ]
-non_min_l_or_zero_r = [ (l,r) | l <- non_min_operands, r <- operands, r /= 0 ]
-non_max_r_either_non_zero = [ (l,r) | l <- operands, r <- non_max_operands, l /= 0 || r /= 0 ]
-
-minInt = minBound :: Int
-maxInt = maxBound :: Int
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith003.stdout b/testsuite/tests/ghc-regress/numeric/should_run/arith003.stdout
deleted file mode 100644
index a147c3003c..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith003.stdout
+++ /dev/null
@@ -1,1109 +0,0 @@
-(+) 0 0 = 0
-(+) 0 1 = 1
-(+) 0 -1 = -1
-(+) 0 2 = 2
-(+) 0 -2 = -2
-(+) 0 -2147483648 = -2147483648
-(+) 0 2147483647 = 2147483647
-(+) 1 0 = 1
-(+) 1 1 = 2
-(+) 1 -1 = 0
-(+) 1 2 = 3
-(+) 1 -2 = -1
-(+) 1 -2147483648 = -2147483647
-(+) 1 2147483647 = -2147483648
-(+) -1 0 = -1
-(+) -1 1 = 0
-(+) -1 -1 = -2
-(+) -1 2 = 1
-(+) -1 -2 = -3
-(+) -1 -2147483648 = 2147483647
-(+) -1 2147483647 = 2147483646
-(+) 2 0 = 2
-(+) 2 1 = 3
-(+) 2 -1 = 1
-(+) 2 2 = 4
-(+) 2 -2 = 0
-(+) 2 -2147483648 = -2147483646
-(+) 2 2147483647 = -2147483647
-(+) -2 0 = -2
-(+) -2 1 = -1
-(+) -2 -1 = -3
-(+) -2 2 = 0
-(+) -2 -2 = -4
-(+) -2 -2147483648 = 2147483646
-(+) -2 2147483647 = 2147483645
-(+) -2147483648 0 = -2147483648
-(+) -2147483648 1 = -2147483647
-(+) -2147483648 -1 = 2147483647
-(+) -2147483648 2 = -2147483646
-(+) -2147483648 -2 = 2147483646
-(+) -2147483648 -2147483648 = 0
-(+) -2147483648 2147483647 = -1
-(+) 2147483647 0 = 2147483647
-(+) 2147483647 1 = -2147483648
-(+) 2147483647 -1 = 2147483646
-(+) 2147483647 2 = -2147483647
-(+) 2147483647 -2 = 2147483645
-(+) 2147483647 -2147483648 = -1
-(+) 2147483647 2147483647 = -2
-(-) 0 0 = 0
-(-) 0 1 = -1
-(-) 0 -1 = 1
-(-) 0 2 = -2
-(-) 0 -2 = 2
-(-) 0 -2147483648 = -2147483648
-(-) 0 2147483647 = -2147483647
-(-) 1 0 = 1
-(-) 1 1 = 0
-(-) 1 -1 = 2
-(-) 1 2 = -1
-(-) 1 -2 = 3
-(-) 1 -2147483648 = -2147483647
-(-) 1 2147483647 = -2147483646
-(-) -1 0 = -1
-(-) -1 1 = -2
-(-) -1 -1 = 0
-(-) -1 2 = -3
-(-) -1 -2 = 1
-(-) -1 -2147483648 = 2147483647
-(-) -1 2147483647 = -2147483648
-(-) 2 0 = 2
-(-) 2 1 = 1
-(-) 2 -1 = 3
-(-) 2 2 = 0
-(-) 2 -2 = 4
-(-) 2 -2147483648 = -2147483646
-(-) 2 2147483647 = -2147483645
-(-) -2 0 = -2
-(-) -2 1 = -3
-(-) -2 -1 = -1
-(-) -2 2 = -4
-(-) -2 -2 = 0
-(-) -2 -2147483648 = 2147483646
-(-) -2 2147483647 = 2147483647
-(-) -2147483648 0 = -2147483648
-(-) -2147483648 1 = 2147483647
-(-) -2147483648 -1 = -2147483647
-(-) -2147483648 2 = 2147483646
-(-) -2147483648 -2 = -2147483646
-(-) -2147483648 -2147483648 = 0
-(-) -2147483648 2147483647 = 1
-(-) 2147483647 0 = 2147483647
-(-) 2147483647 1 = 2147483646
-(-) 2147483647 -1 = -2147483648
-(-) 2147483647 2 = 2147483645
-(-) 2147483647 -2 = -2147483647
-(-) 2147483647 -2147483648 = -1
-(-) 2147483647 2147483647 = 0
-(^) 0 0 = 1
-(^) 0 1 = 0
-(^) 0 2 = 0
-(^) 1 0 = 1
-(^) 1 1 = 1
-(^) 1 2 = 1
-(^) -1 0 = 1
-(^) -1 1 = -1
-(^) -1 2 = 1
-(^) 2 0 = 1
-(^) 2 1 = 2
-(^) 2 2 = 4
-(^) -2 0 = 1
-(^) -2 1 = -2
-(^) -2 2 = 4
-(^) -2147483648 0 = 1
-(^) -2147483648 1 = -2147483648
-(^) -2147483648 2 = 0
-(^) 2147483647 0 = 1
-(^) 2147483647 1 = 2147483647
-(^) 2147483647 2 = 1
-div 0 1 = 0
-div 0 -1 = 0
-div 0 2 = 0
-div 0 -2 = 0
-div 0 -2147483648 = 0
-div 0 2147483647 = 0
-div 1 1 = 1
-div 1 -1 = -1
-div 1 2 = 0
-div 1 -2 = -1
-div 1 -2147483648 = -1
-div 1 2147483647 = 0
-div -1 1 = -1
-div -1 -1 = 1
-div -1 2 = -1
-div -1 -2 = 0
-div -1 -2147483648 = 0
-div -1 2147483647 = -1
-div 2 1 = 2
-div 2 -1 = -2
-div 2 2 = 1
-div 2 -2 = -1
-div 2 -2147483648 = -1
-div 2 2147483647 = 0
-div -2 1 = -2
-div -2 -1 = 2
-div -2 2 = -1
-div -2 -2 = 1
-div -2 -2147483648 = 0
-div -2 2147483647 = -1
-div 2147483647 1 = 2147483647
-div 2147483647 -1 = -2147483647
-div 2147483647 2 = 1073741823
-div 2147483647 -2 = -1073741824
-div 2147483647 -2147483648 = -1
-div 2147483647 2147483647 = 1
-mod 0 1 = 0
-mod 0 -1 = 0
-mod 0 2 = 0
-mod 0 -2 = 0
-mod 0 -2147483648 = 0
-mod 0 2147483647 = 0
-mod 1 1 = 0
-mod 1 -1 = 0
-mod 1 2 = 1
-mod 1 -2 = -1
-mod 1 -2147483648 = -2147483647
-mod 1 2147483647 = 1
-mod -1 1 = 0
-mod -1 -1 = 0
-mod -1 2 = 1
-mod -1 -2 = -1
-mod -1 -2147483648 = -1
-mod -1 2147483647 = 2147483646
-mod 2 1 = 0
-mod 2 -1 = 0
-mod 2 2 = 0
-mod 2 -2 = 0
-mod 2 -2147483648 = -2147483646
-mod 2 2147483647 = 2
-mod -2 1 = 0
-mod -2 -1 = 0
-mod -2 2 = 0
-mod -2 -2 = 0
-mod -2 -2147483648 = -2
-mod -2 2147483647 = 2147483645
-mod 2147483647 1 = 0
-mod 2147483647 -1 = 0
-mod 2147483647 2 = 1
-mod 2147483647 -2 = -1
-mod 2147483647 -2147483648 = -1
-mod 2147483647 2147483647 = 0
-quot 0 1 = 0
-quot 0 -1 = 0
-quot 0 2 = 0
-quot 0 -2 = 0
-quot 0 -2147483648 = 0
-quot 0 2147483647 = 0
-quot 1 1 = 1
-quot 1 -1 = -1
-quot 1 2 = 0
-quot 1 -2 = 0
-quot 1 -2147483648 = 0
-quot 1 2147483647 = 0
-quot -1 1 = -1
-quot -1 -1 = 1
-quot -1 2 = 0
-quot -1 -2 = 0
-quot -1 -2147483648 = 0
-quot -1 2147483647 = 0
-quot 2 1 = 2
-quot 2 -1 = -2
-quot 2 2 = 1
-quot 2 -2 = -1
-quot 2 -2147483648 = 0
-quot 2 2147483647 = 0
-quot -2 1 = -2
-quot -2 -1 = 2
-quot -2 2 = -1
-quot -2 -2 = 1
-quot -2 -2147483648 = 0
-quot -2 2147483647 = 0
-quot 2147483647 1 = 2147483647
-quot 2147483647 -1 = -2147483647
-quot 2147483647 2 = 1073741823
-quot 2147483647 -2 = -1073741823
-quot 2147483647 -2147483648 = 0
-quot 2147483647 2147483647 = 1
-rem 0 1 = 0
-rem 0 -1 = 0
-rem 0 2 = 0
-rem 0 -2 = 0
-rem 0 -2147483648 = 0
-rem 0 2147483647 = 0
-rem 1 1 = 0
-rem 1 -1 = 0
-rem 1 2 = 1
-rem 1 -2 = 1
-rem 1 -2147483648 = 1
-rem 1 2147483647 = 1
-rem -1 1 = 0
-rem -1 -1 = 0
-rem -1 2 = -1
-rem -1 -2 = -1
-rem -1 -2147483648 = -1
-rem -1 2147483647 = -1
-rem 2 1 = 0
-rem 2 -1 = 0
-rem 2 2 = 0
-rem 2 -2 = 0
-rem 2 -2147483648 = 2
-rem 2 2147483647 = 2
-rem -2 1 = 0
-rem -2 -1 = 0
-rem -2 2 = 0
-rem -2 -2 = 0
-rem -2 -2147483648 = -2
-rem -2 2147483647 = -2
-rem 2147483647 1 = 0
-rem 2147483647 -1 = 0
-rem 2147483647 2 = 1
-rem 2147483647 -2 = 1
-rem 2147483647 -2147483648 = 2147483647
-rem 2147483647 2147483647 = 0
-gcd 0 1 = 1
-gcd 0 -1 = 1
-gcd 0 2 = 2
-gcd 0 -2 = 2
-gcd 0 2147483647 = 2147483647
-gcd 1 0 = 1
-gcd 1 1 = 1
-gcd 1 -1 = 1
-gcd 1 2 = 1
-gcd 1 -2 = 1
-gcd 1 2147483647 = 1
-gcd -1 0 = 1
-gcd -1 1 = 1
-gcd -1 -1 = 1
-gcd -1 2 = 1
-gcd -1 -2 = 1
-gcd -1 2147483647 = 1
-gcd 2 0 = 2
-gcd 2 1 = 1
-gcd 2 -1 = 1
-gcd 2 2 = 2
-gcd 2 -2 = 2
-gcd 2 2147483647 = 1
-gcd -2 0 = 2
-gcd -2 1 = 1
-gcd -2 -1 = 1
-gcd -2 2 = 2
-gcd -2 -2 = 2
-gcd -2 2147483647 = 1
-gcd 2147483647 0 = 2147483647
-gcd 2147483647 1 = 1
-gcd 2147483647 -1 = 1
-gcd 2147483647 2 = 1
-gcd 2147483647 -2 = 1
-gcd 2147483647 2147483647 = 2147483647
-lcm 0 1 = 0
-lcm 0 -1 = 0
-lcm 0 2 = 0
-lcm 0 -2 = 0
-lcm 0 -2147483648 = 0
-lcm 1 0 = 0
-lcm 1 1 = 1
-lcm 1 -1 = 1
-lcm 1 2 = 2
-lcm 1 -2 = 2
-lcm 1 -2147483648 = -2147483648
-lcm -1 0 = 0
-lcm -1 1 = 1
-lcm -1 -1 = 1
-lcm -1 2 = 2
-lcm -1 -2 = 2
-lcm -1 -2147483648 = -2147483648
-lcm 2 0 = 0
-lcm 2 1 = 2
-lcm 2 -1 = 2
-lcm 2 2 = 2
-lcm 2 -2 = 2
-lcm 2 -2147483648 = -2147483648
-lcm -2 0 = 0
-lcm -2 1 = 2
-lcm -2 -1 = 2
-lcm -2 2 = 2
-lcm -2 -2 = 2
-lcm -2 -2147483648 = -2147483648
-lcm -2147483648 0 = 0
-lcm -2147483648 1 = -2147483648
-lcm -2147483648 -1 = -2147483648
-lcm -2147483648 2 = -2147483648
-lcm -2147483648 -2 = -2147483648
-lcm -2147483648 -2147483648 = -2147483648
-lcm 2147483647 0 = 0
-lcm 2147483647 1 = 2147483647
-lcm 2147483647 -1 = 2147483647
-lcm 2147483647 2 = 2
-lcm 2147483647 -2 = 2
-lcm 2147483647 -2147483648 = -2147483648
-(+) 0 0 = 0
-(+) 0 1 = 1
-(+) 0 -1 = -1
-(+) 0 2 = 2
-(+) 0 -2 = -2
-(+) 0 -2147483648 = -2147483648
-(+) 0 2147483647 = 2147483647
-(+) 0 -2147483649 = -2147483649
-(+) 0 2147483648 = 2147483648
-(+) 0 -4294967296 = -4294967296
-(+) 0 4294967294 = 4294967294
-(+) 0 4611686018427387904 = 4611686018427387904
-(+) 0 4611686014132420609 = 4611686014132420609
-(+) 1 0 = 1
-(+) 1 1 = 2
-(+) 1 -1 = 0
-(+) 1 2 = 3
-(+) 1 -2 = -1
-(+) 1 -2147483648 = -2147483647
-(+) 1 2147483647 = 2147483648
-(+) 1 -2147483649 = -2147483648
-(+) 1 2147483648 = 2147483649
-(+) 1 -4294967296 = -4294967295
-(+) 1 4294967294 = 4294967295
-(+) 1 4611686018427387904 = 4611686018427387905
-(+) 1 4611686014132420609 = 4611686014132420610
-(+) -1 0 = -1
-(+) -1 1 = 0
-(+) -1 -1 = -2
-(+) -1 2 = 1
-(+) -1 -2 = -3
-(+) -1 -2147483648 = -2147483649
-(+) -1 2147483647 = 2147483646
-(+) -1 -2147483649 = -2147483650
-(+) -1 2147483648 = 2147483647
-(+) -1 -4294967296 = -4294967297
-(+) -1 4294967294 = 4294967293
-(+) -1 4611686018427387904 = 4611686018427387903
-(+) -1 4611686014132420609 = 4611686014132420608
-(+) 2 0 = 2
-(+) 2 1 = 3
-(+) 2 -1 = 1
-(+) 2 2 = 4
-(+) 2 -2 = 0
-(+) 2 -2147483648 = -2147483646
-(+) 2 2147483647 = 2147483649
-(+) 2 -2147483649 = -2147483647
-(+) 2 2147483648 = 2147483650
-(+) 2 -4294967296 = -4294967294
-(+) 2 4294967294 = 4294967296
-(+) 2 4611686018427387904 = 4611686018427387906
-(+) 2 4611686014132420609 = 4611686014132420611
-(+) -2 0 = -2
-(+) -2 1 = -1
-(+) -2 -1 = -3
-(+) -2 2 = 0
-(+) -2 -2 = -4
-(+) -2 -2147483648 = -2147483650
-(+) -2 2147483647 = 2147483645
-(+) -2 -2147483649 = -2147483651
-(+) -2 2147483648 = 2147483646
-(+) -2 -4294967296 = -4294967298
-(+) -2 4294967294 = 4294967292
-(+) -2 4611686018427387904 = 4611686018427387902
-(+) -2 4611686014132420609 = 4611686014132420607
-(+) -2147483648 0 = -2147483648
-(+) -2147483648 1 = -2147483647
-(+) -2147483648 -1 = -2147483649
-(+) -2147483648 2 = -2147483646
-(+) -2147483648 -2 = -2147483650
-(+) -2147483648 -2147483648 = -4294967296
-(+) -2147483648 2147483647 = -1
-(+) -2147483648 -2147483649 = -4294967297
-(+) -2147483648 2147483648 = 0
-(+) -2147483648 -4294967296 = -6442450944
-(+) -2147483648 4294967294 = 2147483646
-(+) -2147483648 4611686018427387904 = 4611686016279904256
-(+) -2147483648 4611686014132420609 = 4611686011984936961
-(+) 2147483647 0 = 2147483647
-(+) 2147483647 1 = 2147483648
-(+) 2147483647 -1 = 2147483646
-(+) 2147483647 2 = 2147483649
-(+) 2147483647 -2 = 2147483645
-(+) 2147483647 -2147483648 = -1
-(+) 2147483647 2147483647 = 4294967294
-(+) 2147483647 -2147483649 = -2
-(+) 2147483647 2147483648 = 4294967295
-(+) 2147483647 -4294967296 = -2147483649
-(+) 2147483647 4294967294 = 6442450941
-(+) 2147483647 4611686018427387904 = 4611686020574871551
-(+) 2147483647 4611686014132420609 = 4611686016279904256
-(+) -2147483649 0 = -2147483649
-(+) -2147483649 1 = -2147483648
-(+) -2147483649 -1 = -2147483650
-(+) -2147483649 2 = -2147483647
-(+) -2147483649 -2 = -2147483651
-(+) -2147483649 -2147483648 = -4294967297
-(+) -2147483649 2147483647 = -2
-(+) -2147483649 -2147483649 = -4294967298
-(+) -2147483649 2147483648 = -1
-(+) -2147483649 -4294967296 = -6442450945
-(+) -2147483649 4294967294 = 2147483645
-(+) -2147483649 4611686018427387904 = 4611686016279904255
-(+) -2147483649 4611686014132420609 = 4611686011984936960
-(+) 2147483648 0 = 2147483648
-(+) 2147483648 1 = 2147483649
-(+) 2147483648 -1 = 2147483647
-(+) 2147483648 2 = 2147483650
-(+) 2147483648 -2 = 2147483646
-(+) 2147483648 -2147483648 = 0
-(+) 2147483648 2147483647 = 4294967295
-(+) 2147483648 -2147483649 = -1
-(+) 2147483648 2147483648 = 4294967296
-(+) 2147483648 -4294967296 = -2147483648
-(+) 2147483648 4294967294 = 6442450942
-(+) 2147483648 4611686018427387904 = 4611686020574871552
-(+) 2147483648 4611686014132420609 = 4611686016279904257
-(+) -4294967296 0 = -4294967296
-(+) -4294967296 1 = -4294967295
-(+) -4294967296 -1 = -4294967297
-(+) -4294967296 2 = -4294967294
-(+) -4294967296 -2 = -4294967298
-(+) -4294967296 -2147483648 = -6442450944
-(+) -4294967296 2147483647 = -2147483649
-(+) -4294967296 -2147483649 = -6442450945
-(+) -4294967296 2147483648 = -2147483648
-(+) -4294967296 -4294967296 = -8589934592
-(+) -4294967296 4294967294 = -2
-(+) -4294967296 4611686018427387904 = 4611686014132420608
-(+) -4294967296 4611686014132420609 = 4611686009837453313
-(+) 4294967294 0 = 4294967294
-(+) 4294967294 1 = 4294967295
-(+) 4294967294 -1 = 4294967293
-(+) 4294967294 2 = 4294967296
-(+) 4294967294 -2 = 4294967292
-(+) 4294967294 -2147483648 = 2147483646
-(+) 4294967294 2147483647 = 6442450941
-(+) 4294967294 -2147483649 = 2147483645
-(+) 4294967294 2147483648 = 6442450942
-(+) 4294967294 -4294967296 = -2
-(+) 4294967294 4294967294 = 8589934588
-(+) 4294967294 4611686018427387904 = 4611686022722355198
-(+) 4294967294 4611686014132420609 = 4611686018427387903
-(+) 4611686018427387904 0 = 4611686018427387904
-(+) 4611686018427387904 1 = 4611686018427387905
-(+) 4611686018427387904 -1 = 4611686018427387903
-(+) 4611686018427387904 2 = 4611686018427387906
-(+) 4611686018427387904 -2 = 4611686018427387902
-(+) 4611686018427387904 -2147483648 = 4611686016279904256
-(+) 4611686018427387904 2147483647 = 4611686020574871551
-(+) 4611686018427387904 -2147483649 = 4611686016279904255
-(+) 4611686018427387904 2147483648 = 4611686020574871552
-(+) 4611686018427387904 -4294967296 = 4611686014132420608
-(+) 4611686018427387904 4294967294 = 4611686022722355198
-(+) 4611686018427387904 4611686018427387904 = 9223372036854775808
-(+) 4611686018427387904 4611686014132420609 = 9223372032559808513
-(+) 4611686014132420609 0 = 4611686014132420609
-(+) 4611686014132420609 1 = 4611686014132420610
-(+) 4611686014132420609 -1 = 4611686014132420608
-(+) 4611686014132420609 2 = 4611686014132420611
-(+) 4611686014132420609 -2 = 4611686014132420607
-(+) 4611686014132420609 -2147483648 = 4611686011984936961
-(+) 4611686014132420609 2147483647 = 4611686016279904256
-(+) 4611686014132420609 -2147483649 = 4611686011984936960
-(+) 4611686014132420609 2147483648 = 4611686016279904257
-(+) 4611686014132420609 -4294967296 = 4611686009837453313
-(+) 4611686014132420609 4294967294 = 4611686018427387903
-(+) 4611686014132420609 4611686018427387904 = 9223372032559808513
-(+) 4611686014132420609 4611686014132420609 = 9223372028264841218
-(-) 0 0 = 0
-(-) 0 1 = -1
-(-) 0 -1 = 1
-(-) 0 2 = -2
-(-) 0 -2 = 2
-(-) 0 -2147483648 = 2147483648
-(-) 0 2147483647 = -2147483647
-(-) 0 -2147483649 = 2147483649
-(-) 0 2147483648 = -2147483648
-(-) 0 -4294967296 = 4294967296
-(-) 0 4294967294 = -4294967294
-(-) 0 4611686018427387904 = -4611686018427387904
-(-) 0 4611686014132420609 = -4611686014132420609
-(-) 1 0 = 1
-(-) 1 1 = 0
-(-) 1 -1 = 2
-(-) 1 2 = -1
-(-) 1 -2 = 3
-(-) 1 -2147483648 = 2147483649
-(-) 1 2147483647 = -2147483646
-(-) 1 -2147483649 = 2147483650
-(-) 1 2147483648 = -2147483647
-(-) 1 -4294967296 = 4294967297
-(-) 1 4294967294 = -4294967293
-(-) 1 4611686018427387904 = -4611686018427387903
-(-) 1 4611686014132420609 = -4611686014132420608
-(-) -1 0 = -1
-(-) -1 1 = -2
-(-) -1 -1 = 0
-(-) -1 2 = -3
-(-) -1 -2 = 1
-(-) -1 -2147483648 = 2147483647
-(-) -1 2147483647 = -2147483648
-(-) -1 -2147483649 = 2147483648
-(-) -1 2147483648 = -2147483649
-(-) -1 -4294967296 = 4294967295
-(-) -1 4294967294 = -4294967295
-(-) -1 4611686018427387904 = -4611686018427387905
-(-) -1 4611686014132420609 = -4611686014132420610
-(-) 2 0 = 2
-(-) 2 1 = 1
-(-) 2 -1 = 3
-(-) 2 2 = 0
-(-) 2 -2 = 4
-(-) 2 -2147483648 = 2147483650
-(-) 2 2147483647 = -2147483645
-(-) 2 -2147483649 = 2147483651
-(-) 2 2147483648 = -2147483646
-(-) 2 -4294967296 = 4294967298
-(-) 2 4294967294 = -4294967292
-(-) 2 4611686018427387904 = -4611686018427387902
-(-) 2 4611686014132420609 = -4611686014132420607
-(-) -2 0 = -2
-(-) -2 1 = -3
-(-) -2 -1 = -1
-(-) -2 2 = -4
-(-) -2 -2 = 0
-(-) -2 -2147483648 = 2147483646
-(-) -2 2147483647 = -2147483649
-(-) -2 -2147483649 = 2147483647
-(-) -2 2147483648 = -2147483650
-(-) -2 -4294967296 = 4294967294
-(-) -2 4294967294 = -4294967296
-(-) -2 4611686018427387904 = -4611686018427387906
-(-) -2 4611686014132420609 = -4611686014132420611
-(-) -2147483648 0 = -2147483648
-(-) -2147483648 1 = -2147483649
-(-) -2147483648 -1 = -2147483647
-(-) -2147483648 2 = -2147483650
-(-) -2147483648 -2 = -2147483646
-(-) -2147483648 -2147483648 = 0
-(-) -2147483648 2147483647 = -4294967295
-(-) -2147483648 -2147483649 = 1
-(-) -2147483648 2147483648 = -4294967296
-(-) -2147483648 -4294967296 = 2147483648
-(-) -2147483648 4294967294 = -6442450942
-(-) -2147483648 4611686018427387904 = -4611686020574871552
-(-) -2147483648 4611686014132420609 = -4611686016279904257
-(-) 2147483647 0 = 2147483647
-(-) 2147483647 1 = 2147483646
-(-) 2147483647 -1 = 2147483648
-(-) 2147483647 2 = 2147483645
-(-) 2147483647 -2 = 2147483649
-(-) 2147483647 -2147483648 = 4294967295
-(-) 2147483647 2147483647 = 0
-(-) 2147483647 -2147483649 = 4294967296
-(-) 2147483647 2147483648 = -1
-(-) 2147483647 -4294967296 = 6442450943
-(-) 2147483647 4294967294 = -2147483647
-(-) 2147483647 4611686018427387904 = -4611686016279904257
-(-) 2147483647 4611686014132420609 = -4611686011984936962
-(-) -2147483649 0 = -2147483649
-(-) -2147483649 1 = -2147483650
-(-) -2147483649 -1 = -2147483648
-(-) -2147483649 2 = -2147483651
-(-) -2147483649 -2 = -2147483647
-(-) -2147483649 -2147483648 = -1
-(-) -2147483649 2147483647 = -4294967296
-(-) -2147483649 -2147483649 = 0
-(-) -2147483649 2147483648 = -4294967297
-(-) -2147483649 -4294967296 = 2147483647
-(-) -2147483649 4294967294 = -6442450943
-(-) -2147483649 4611686018427387904 = -4611686020574871553
-(-) -2147483649 4611686014132420609 = -4611686016279904258
-(-) 2147483648 0 = 2147483648
-(-) 2147483648 1 = 2147483647
-(-) 2147483648 -1 = 2147483649
-(-) 2147483648 2 = 2147483646
-(-) 2147483648 -2 = 2147483650
-(-) 2147483648 -2147483648 = 4294967296
-(-) 2147483648 2147483647 = 1
-(-) 2147483648 -2147483649 = 4294967297
-(-) 2147483648 2147483648 = 0
-(-) 2147483648 -4294967296 = 6442450944
-(-) 2147483648 4294967294 = -2147483646
-(-) 2147483648 4611686018427387904 = -4611686016279904256
-(-) 2147483648 4611686014132420609 = -4611686011984936961
-(-) -4294967296 0 = -4294967296
-(-) -4294967296 1 = -4294967297
-(-) -4294967296 -1 = -4294967295
-(-) -4294967296 2 = -4294967298
-(-) -4294967296 -2 = -4294967294
-(-) -4294967296 -2147483648 = -2147483648
-(-) -4294967296 2147483647 = -6442450943
-(-) -4294967296 -2147483649 = -2147483647
-(-) -4294967296 2147483648 = -6442450944
-(-) -4294967296 -4294967296 = 0
-(-) -4294967296 4294967294 = -8589934590
-(-) -4294967296 4611686018427387904 = -4611686022722355200
-(-) -4294967296 4611686014132420609 = -4611686018427387905
-(-) 4294967294 0 = 4294967294
-(-) 4294967294 1 = 4294967293
-(-) 4294967294 -1 = 4294967295
-(-) 4294967294 2 = 4294967292
-(-) 4294967294 -2 = 4294967296
-(-) 4294967294 -2147483648 = 6442450942
-(-) 4294967294 2147483647 = 2147483647
-(-) 4294967294 -2147483649 = 6442450943
-(-) 4294967294 2147483648 = 2147483646
-(-) 4294967294 -4294967296 = 8589934590
-(-) 4294967294 4294967294 = 0
-(-) 4294967294 4611686018427387904 = -4611686014132420610
-(-) 4294967294 4611686014132420609 = -4611686009837453315
-(-) 4611686018427387904 0 = 4611686018427387904
-(-) 4611686018427387904 1 = 4611686018427387903
-(-) 4611686018427387904 -1 = 4611686018427387905
-(-) 4611686018427387904 2 = 4611686018427387902
-(-) 4611686018427387904 -2 = 4611686018427387906
-(-) 4611686018427387904 -2147483648 = 4611686020574871552
-(-) 4611686018427387904 2147483647 = 4611686016279904257
-(-) 4611686018427387904 -2147483649 = 4611686020574871553
-(-) 4611686018427387904 2147483648 = 4611686016279904256
-(-) 4611686018427387904 -4294967296 = 4611686022722355200
-(-) 4611686018427387904 4294967294 = 4611686014132420610
-(-) 4611686018427387904 4611686018427387904 = 0
-(-) 4611686018427387904 4611686014132420609 = 4294967295
-(-) 4611686014132420609 0 = 4611686014132420609
-(-) 4611686014132420609 1 = 4611686014132420608
-(-) 4611686014132420609 -1 = 4611686014132420610
-(-) 4611686014132420609 2 = 4611686014132420607
-(-) 4611686014132420609 -2 = 4611686014132420611
-(-) 4611686014132420609 -2147483648 = 4611686016279904257
-(-) 4611686014132420609 2147483647 = 4611686011984936962
-(-) 4611686014132420609 -2147483649 = 4611686016279904258
-(-) 4611686014132420609 2147483648 = 4611686011984936961
-(-) 4611686014132420609 -4294967296 = 4611686018427387905
-(-) 4611686014132420609 4294967294 = 4611686009837453315
-(-) 4611686014132420609 4611686018427387904 = -4294967295
-(-) 4611686014132420609 4611686014132420609 = 0
-div 0 1 = 0
-div 0 -1 = 0
-div 0 2 = 0
-div 0 -2 = 0
-div 0 -2147483648 = 0
-div 0 2147483647 = 0
-div 0 -2147483649 = 0
-div 0 2147483648 = 0
-div 0 -4294967296 = 0
-div 0 4294967294 = 0
-div 0 4611686018427387904 = 0
-div 0 4611686014132420609 = 0
-div 1 1 = 1
-div 1 -1 = -1
-div 1 2 = 0
-div 1 -2 = -1
-div 1 -2147483648 = -1
-div 1 2147483647 = 0
-div 1 -2147483649 = -1
-div 1 2147483648 = 0
-div 1 -4294967296 = -1
-div 1 4294967294 = 0
-div 1 4611686018427387904 = 0
-div 1 4611686014132420609 = 0
-div -1 1 = -1
-div -1 -1 = 1
-div -1 2 = -1
-div -1 -2 = 0
-div -1 -2147483648 = 0
-div -1 2147483647 = -1
-div -1 -2147483649 = 0
-div -1 2147483648 = -1
-div -1 -4294967296 = 0
-div -1 4294967294 = -1
-div -1 4611686018427387904 = -1
-div -1 4611686014132420609 = -1
-div 2 1 = 2
-div 2 -1 = -2
-div 2 2 = 1
-div 2 -2 = -1
-div 2 -2147483648 = -1
-div 2 2147483647 = 0
-div 2 -2147483649 = -1
-div 2 2147483648 = 0
-div 2 -4294967296 = -1
-div 2 4294967294 = 0
-div 2 4611686018427387904 = 0
-div 2 4611686014132420609 = 0
-div -2 1 = -2
-div -2 -1 = 2
-div -2 2 = -1
-div -2 -2 = 1
-div -2 -2147483648 = 0
-div -2 2147483647 = -1
-div -2 -2147483649 = 0
-div -2 2147483648 = -1
-div -2 -4294967296 = 0
-div -2 4294967294 = -1
-div -2 4611686018427387904 = -1
-div -2 4611686014132420609 = -1
-div -2147483648 1 = -2147483648
-div -2147483648 -1 = 2147483648
-div -2147483648 2 = -1073741824
-div -2147483648 -2 = 1073741824
-div -2147483648 -2147483648 = 1
-div -2147483648 2147483647 = -2
-div -2147483648 -2147483649 = 0
-div -2147483648 2147483648 = -1
-div -2147483648 -4294967296 = 0
-div -2147483648 4294967294 = -1
-div -2147483648 4611686018427387904 = -1
-div -2147483648 4611686014132420609 = -1
-div 2147483647 1 = 2147483647
-div 2147483647 -1 = -2147483647
-div 2147483647 2 = 1073741823
-div 2147483647 -2 = -1073741824
-div 2147483647 -2147483648 = -1
-div 2147483647 2147483647 = 1
-div 2147483647 -2147483649 = -1
-div 2147483647 2147483648 = 0
-div 2147483647 -4294967296 = -1
-div 2147483647 4294967294 = 0
-div 2147483647 4611686018427387904 = 0
-div 2147483647 4611686014132420609 = 0
-mod 0 1 = 0
-mod 0 -1 = 0
-mod 0 2 = 0
-mod 0 -2 = 0
-mod 0 -2147483648 = 0
-mod 0 2147483647 = 0
-mod 0 -2147483649 = 0
-mod 0 2147483648 = 0
-mod 0 -4294967296 = 0
-mod 0 4294967294 = 0
-mod 0 4611686018427387904 = 0
-mod 0 4611686014132420609 = 0
-mod 1 1 = 0
-mod 1 -1 = 0
-mod 1 2 = 1
-mod 1 -2 = -1
-mod 1 -2147483648 = -2147483647
-mod 1 2147483647 = 1
-mod 1 -2147483649 = -2147483648
-mod 1 2147483648 = 1
-mod 1 -4294967296 = -4294967295
-mod 1 4294967294 = 1
-mod 1 4611686018427387904 = 1
-mod 1 4611686014132420609 = 1
-mod -1 1 = 0
-mod -1 -1 = 0
-mod -1 2 = 1
-mod -1 -2 = -1
-mod -1 -2147483648 = -1
-mod -1 2147483647 = 2147483646
-mod -1 -2147483649 = -1
-mod -1 2147483648 = 2147483647
-mod -1 -4294967296 = -1
-mod -1 4294967294 = 4294967293
-mod -1 4611686018427387904 = 4611686018427387903
-mod -1 4611686014132420609 = 4611686014132420608
-mod 2 1 = 0
-mod 2 -1 = 0
-mod 2 2 = 0
-mod 2 -2 = 0
-mod 2 -2147483648 = -2147483646
-mod 2 2147483647 = 2
-mod 2 -2147483649 = -2147483647
-mod 2 2147483648 = 2
-mod 2 -4294967296 = -4294967294
-mod 2 4294967294 = 2
-mod 2 4611686018427387904 = 2
-mod 2 4611686014132420609 = 2
-mod -2 1 = 0
-mod -2 -1 = 0
-mod -2 2 = 0
-mod -2 -2 = 0
-mod -2 -2147483648 = -2
-mod -2 2147483647 = 2147483645
-mod -2 -2147483649 = -2
-mod -2 2147483648 = 2147483646
-mod -2 -4294967296 = -2
-mod -2 4294967294 = 4294967292
-mod -2 4611686018427387904 = 4611686018427387902
-mod -2 4611686014132420609 = 4611686014132420607
-mod -2147483648 1 = 0
-mod -2147483648 -1 = 0
-mod -2147483648 2 = 0
-mod -2147483648 -2 = 0
-mod -2147483648 -2147483648 = 0
-mod -2147483648 2147483647 = 2147483646
-mod -2147483648 -2147483649 = -2147483648
-mod -2147483648 2147483648 = 0
-mod -2147483648 -4294967296 = -2147483648
-mod -2147483648 4294967294 = 2147483646
-mod -2147483648 4611686018427387904 = 4611686016279904256
-mod -2147483648 4611686014132420609 = 4611686011984936961
-mod 2147483647 1 = 0
-mod 2147483647 -1 = 0
-mod 2147483647 2 = 1
-mod 2147483647 -2 = -1
-mod 2147483647 -2147483648 = -1
-mod 2147483647 2147483647 = 0
-mod 2147483647 -2147483649 = -2
-mod 2147483647 2147483648 = 2147483647
-mod 2147483647 -4294967296 = -2147483649
-mod 2147483647 4294967294 = 2147483647
-mod 2147483647 4611686018427387904 = 2147483647
-mod 2147483647 4611686014132420609 = 2147483647
-quot 0 1 = 0
-quot 0 -1 = 0
-quot 0 2 = 0
-quot 0 -2 = 0
-quot 0 -2147483648 = 0
-quot 0 2147483647 = 0
-quot 0 -2147483649 = 0
-quot 0 2147483648 = 0
-quot 0 -4294967296 = 0
-quot 0 4294967294 = 0
-quot 0 4611686018427387904 = 0
-quot 0 4611686014132420609 = 0
-quot 1 1 = 1
-quot 1 -1 = -1
-quot 1 2 = 0
-quot 1 -2 = 0
-quot 1 -2147483648 = 0
-quot 1 2147483647 = 0
-quot 1 -2147483649 = 0
-quot 1 2147483648 = 0
-quot 1 -4294967296 = 0
-quot 1 4294967294 = 0
-quot 1 4611686018427387904 = 0
-quot 1 4611686014132420609 = 0
-quot -1 1 = -1
-quot -1 -1 = 1
-quot -1 2 = 0
-quot -1 -2 = 0
-quot -1 -2147483648 = 0
-quot -1 2147483647 = 0
-quot -1 -2147483649 = 0
-quot -1 2147483648 = 0
-quot -1 -4294967296 = 0
-quot -1 4294967294 = 0
-quot -1 4611686018427387904 = 0
-quot -1 4611686014132420609 = 0
-quot 2 1 = 2
-quot 2 -1 = -2
-quot 2 2 = 1
-quot 2 -2 = -1
-quot 2 -2147483648 = 0
-quot 2 2147483647 = 0
-quot 2 -2147483649 = 0
-quot 2 2147483648 = 0
-quot 2 -4294967296 = 0
-quot 2 4294967294 = 0
-quot 2 4611686018427387904 = 0
-quot 2 4611686014132420609 = 0
-quot -2 1 = -2
-quot -2 -1 = 2
-quot -2 2 = -1
-quot -2 -2 = 1
-quot -2 -2147483648 = 0
-quot -2 2147483647 = 0
-quot -2 -2147483649 = 0
-quot -2 2147483648 = 0
-quot -2 -4294967296 = 0
-quot -2 4294967294 = 0
-quot -2 4611686018427387904 = 0
-quot -2 4611686014132420609 = 0
-quot -2147483648 1 = -2147483648
-quot -2147483648 -1 = 2147483648
-quot -2147483648 2 = -1073741824
-quot -2147483648 -2 = 1073741824
-quot -2147483648 -2147483648 = 1
-quot -2147483648 2147483647 = -1
-quot -2147483648 -2147483649 = 0
-quot -2147483648 2147483648 = -1
-quot -2147483648 -4294967296 = 0
-quot -2147483648 4294967294 = 0
-quot -2147483648 4611686018427387904 = 0
-quot -2147483648 4611686014132420609 = 0
-quot 2147483647 1 = 2147483647
-quot 2147483647 -1 = -2147483647
-quot 2147483647 2 = 1073741823
-quot 2147483647 -2 = -1073741823
-quot 2147483647 -2147483648 = 0
-quot 2147483647 2147483647 = 1
-quot 2147483647 -2147483649 = 0
-quot 2147483647 2147483648 = 0
-quot 2147483647 -4294967296 = 0
-quot 2147483647 4294967294 = 0
-quot 2147483647 4611686018427387904 = 0
-quot 2147483647 4611686014132420609 = 0
-rem 0 1 = 0
-rem 0 -1 = 0
-rem 0 2 = 0
-rem 0 -2 = 0
-rem 0 -2147483648 = 0
-rem 0 2147483647 = 0
-rem 0 -2147483649 = 0
-rem 0 2147483648 = 0
-rem 0 -4294967296 = 0
-rem 0 4294967294 = 0
-rem 0 4611686018427387904 = 0
-rem 0 4611686014132420609 = 0
-rem 1 1 = 0
-rem 1 -1 = 0
-rem 1 2 = 1
-rem 1 -2 = 1
-rem 1 -2147483648 = 1
-rem 1 2147483647 = 1
-rem 1 -2147483649 = 1
-rem 1 2147483648 = 1
-rem 1 -4294967296 = 1
-rem 1 4294967294 = 1
-rem 1 4611686018427387904 = 1
-rem 1 4611686014132420609 = 1
-rem -1 1 = 0
-rem -1 -1 = 0
-rem -1 2 = -1
-rem -1 -2 = -1
-rem -1 -2147483648 = -1
-rem -1 2147483647 = -1
-rem -1 -2147483649 = -1
-rem -1 2147483648 = -1
-rem -1 -4294967296 = -1
-rem -1 4294967294 = -1
-rem -1 4611686018427387904 = -1
-rem -1 4611686014132420609 = -1
-rem 2 1 = 0
-rem 2 -1 = 0
-rem 2 2 = 0
-rem 2 -2 = 0
-rem 2 -2147483648 = 2
-rem 2 2147483647 = 2
-rem 2 -2147483649 = 2
-rem 2 2147483648 = 2
-rem 2 -4294967296 = 2
-rem 2 4294967294 = 2
-rem 2 4611686018427387904 = 2
-rem 2 4611686014132420609 = 2
-rem -2 1 = 0
-rem -2 -1 = 0
-rem -2 2 = 0
-rem -2 -2 = 0
-rem -2 -2147483648 = -2
-rem -2 2147483647 = -2
-rem -2 -2147483649 = -2
-rem -2 2147483648 = -2
-rem -2 -4294967296 = -2
-rem -2 4294967294 = -2
-rem -2 4611686018427387904 = -2
-rem -2 4611686014132420609 = -2
-rem -2147483648 1 = 0
-rem -2147483648 -1 = 0
-rem -2147483648 2 = 0
-rem -2147483648 -2 = 0
-rem -2147483648 -2147483648 = 0
-rem -2147483648 2147483647 = -1
-rem -2147483648 -2147483649 = -2147483648
-rem -2147483648 2147483648 = 0
-rem -2147483648 -4294967296 = -2147483648
-rem -2147483648 4294967294 = -2147483648
-rem -2147483648 4611686018427387904 = -2147483648
-rem -2147483648 4611686014132420609 = -2147483648
-rem 2147483647 1 = 0
-rem 2147483647 -1 = 0
-rem 2147483647 2 = 1
-rem 2147483647 -2 = 1
-rem 2147483647 -2147483648 = 2147483647
-rem 2147483647 2147483647 = 0
-rem 2147483647 -2147483649 = 2147483647
-rem 2147483647 2147483648 = 2147483647
-rem 2147483647 -4294967296 = 2147483647
-rem 2147483647 4294967294 = 2147483647
-rem 2147483647 4611686018427387904 = 2147483647
-rem 2147483647 4611686014132420609 = 2147483647
-gcd 0 1 = 1
-gcd 0 -1 = 1
-gcd 0 2 = 2
-gcd 0 -2 = 2
-gcd 0 -2147483648 = 2147483648
-gcd 0 2147483647 = 2147483647
-gcd 1 0 = 1
-gcd 1 1 = 1
-gcd 1 -1 = 1
-gcd 1 2 = 1
-gcd 1 -2 = 1
-gcd 1 -2147483648 = 1
-gcd 1 2147483647 = 1
-gcd -1 0 = 1
-gcd -1 1 = 1
-gcd -1 -1 = 1
-gcd -1 2 = 1
-gcd -1 -2 = 1
-gcd -1 -2147483648 = 1
-gcd -1 2147483647 = 1
-gcd 2 0 = 2
-gcd 2 1 = 1
-gcd 2 -1 = 1
-gcd 2 2 = 2
-gcd 2 -2 = 2
-gcd 2 -2147483648 = 2
-gcd 2 2147483647 = 1
-gcd -2 0 = 2
-gcd -2 1 = 1
-gcd -2 -1 = 1
-gcd -2 2 = 2
-gcd -2 -2 = 2
-gcd -2 -2147483648 = 2
-gcd -2 2147483647 = 1
-gcd -2147483648 0 = 2147483648
-gcd -2147483648 1 = 1
-gcd -2147483648 -1 = 1
-gcd -2147483648 2 = 2
-gcd -2147483648 -2 = 2
-gcd -2147483648 -2147483648 = 2147483648
-gcd -2147483648 2147483647 = 1
-gcd 2147483647 0 = 2147483647
-gcd 2147483647 1 = 1
-gcd 2147483647 -1 = 1
-gcd 2147483647 2 = 1
-gcd 2147483647 -2 = 1
-gcd 2147483647 -2147483648 = 1
-gcd 2147483647 2147483647 = 2147483647
-lcm 0 1 = 0
-lcm 0 -1 = 0
-lcm 0 2 = 0
-lcm 0 -2 = 0
-lcm 0 -2147483648 = 0
-lcm 0 2147483647 = 0
-lcm 1 0 = 0
-lcm 1 1 = 1
-lcm 1 -1 = 1
-lcm 1 2 = 2
-lcm 1 -2 = 2
-lcm 1 -2147483648 = 2147483648
-lcm 1 2147483647 = 2147483647
-lcm -1 0 = 0
-lcm -1 1 = 1
-lcm -1 -1 = 1
-lcm -1 2 = 2
-lcm -1 -2 = 2
-lcm -1 -2147483648 = 2147483648
-lcm -1 2147483647 = 2147483647
-lcm 2 0 = 0
-lcm 2 1 = 2
-lcm 2 -1 = 2
-lcm 2 2 = 2
-lcm 2 -2 = 2
-lcm 2 -2147483648 = 2147483648
-lcm 2 2147483647 = 4294967294
-lcm -2 0 = 0
-lcm -2 1 = 2
-lcm -2 -1 = 2
-lcm -2 2 = 2
-lcm -2 -2 = 2
-lcm -2 -2147483648 = 2147483648
-lcm -2 2147483647 = 4294967294
-lcm -2147483648 0 = 0
-lcm -2147483648 1 = 2147483648
-lcm -2147483648 -1 = 2147483648
-lcm -2147483648 2 = 2147483648
-lcm -2147483648 -2 = 2147483648
-lcm -2147483648 -2147483648 = 2147483648
-lcm -2147483648 2147483647 = 4611686016279904256
-lcm 2147483647 0 = 0
-lcm 2147483647 1 = 2147483647
-lcm 2147483647 -1 = 2147483647
-lcm 2147483647 2 = 4294967294
-lcm 2147483647 -2 = 4294967294
-lcm 2147483647 -2147483648 = 4611686016279904256
-lcm 2147483647 2147483647 = 2147483647
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith003.stdout-alpha-dec-osf3 b/testsuite/tests/ghc-regress/numeric/should_run/arith003.stdout-alpha-dec-osf3
deleted file mode 100644
index 9ea4a0f2eb..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith003.stdout-alpha-dec-osf3
+++ /dev/null
@@ -1,1053 +0,0 @@
-(+) 0 0 = 0
-(+) 0 1 = 1
-(+) 0 -1 = -1
-(+) 0 2 = 2
-(+) 0 -2 = -2
-(+) 0 -9223372036854775808 = -9223372036854775808
-(+) 0 9223372036854775807 = 9223372036854775807
-(+) 1 0 = 1
-(+) 1 1 = 2
-(+) 1 -1 = 0
-(+) 1 2 = 3
-(+) 1 -2 = -1
-(+) 1 -9223372036854775808 = -9223372036854775807
-(+) 1 9223372036854775807 = -9223372036854775808
-(+) -1 0 = -1
-(+) -1 1 = 0
-(+) -1 -1 = -2
-(+) -1 2 = 1
-(+) -1 -2 = -3
-(+) -1 -9223372036854775808 = 9223372036854775807
-(+) -1 9223372036854775807 = 9223372036854775806
-(+) 2 0 = 2
-(+) 2 1 = 3
-(+) 2 -1 = 1
-(+) 2 2 = 4
-(+) 2 -2 = 0
-(+) 2 -9223372036854775808 = -9223372036854775806
-(+) 2 9223372036854775807 = -9223372036854775807
-(+) -2 0 = -2
-(+) -2 1 = -1
-(+) -2 -1 = -3
-(+) -2 2 = 0
-(+) -2 -2 = -4
-(+) -2 -9223372036854775808 = 9223372036854775806
-(+) -2 9223372036854775807 = 9223372036854775805
-(+) -9223372036854775808 0 = -9223372036854775808
-(+) -9223372036854775808 1 = -9223372036854775807
-(+) -9223372036854775808 -1 = 9223372036854775807
-(+) -9223372036854775808 2 = -9223372036854775806
-(+) -9223372036854775808 -2 = 9223372036854775806
-(+) -9223372036854775808 -9223372036854775808 = 0
-(+) -9223372036854775808 9223372036854775807 = -1
-(+) 9223372036854775807 0 = 9223372036854775807
-(+) 9223372036854775807 1 = -9223372036854775808
-(+) 9223372036854775807 -1 = 9223372036854775806
-(+) 9223372036854775807 2 = -9223372036854775807
-(+) 9223372036854775807 -2 = 9223372036854775805
-(+) 9223372036854775807 -9223372036854775808 = -1
-(+) 9223372036854775807 9223372036854775807 = -2
-(-) 0 0 = 0
-(-) 0 1 = -1
-(-) 0 -1 = 1
-(-) 0 2 = -2
-(-) 0 -2 = 2
-(-) 0 -9223372036854775808 = -9223372036854775808
-(-) 0 9223372036854775807 = -9223372036854775807
-(-) 1 0 = 1
-(-) 1 1 = 0
-(-) 1 -1 = 2
-(-) 1 2 = -1
-(-) 1 -2 = 3
-(-) 1 -9223372036854775808 = -9223372036854775807
-(-) 1 9223372036854775807 = -9223372036854775806
-(-) -1 0 = -1
-(-) -1 1 = -2
-(-) -1 -1 = 0
-(-) -1 2 = -3
-(-) -1 -2 = 1
-(-) -1 -9223372036854775808 = 9223372036854775807
-(-) -1 9223372036854775807 = -9223372036854775808
-(-) 2 0 = 2
-(-) 2 1 = 1
-(-) 2 -1 = 3
-(-) 2 2 = 0
-(-) 2 -2 = 4
-(-) 2 -9223372036854775808 = -9223372036854775806
-(-) 2 9223372036854775807 = -9223372036854775805
-(-) -2 0 = -2
-(-) -2 1 = -3
-(-) -2 -1 = -1
-(-) -2 2 = -4
-(-) -2 -2 = 0
-(-) -2 -9223372036854775808 = 9223372036854775806
-(-) -2 9223372036854775807 = 9223372036854775807
-(-) -9223372036854775808 0 = -9223372036854775808
-(-) -9223372036854775808 1 = 9223372036854775807
-(-) -9223372036854775808 -1 = -9223372036854775807
-(-) -9223372036854775808 2 = 9223372036854775806
-(-) -9223372036854775808 -2 = -9223372036854775806
-(-) -9223372036854775808 -9223372036854775808 = 0
-(-) -9223372036854775808 9223372036854775807 = 1
-(-) 9223372036854775807 0 = 9223372036854775807
-(-) 9223372036854775807 1 = 9223372036854775806
-(-) 9223372036854775807 -1 = -9223372036854775808
-(-) 9223372036854775807 2 = 9223372036854775805
-(-) 9223372036854775807 -2 = -9223372036854775807
-(-) 9223372036854775807 -9223372036854775808 = -1
-(-) 9223372036854775807 9223372036854775807 = 0
-(^) 0 0 = 1
-(^) 0 1 = 0
-(^) 0 2 = 0
-(^) 1 0 = 1
-(^) 1 1 = 1
-(^) 1 2 = 1
-(^) -1 0 = 1
-(^) -1 1 = -1
-(^) -1 2 = 1
-(^) 2 0 = 1
-(^) 2 1 = 2
-(^) 2 2 = 4
-(^) -2 0 = 1
-(^) -2 1 = -2
-(^) -2 2 = 4
-(^) -9223372036854775808 0 = 1
-(^) -9223372036854775808 1 = -9223372036854775808
-(^) -9223372036854775808 2 = 0
-(^) 9223372036854775807 0 = 1
-(^) 9223372036854775807 1 = 9223372036854775807
-(^) 9223372036854775807 2 = 1
-div 0 1 = 0
-div 0 -1 = 0
-div 0 2 = 0
-div 0 -2 = 0
-div 0 -9223372036854775808 = 0
-div 0 9223372036854775807 = 0
-div 1 1 = 1
-div 1 -1 = -1
-div 1 2 = 0
-div 1 -2 = -1
-div 1 -9223372036854775808 = -1
-div 1 9223372036854775807 = 0
-div -1 1 = -1
-div -1 -1 = 1
-div -1 2 = -1
-div -1 -2 = 0
-div -1 -9223372036854775808 = 0
-div -1 9223372036854775807 = -1
-div 2 1 = 2
-div 2 -1 = -2
-div 2 2 = 1
-div 2 -2 = -1
-div 2 -9223372036854775808 = -1
-div 2 9223372036854775807 = 0
-div -2 1 = -2
-div -2 -1 = 2
-div -2 2 = -1
-div -2 -2 = 1
-div -2 -9223372036854775808 = 0
-div -2 9223372036854775807 = -1
-div 9223372036854775807 1 = 9223372036854775807
-div 9223372036854775807 -1 = -9223372036854775807
-div 9223372036854775807 2 = 4611686018427387903
-div 9223372036854775807 -2 = -4611686018427387904
-div 9223372036854775807 -9223372036854775808 = -1
-div 9223372036854775807 9223372036854775807 = 1
-mod 0 1 = 0
-mod 0 -1 = 0
-mod 0 2 = 0
-mod 0 -2 = 0
-mod 0 -9223372036854775808 = 0
-mod 0 9223372036854775807 = 0
-mod 1 1 = 0
-mod 1 -1 = 0
-mod 1 2 = 1
-mod 1 -2 = -1
-mod 1 -9223372036854775808 = -9223372036854775807
-mod 1 9223372036854775807 = 1
-mod -1 1 = 0
-mod -1 -1 = 0
-mod -1 2 = 1
-mod -1 -2 = -1
-mod -1 -9223372036854775808 = -1
-mod -1 9223372036854775807 = 9223372036854775806
-mod 2 1 = 0
-mod 2 -1 = 0
-mod 2 2 = 0
-mod 2 -2 = 0
-mod 2 -9223372036854775808 = -9223372036854775806
-mod 2 9223372036854775807 = 2
-mod -2 1 = 0
-mod -2 -1 = 0
-mod -2 2 = 0
-mod -2 -2 = 0
-mod -2 -9223372036854775808 = -2
-mod -2 9223372036854775807 = 9223372036854775805
-mod 9223372036854775807 1 = 0
-mod 9223372036854775807 -1 = 0
-mod 9223372036854775807 2 = 1
-mod 9223372036854775807 -2 = -1
-mod 9223372036854775807 -9223372036854775808 = -1
-mod 9223372036854775807 9223372036854775807 = 0
-quot 0 1 = 0
-quot 0 -1 = 0
-quot 0 2 = 0
-quot 0 -2 = 0
-quot 0 -9223372036854775808 = 0
-quot 0 9223372036854775807 = 0
-quot 1 1 = 1
-quot 1 -1 = -1
-quot 1 2 = 0
-quot 1 -2 = 0
-quot 1 -9223372036854775808 = 0
-quot 1 9223372036854775807 = 0
-quot -1 1 = -1
-quot -1 -1 = 1
-quot -1 2 = 0
-quot -1 -2 = 0
-quot -1 -9223372036854775808 = 0
-quot -1 9223372036854775807 = 0
-quot 2 1 = 2
-quot 2 -1 = -2
-quot 2 2 = 1
-quot 2 -2 = -1
-quot 2 -9223372036854775808 = 0
-quot 2 9223372036854775807 = 0
-quot -2 1 = -2
-quot -2 -1 = 2
-quot -2 2 = -1
-quot -2 -2 = 1
-quot -2 -9223372036854775808 = 0
-quot -2 9223372036854775807 = 0
-quot 9223372036854775807 1 = 9223372036854775807
-quot 9223372036854775807 -1 = -9223372036854775807
-quot 9223372036854775807 2 = 4611686018427387903
-quot 9223372036854775807 -2 = -4611686018427387903
-quot 9223372036854775807 -9223372036854775808 = 0
-quot 9223372036854775807 9223372036854775807 = 1
-rem 0 1 = 0
-rem 0 -1 = 0
-rem 0 2 = 0
-rem 0 -2 = 0
-rem 0 -9223372036854775808 = 0
-rem 0 9223372036854775807 = 0
-rem 1 1 = 0
-rem 1 -1 = 0
-rem 1 2 = 1
-rem 1 -2 = 1
-rem 1 -9223372036854775808 = 1
-rem 1 9223372036854775807 = 1
-rem -1 1 = 0
-rem -1 -1 = 0
-rem -1 2 = -1
-rem -1 -2 = -1
-rem -1 -9223372036854775808 = -1
-rem -1 9223372036854775807 = -1
-rem 2 1 = 0
-rem 2 -1 = 0
-rem 2 2 = 0
-rem 2 -2 = 0
-rem 2 -9223372036854775808 = 2
-rem 2 9223372036854775807 = 2
-rem -2 1 = 0
-rem -2 -1 = 0
-rem -2 2 = 0
-rem -2 -2 = 0
-rem -2 -9223372036854775808 = -2
-rem -2 9223372036854775807 = -2
-rem 9223372036854775807 1 = 0
-rem 9223372036854775807 -1 = 0
-rem 9223372036854775807 2 = 1
-rem 9223372036854775807 -2 = 1
-rem 9223372036854775807 -9223372036854775808 = 9223372036854775807
-rem 9223372036854775807 9223372036854775807 = 0
-gcd 0 1 = 1
-gcd 0 -1 = 1
-gcd 0 2 = 2
-gcd 0 -2 = 2
-gcd 0 9223372036854775807 = 9223372036854775807
-gcd 1 0 = 1
-gcd 1 1 = 1
-gcd 1 -1 = 1
-gcd 1 2 = 1
-gcd 1 -2 = 1
-gcd 1 9223372036854775807 = 1
-gcd -1 0 = 1
-gcd -1 1 = 1
-gcd -1 -1 = 1
-gcd -1 2 = 1
-gcd -1 -2 = 1
-gcd -1 9223372036854775807 = 1
-gcd 2 0 = 2
-gcd 2 1 = 1
-gcd 2 -1 = 1
-gcd 2 2 = 2
-gcd 2 -2 = 2
-gcd 2 9223372036854775807 = 1
-gcd -2 0 = 2
-gcd -2 1 = 1
-gcd -2 -1 = 1
-gcd -2 2 = 2
-gcd -2 -2 = 2
-gcd -2 9223372036854775807 = 1
-gcd 9223372036854775807 0 = 9223372036854775807
-gcd 9223372036854775807 1 = 1
-gcd 9223372036854775807 -1 = 1
-gcd 9223372036854775807 2 = 1
-gcd 9223372036854775807 -2 = 1
-gcd 9223372036854775807 9223372036854775807 = 9223372036854775807
-lcm 0 1 = 0
-lcm 0 -1 = 0
-lcm 0 2 = 0
-lcm 0 -2 = 0
-lcm 0 -9223372036854775808 = 0
-lcm 1 0 = 0
-lcm 1 1 = 1
-lcm 1 -1 = 1
-lcm 1 2 = 2
-lcm 1 -2 = 2
-lcm 1 -9223372036854775808 = -9223372036854775808
-lcm -1 0 = 0
-lcm -1 1 = 1
-lcm -1 -1 = 1
-lcm -1 2 = 2
-lcm -1 -2 = 2
-lcm -1 -9223372036854775808 = -9223372036854775808
-lcm 2 0 = 0
-lcm 2 1 = 2
-lcm 2 -1 = 2
-lcm 2 2 = 2
-lcm 2 -2 = 2
-lcm 2 -9223372036854775808 = -9223372036854775808
-lcm -2 0 = 0
-lcm -2 1 = 2
-lcm -2 -1 = 2
-lcm -2 2 = 2
-lcm -2 -2 = 2
-lcm -2 -9223372036854775808 = -9223372036854775808
-lcm -9223372036854775808 0 = 0
-lcm -9223372036854775808 1 = -9223372036854775808
-lcm -9223372036854775808 -1 = -9223372036854775808
-lcm -9223372036854775808 2 = -9223372036854775808
-lcm -9223372036854775808 -2 = -9223372036854775808
-lcm -9223372036854775808 -9223372036854775808 = -9223372036854775808
-lcm 9223372036854775807 0 = 0
-lcm 9223372036854775807 1 = 9223372036854775807
-lcm 9223372036854775807 -1 = 9223372036854775807
-lcm 9223372036854775807 2 = 2
-lcm 9223372036854775807 -2 = 2
-lcm 9223372036854775807 -9223372036854775808 = -9223372036854775808
-(+) 0 0 = 0
-(+) 0 1 = 1
-(+) 0 -1 = -1
-(+) 0 2 = 2
-(+) 0 -2 = -2
-(+) 0 -9223372036854775808 = -9223372036854775808
-(+) 0 9223372036854775807 = 9223372036854775807
-(+) 0 -9223372036854775809 = -9223372036854775809
-(+) 0 9223372036854775808 = 9223372036854775808
-(+) 0 0 = 0
-(+) 0 18446744073709551614 = 18446744073709551614
-(+) 0 0 = 0
-(+) 0 85070591730234615847396907784232501249 = 85070591730234615847396907784232501249
-(+) 1 0 = 1
-(+) 1 1 = 2
-(+) 1 -1 = 0
-(+) 1 2 = 3
-(+) 1 -2 = -1
-(+) 1 -9223372036854775808 = -9223372036854775807
-(+) 1 9223372036854775807 = 9223372036854775808
-(+) 1 -9223372036854775809 = -9223372036854775808
-(+) 1 9223372036854775808 = 9223372036854775809
-(+) 1 0 = 1
-(+) 1 18446744073709551614 = 18446744073709551615
-(+) 1 0 = 1
-(+) 1 85070591730234615847396907784232501249 = 85070591730234615847396907784232501250
-(+) -1 0 = -1
-(+) -1 1 = 0
-(+) -1 -1 = -2
-(+) -1 2 = 1
-(+) -1 -2 = -3
-(+) -1 -9223372036854775808 = -9223372036854775809
-(+) -1 9223372036854775807 = 9223372036854775806
-(+) -1 -9223372036854775809 = -9223372036854775810
-(+) -1 9223372036854775808 = 9223372036854775807
-(+) -1 0 = -1
-(+) -1 18446744073709551614 = 18446744073709551613
-(+) -1 0 = -1
-(+) -1 85070591730234615847396907784232501249 = 85070591730234615847396907784232501248
-(+) 2 0 = 2
-(+) 2 1 = 3
-(+) 2 -1 = 1
-(+) 2 2 = 4
-(+) 2 -2 = 0
-(+) 2 -9223372036854775808 = -9223372036854775806
-(+) 2 9223372036854775807 = 9223372036854775809
-(+) 2 -9223372036854775809 = -9223372036854775807
-(+) 2 9223372036854775808 = 9223372036854775810
-(+) 2 0 = 2
-(+) 2 18446744073709551614 = 18446744073709551616
-(+) 2 0 = 2
-(+) 2 85070591730234615847396907784232501249 = 85070591730234615847396907784232501251
-(+) -2 0 = -2
-(+) -2 1 = -1
-(+) -2 -1 = -3
-(+) -2 2 = 0
-(+) -2 -2 = -4
-(+) -2 -9223372036854775808 = -9223372036854775810
-(+) -2 9223372036854775807 = 9223372036854775805
-(+) -2 -9223372036854775809 = -9223372036854775811
-(+) -2 9223372036854775808 = 9223372036854775806
-(+) -2 0 = -2
-(+) -2 18446744073709551614 = 18446744073709551612
-(+) -2 0 = -2
-(+) -2 85070591730234615847396907784232501249 = 85070591730234615847396907784232501247
-(+) -9223372036854775808 0 = -9223372036854775808
-(+) -9223372036854775808 1 = -9223372036854775807
-(+) -9223372036854775808 -1 = -9223372036854775809
-(+) -9223372036854775808 2 = -9223372036854775806
-(+) -9223372036854775808 -2 = -9223372036854775810
-(+) -9223372036854775808 -9223372036854775808 = -18446744073709551616
-(+) -9223372036854775808 9223372036854775807 = -1
-(+) -9223372036854775808 -9223372036854775809 = -18446744073709551617
-(+) -9223372036854775808 9223372036854775808 = 0
-(+) -9223372036854775808 0 = -9223372036854775808
-(+) -9223372036854775808 18446744073709551614 = 9223372036854775806
-(+) -9223372036854775808 0 = -9223372036854775808
-(+) -9223372036854775808 85070591730234615847396907784232501249 = 85070591730234615838173535747377725441
-(+) 9223372036854775807 0 = 9223372036854775807
-(+) 9223372036854775807 1 = 9223372036854775808
-(+) 9223372036854775807 -1 = 9223372036854775806
-(+) 9223372036854775807 2 = 9223372036854775809
-(+) 9223372036854775807 -2 = 9223372036854775805
-(+) 9223372036854775807 -9223372036854775808 = -1
-(+) 9223372036854775807 9223372036854775807 = 18446744073709551614
-(+) 9223372036854775807 -9223372036854775809 = -2
-(+) 9223372036854775807 9223372036854775808 = 18446744073709551615
-(+) 9223372036854775807 0 = 9223372036854775807
-(+) 9223372036854775807 18446744073709551614 = 27670116110564327421
-(+) 9223372036854775807 0 = 9223372036854775807
-(+) 9223372036854775807 85070591730234615847396907784232501249 = 85070591730234615856620279821087277056
-(+) -9223372036854775809 0 = -9223372036854775809
-(+) -9223372036854775809 1 = -9223372036854775808
-(+) -9223372036854775809 -1 = -9223372036854775810
-(+) -9223372036854775809 2 = -9223372036854775807
-(+) -9223372036854775809 -2 = -9223372036854775811
-(+) -9223372036854775809 -9223372036854775808 = -18446744073709551617
-(+) -9223372036854775809 9223372036854775807 = -2
-(+) -9223372036854775809 -9223372036854775809 = -18446744073709551618
-(+) -9223372036854775809 9223372036854775808 = -1
-(+) -9223372036854775809 0 = -9223372036854775809
-(+) -9223372036854775809 18446744073709551614 = 9223372036854775805
-(+) -9223372036854775809 0 = -9223372036854775809
-(+) -9223372036854775809 85070591730234615847396907784232501249 = 85070591730234615838173535747377725440
-(+) 9223372036854775808 0 = 9223372036854775808
-(+) 9223372036854775808 1 = 9223372036854775809
-(+) 9223372036854775808 -1 = 9223372036854775807
-(+) 9223372036854775808 2 = 9223372036854775810
-(+) 9223372036854775808 -2 = 9223372036854775806
-(+) 9223372036854775808 -9223372036854775808 = 0
-(+) 9223372036854775808 9223372036854775807 = 18446744073709551615
-(+) 9223372036854775808 -9223372036854775809 = -1
-(+) 9223372036854775808 9223372036854775808 = 18446744073709551616
-(+) 9223372036854775808 0 = 9223372036854775808
-(+) 9223372036854775808 18446744073709551614 = 27670116110564327422
-(+) 9223372036854775808 0 = 9223372036854775808
-(+) 9223372036854775808 85070591730234615847396907784232501249 = 85070591730234615856620279821087277057
-(+) 0 0 = 0
-(+) 0 1 = 1
-(+) 0 -1 = -1
-(+) 0 2 = 2
-(+) 0 -2 = -2
-(+) 0 -9223372036854775808 = -9223372036854775808
-(+) 0 9223372036854775807 = 9223372036854775807
-(+) 0 -9223372036854775809 = -9223372036854775809
-(+) 0 9223372036854775808 = 9223372036854775808
-(+) 0 0 = 0
-(+) 0 18446744073709551614 = 18446744073709551614
-(+) 0 0 = 0
-(+) 0 85070591730234615847396907784232501249 = 85070591730234615847396907784232501249
-(+) 18446744073709551614 0 = 18446744073709551614
-(+) 18446744073709551614 1 = 18446744073709551615
-(+) 18446744073709551614 -1 = 18446744073709551613
-(+) 18446744073709551614 2 = 18446744073709551616
-(+) 18446744073709551614 -2 = 18446744073709551612
-(+) 18446744073709551614 -9223372036854775808 = 9223372036854775806
-(+) 18446744073709551614 9223372036854775807 = 27670116110564327421
-(+) 18446744073709551614 -9223372036854775809 = 9223372036854775805
-(+) 18446744073709551614 9223372036854775808 = 27670116110564327422
-(+) 18446744073709551614 0 = 18446744073709551614
-(+) 18446744073709551614 18446744073709551614 = 36893488147419103228
-(+) 18446744073709551614 0 = 18446744073709551614
-(+) 18446744073709551614 85070591730234615847396907784232501249 = 85070591730234615865843651857942052863
-(+) 0 0 = 0
-(+) 0 1 = 1
-(+) 0 -1 = -1
-(+) 0 2 = 2
-(+) 0 -2 = -2
-(+) 0 -9223372036854775808 = -9223372036854775808
-(+) 0 9223372036854775807 = 9223372036854775807
-(+) 0 -9223372036854775809 = -9223372036854775809
-(+) 0 9223372036854775808 = 9223372036854775808
-(+) 0 0 = 0
-(+) 0 18446744073709551614 = 18446744073709551614
-(+) 0 0 = 0
-(+) 0 85070591730234615847396907784232501249 = 85070591730234615847396907784232501249
-(+) 85070591730234615847396907784232501249 0 = 85070591730234615847396907784232501249
-(+) 85070591730234615847396907784232501249 1 = 85070591730234615847396907784232501250
-(+) 85070591730234615847396907784232501249 -1 = 85070591730234615847396907784232501248
-(+) 85070591730234615847396907784232501249 2 = 85070591730234615847396907784232501251
-(+) 85070591730234615847396907784232501249 -2 = 85070591730234615847396907784232501247
-(+) 85070591730234615847396907784232501249 -9223372036854775808 = 85070591730234615838173535747377725441
-(+) 85070591730234615847396907784232501249 9223372036854775807 = 85070591730234615856620279821087277056
-(+) 85070591730234615847396907784232501249 -9223372036854775809 = 85070591730234615838173535747377725440
-(+) 85070591730234615847396907784232501249 9223372036854775808 = 85070591730234615856620279821087277057
-(+) 85070591730234615847396907784232501249 0 = 85070591730234615847396907784232501249
-(+) 85070591730234615847396907784232501249 18446744073709551614 = 85070591730234615865843651857942052863
-(+) 85070591730234615847396907784232501249 0 = 85070591730234615847396907784232501249
-(+) 85070591730234615847396907784232501249 85070591730234615847396907784232501249 = 170141183460469231694793815568465002498
-(-) 0 0 = 0
-(-) 0 1 = -1
-(-) 0 -1 = 1
-(-) 0 2 = -2
-(-) 0 -2 = 2
-(-) 0 -9223372036854775808 = 9223372036854775808
-(-) 0 9223372036854775807 = -9223372036854775807
-(-) 0 -9223372036854775809 = 9223372036854775809
-(-) 0 9223372036854775808 = -9223372036854775808
-(-) 0 0 = 0
-(-) 0 18446744073709551614 = -18446744073709551614
-(-) 0 0 = 0
-(-) 0 85070591730234615847396907784232501249 = -85070591730234615847396907784232501249
-(-) 1 0 = 1
-(-) 1 1 = 0
-(-) 1 -1 = 2
-(-) 1 2 = -1
-(-) 1 -2 = 3
-(-) 1 -9223372036854775808 = 9223372036854775809
-(-) 1 9223372036854775807 = -9223372036854775806
-(-) 1 -9223372036854775809 = 9223372036854775810
-(-) 1 9223372036854775808 = -9223372036854775807
-(-) 1 0 = 1
-(-) 1 18446744073709551614 = -18446744073709551613
-(-) 1 0 = 1
-(-) 1 85070591730234615847396907784232501249 = -85070591730234615847396907784232501248
-(-) -1 0 = -1
-(-) -1 1 = -2
-(-) -1 -1 = 0
-(-) -1 2 = -3
-(-) -1 -2 = 1
-(-) -1 -9223372036854775808 = 9223372036854775807
-(-) -1 9223372036854775807 = -9223372036854775808
-(-) -1 -9223372036854775809 = 9223372036854775808
-(-) -1 9223372036854775808 = -9223372036854775809
-(-) -1 0 = -1
-(-) -1 18446744073709551614 = -18446744073709551615
-(-) -1 0 = -1
-(-) -1 85070591730234615847396907784232501249 = -85070591730234615847396907784232501250
-(-) 2 0 = 2
-(-) 2 1 = 1
-(-) 2 -1 = 3
-(-) 2 2 = 0
-(-) 2 -2 = 4
-(-) 2 -9223372036854775808 = 9223372036854775810
-(-) 2 9223372036854775807 = -9223372036854775805
-(-) 2 -9223372036854775809 = 9223372036854775811
-(-) 2 9223372036854775808 = -9223372036854775806
-(-) 2 0 = 2
-(-) 2 18446744073709551614 = -18446744073709551612
-(-) 2 0 = 2
-(-) 2 85070591730234615847396907784232501249 = -85070591730234615847396907784232501247
-(-) -2 0 = -2
-(-) -2 1 = -3
-(-) -2 -1 = -1
-(-) -2 2 = -4
-(-) -2 -2 = 0
-(-) -2 -9223372036854775808 = 9223372036854775806
-(-) -2 9223372036854775807 = -9223372036854775809
-(-) -2 -9223372036854775809 = 9223372036854775807
-(-) -2 9223372036854775808 = -9223372036854775810
-(-) -2 0 = -2
-(-) -2 18446744073709551614 = -18446744073709551616
-(-) -2 0 = -2
-(-) -2 85070591730234615847396907784232501249 = -85070591730234615847396907784232501251
-(-) -9223372036854775808 0 = -9223372036854775808
-(-) -9223372036854775808 1 = -9223372036854775809
-(-) -9223372036854775808 -1 = -9223372036854775807
-(-) -9223372036854775808 2 = -9223372036854775810
-(-) -9223372036854775808 -2 = -9223372036854775806
-(-) -9223372036854775808 -9223372036854775808 = 0
-(-) -9223372036854775808 9223372036854775807 = -18446744073709551615
-(-) -9223372036854775808 -9223372036854775809 = 1
-(-) -9223372036854775808 9223372036854775808 = -18446744073709551616
-(-) -9223372036854775808 0 = -9223372036854775808
-(-) -9223372036854775808 18446744073709551614 = -27670116110564327422
-(-) -9223372036854775808 0 = -9223372036854775808
-(-) -9223372036854775808 85070591730234615847396907784232501249 = -85070591730234615856620279821087277057
-(-) 9223372036854775807 0 = 9223372036854775807
-(-) 9223372036854775807 1 = 9223372036854775806
-(-) 9223372036854775807 -1 = 9223372036854775808
-(-) 9223372036854775807 2 = 9223372036854775805
-(-) 9223372036854775807 -2 = 9223372036854775809
-(-) 9223372036854775807 -9223372036854775808 = 18446744073709551615
-(-) 9223372036854775807 9223372036854775807 = 0
-(-) 9223372036854775807 -9223372036854775809 = 18446744073709551616
-(-) 9223372036854775807 9223372036854775808 = -1
-(-) 9223372036854775807 0 = 9223372036854775807
-(-) 9223372036854775807 18446744073709551614 = -9223372036854775807
-(-) 9223372036854775807 0 = 9223372036854775807
-(-) 9223372036854775807 85070591730234615847396907784232501249 = -85070591730234615838173535747377725442
-(-) -9223372036854775809 0 = -9223372036854775809
-(-) -9223372036854775809 1 = -9223372036854775810
-(-) -9223372036854775809 -1 = -9223372036854775808
-(-) -9223372036854775809 2 = -9223372036854775811
-(-) -9223372036854775809 -2 = -9223372036854775807
-(-) -9223372036854775809 -9223372036854775808 = -1
-(-) -9223372036854775809 9223372036854775807 = -18446744073709551616
-(-) -9223372036854775809 -9223372036854775809 = 0
-(-) -9223372036854775809 9223372036854775808 = -18446744073709551617
-(-) -9223372036854775809 0 = -9223372036854775809
-(-) -9223372036854775809 18446744073709551614 = -27670116110564327423
-(-) -9223372036854775809 0 = -9223372036854775809
-(-) -9223372036854775809 85070591730234615847396907784232501249 = -85070591730234615856620279821087277058
-(-) 9223372036854775808 0 = 9223372036854775808
-(-) 9223372036854775808 1 = 9223372036854775807
-(-) 9223372036854775808 -1 = 9223372036854775809
-(-) 9223372036854775808 2 = 9223372036854775806
-(-) 9223372036854775808 -2 = 9223372036854775810
-(-) 9223372036854775808 -9223372036854775808 = 18446744073709551616
-(-) 9223372036854775808 9223372036854775807 = 1
-(-) 9223372036854775808 -9223372036854775809 = 18446744073709551617
-(-) 9223372036854775808 9223372036854775808 = 0
-(-) 9223372036854775808 0 = 9223372036854775808
-(-) 9223372036854775808 18446744073709551614 = -9223372036854775806
-(-) 9223372036854775808 0 = 9223372036854775808
-(-) 9223372036854775808 85070591730234615847396907784232501249 = -85070591730234615838173535747377725441
-(-) 0 0 = 0
-(-) 0 1 = -1
-(-) 0 -1 = 1
-(-) 0 2 = -2
-(-) 0 -2 = 2
-(-) 0 -9223372036854775808 = 9223372036854775808
-(-) 0 9223372036854775807 = -9223372036854775807
-(-) 0 -9223372036854775809 = 9223372036854775809
-(-) 0 9223372036854775808 = -9223372036854775808
-(-) 0 0 = 0
-(-) 0 18446744073709551614 = -18446744073709551614
-(-) 0 0 = 0
-(-) 0 85070591730234615847396907784232501249 = -85070591730234615847396907784232501249
-(-) 18446744073709551614 0 = 18446744073709551614
-(-) 18446744073709551614 1 = 18446744073709551613
-(-) 18446744073709551614 -1 = 18446744073709551615
-(-) 18446744073709551614 2 = 18446744073709551612
-(-) 18446744073709551614 -2 = 18446744073709551616
-(-) 18446744073709551614 -9223372036854775808 = 27670116110564327422
-(-) 18446744073709551614 9223372036854775807 = 9223372036854775807
-(-) 18446744073709551614 -9223372036854775809 = 27670116110564327423
-(-) 18446744073709551614 9223372036854775808 = 9223372036854775806
-(-) 18446744073709551614 0 = 18446744073709551614
-(-) 18446744073709551614 18446744073709551614 = 0
-(-) 18446744073709551614 0 = 18446744073709551614
-(-) 18446744073709551614 85070591730234615847396907784232501249 = -85070591730234615828950163710522949635
-(-) 0 0 = 0
-(-) 0 1 = -1
-(-) 0 -1 = 1
-(-) 0 2 = -2
-(-) 0 -2 = 2
-(-) 0 -9223372036854775808 = 9223372036854775808
-(-) 0 9223372036854775807 = -9223372036854775807
-(-) 0 -9223372036854775809 = 9223372036854775809
-(-) 0 9223372036854775808 = -9223372036854775808
-(-) 0 0 = 0
-(-) 0 18446744073709551614 = -18446744073709551614
-(-) 0 0 = 0
-(-) 0 85070591730234615847396907784232501249 = -85070591730234615847396907784232501249
-(-) 85070591730234615847396907784232501249 0 = 85070591730234615847396907784232501249
-(-) 85070591730234615847396907784232501249 1 = 85070591730234615847396907784232501248
-(-) 85070591730234615847396907784232501249 -1 = 85070591730234615847396907784232501250
-(-) 85070591730234615847396907784232501249 2 = 85070591730234615847396907784232501247
-(-) 85070591730234615847396907784232501249 -2 = 85070591730234615847396907784232501251
-(-) 85070591730234615847396907784232501249 -9223372036854775808 = 85070591730234615856620279821087277057
-(-) 85070591730234615847396907784232501249 9223372036854775807 = 85070591730234615838173535747377725442
-(-) 85070591730234615847396907784232501249 -9223372036854775809 = 85070591730234615856620279821087277058
-(-) 85070591730234615847396907784232501249 9223372036854775808 = 85070591730234615838173535747377725441
-(-) 85070591730234615847396907784232501249 0 = 85070591730234615847396907784232501249
-(-) 85070591730234615847396907784232501249 18446744073709551614 = 85070591730234615828950163710522949635
-(-) 85070591730234615847396907784232501249 0 = 85070591730234615847396907784232501249
-(-) 85070591730234615847396907784232501249 85070591730234615847396907784232501249 = 0
-div 0 1 = 0
-div 0 -1 = 0
-div 0 2 = 0
-div 0 -2 = 0
-div 0 -9223372036854775808 = 0
-div 0 9223372036854775807 = 0
-div 0 -9223372036854775809 = 0
-div 0 9223372036854775808 = 0
-div 0 18446744073709551614 = 0
-div 0 85070591730234615847396907784232501249 = 0
-div 1 1 = 1
-div 1 -1 = -1
-div 1 2 = 0
-div 1 -2 = -1
-div 1 -9223372036854775808 = -1
-div 1 9223372036854775807 = 0
-div 1 -9223372036854775809 = -1
-div 1 9223372036854775808 = 0
-div 1 18446744073709551614 = 0
-div 1 85070591730234615847396907784232501249 = 0
-div -1 1 = -1
-div -1 -1 = 1
-div -1 2 = -1
-div -1 -2 = 0
-div -1 -9223372036854775808 = 0
-div -1 9223372036854775807 = -1
-div -1 -9223372036854775809 = 0
-div -1 9223372036854775808 = -1
-div -1 18446744073709551614 = -1
-div -1 85070591730234615847396907784232501249 = -1
-div 2 1 = 2
-div 2 -1 = -2
-div 2 2 = 1
-div 2 -2 = -1
-div 2 -9223372036854775808 = -1
-div 2 9223372036854775807 = 0
-div 2 -9223372036854775809 = -1
-div 2 9223372036854775808 = 0
-div 2 18446744073709551614 = 0
-div 2 85070591730234615847396907784232501249 = 0
-div -2 1 = -2
-div -2 -1 = 2
-div -2 2 = -1
-div -2 -2 = 1
-div -2 -9223372036854775808 = 0
-div -2 9223372036854775807 = -1
-div -2 -9223372036854775809 = 0
-div -2 9223372036854775808 = -1
-div -2 18446744073709551614 = -1
-div -2 85070591730234615847396907784232501249 = -1
-div -9223372036854775808 1 = -9223372036854775808
-div -9223372036854775808 -1 = 9223372036854775808
-div -9223372036854775808 2 = -4611686018427387904
-div -9223372036854775808 -2 = 4611686018427387904
-div -9223372036854775808 -9223372036854775808 = 1
-div -9223372036854775808 9223372036854775807 = -2
-div -9223372036854775808 -9223372036854775809 = 0
-div -9223372036854775808 9223372036854775808 = -1
-div -9223372036854775808 18446744073709551614 = -1
-div -9223372036854775808 85070591730234615847396907784232501249 = -1
-div 9223372036854775807 1 = 9223372036854775807
-div 9223372036854775807 -1 = -9223372036854775807
-div 9223372036854775807 2 = 4611686018427387903
-div 9223372036854775807 -2 = -4611686018427387904
-div 9223372036854775807 -9223372036854775808 = -1
-div 9223372036854775807 9223372036854775807 = 1
-div 9223372036854775807 -9223372036854775809 = -1
-div 9223372036854775807 9223372036854775808 = 0
-div 9223372036854775807 18446744073709551614 = 0
-div 9223372036854775807 85070591730234615847396907784232501249 = 0
-mod 0 1 = 0
-mod 0 -1 = 0
-mod 0 2 = 0
-mod 0 -2 = 0
-mod 0 -9223372036854775808 = 0
-mod 0 9223372036854775807 = 0
-mod 0 -9223372036854775809 = 0
-mod 0 9223372036854775808 = 0
-mod 0 18446744073709551614 = 0
-mod 0 85070591730234615847396907784232501249 = 0
-mod 1 1 = 0
-mod 1 -1 = 0
-mod 1 2 = 1
-mod 1 -2 = -1
-mod 1 -9223372036854775808 = -9223372036854775807
-mod 1 9223372036854775807 = 1
-mod 1 -9223372036854775809 = -9223372036854775808
-mod 1 9223372036854775808 = 1
-mod 1 18446744073709551614 = 1
-mod 1 85070591730234615847396907784232501249 = 1
-mod -1 1 = 0
-mod -1 -1 = 0
-mod -1 2 = 1
-mod -1 -2 = -1
-mod -1 -9223372036854775808 = -1
-mod -1 9223372036854775807 = 9223372036854775806
-mod -1 -9223372036854775809 = -1
-mod -1 9223372036854775808 = 9223372036854775807
-mod -1 18446744073709551614 = 18446744073709551613
-mod -1 85070591730234615847396907784232501249 = 85070591730234615847396907784232501248
-mod 2 1 = 0
-mod 2 -1 = 0
-mod 2 2 = 0
-mod 2 -2 = 0
-mod 2 -9223372036854775808 = -9223372036854775806
-mod 2 9223372036854775807 = 2
-mod 2 -9223372036854775809 = -9223372036854775807
-mod 2 9223372036854775808 = 2
-mod 2 18446744073709551614 = 2
-mod 2 85070591730234615847396907784232501249 = 2
-mod -2 1 = 0
-mod -2 -1 = 0
-mod -2 2 = 0
-mod -2 -2 = 0
-mod -2 -9223372036854775808 = -2
-mod -2 9223372036854775807 = 9223372036854775805
-mod -2 -9223372036854775809 = -2
-mod -2 9223372036854775808 = 9223372036854775806
-mod -2 18446744073709551614 = 18446744073709551612
-mod -2 85070591730234615847396907784232501249 = 85070591730234615847396907784232501247
-mod -9223372036854775808 1 = 0
-mod -9223372036854775808 -1 = 0
-mod -9223372036854775808 2 = 0
-mod -9223372036854775808 -2 = 0
-mod -9223372036854775808 -9223372036854775808 = 0
-mod -9223372036854775808 9223372036854775807 = 9223372036854775806
-mod -9223372036854775808 -9223372036854775809 = -9223372036854775808
-mod -9223372036854775808 9223372036854775808 = 0
-mod -9223372036854775808 18446744073709551614 = 9223372036854775806
-mod -9223372036854775808 85070591730234615847396907784232501249 = 85070591730234615838173535747377725441
-mod 9223372036854775807 1 = 0
-mod 9223372036854775807 -1 = 0
-mod 9223372036854775807 2 = 1
-mod 9223372036854775807 -2 = -1
-mod 9223372036854775807 -9223372036854775808 = -1
-mod 9223372036854775807 9223372036854775807 = 0
-mod 9223372036854775807 -9223372036854775809 = -2
-mod 9223372036854775807 9223372036854775808 = 9223372036854775807
-mod 9223372036854775807 18446744073709551614 = 9223372036854775807
-mod 9223372036854775807 85070591730234615847396907784232501249 = 9223372036854775807
-quot 0 1 = 0
-quot 0 -1 = 0
-quot 0 2 = 0
-quot 0 -2 = 0
-quot 0 -9223372036854775808 = 0
-quot 0 9223372036854775807 = 0
-quot 0 -9223372036854775809 = 0
-quot 0 9223372036854775808 = 0
-quot 0 18446744073709551614 = 0
-quot 0 85070591730234615847396907784232501249 = 0
-quot 1 1 = 1
-quot 1 -1 = -1
-quot 1 2 = 0
-quot 1 -2 = 0
-quot 1 -9223372036854775808 = 0
-quot 1 9223372036854775807 = 0
-quot 1 -9223372036854775809 = 0
-quot 1 9223372036854775808 = 0
-quot 1 18446744073709551614 = 0
-quot 1 85070591730234615847396907784232501249 = 0
-quot -1 1 = -1
-quot -1 -1 = 1
-quot -1 2 = 0
-quot -1 -2 = 0
-quot -1 -9223372036854775808 = 0
-quot -1 9223372036854775807 = 0
-quot -1 -9223372036854775809 = 0
-quot -1 9223372036854775808 = 0
-quot -1 18446744073709551614 = 0
-quot -1 85070591730234615847396907784232501249 = 0
-quot 2 1 = 2
-quot 2 -1 = -2
-quot 2 2 = 1
-quot 2 -2 = -1
-quot 2 -9223372036854775808 = 0
-quot 2 9223372036854775807 = 0
-quot 2 -9223372036854775809 = 0
-quot 2 9223372036854775808 = 0
-quot 2 18446744073709551614 = 0
-quot 2 85070591730234615847396907784232501249 = 0
-quot -2 1 = -2
-quot -2 -1 = 2
-quot -2 2 = -1
-quot -2 -2 = 1
-quot -2 -9223372036854775808 = 0
-quot -2 9223372036854775807 = 0
-quot -2 -9223372036854775809 = 0
-quot -2 9223372036854775808 = 0
-quot -2 18446744073709551614 = 0
-quot -2 85070591730234615847396907784232501249 = 0
-quot -9223372036854775808 1 = -9223372036854775808
-quot -9223372036854775808 -1 = 9223372036854775808
-quot -9223372036854775808 2 = -4611686018427387904
-quot -9223372036854775808 -2 = 4611686018427387904
-quot -9223372036854775808 -9223372036854775808 = 1
-quot -9223372036854775808 9223372036854775807 = -1
-quot -9223372036854775808 -9223372036854775809 = 0
-quot -9223372036854775808 9223372036854775808 = -1
-quot -9223372036854775808 18446744073709551614 = 0
-quot -9223372036854775808 85070591730234615847396907784232501249 = 0
-quot 9223372036854775807 1 = 9223372036854775807
-quot 9223372036854775807 -1 = -9223372036854775807
-quot 9223372036854775807 2 = 4611686018427387903
-quot 9223372036854775807 -2 = -4611686018427387903
-quot 9223372036854775807 -9223372036854775808 = 0
-quot 9223372036854775807 9223372036854775807 = 1
-quot 9223372036854775807 -9223372036854775809 = 0
-quot 9223372036854775807 9223372036854775808 = 0
-quot 9223372036854775807 18446744073709551614 = 0
-quot 9223372036854775807 85070591730234615847396907784232501249 = 0
-rem 0 1 = 0
-rem 0 -1 = 0
-rem 0 2 = 0
-rem 0 -2 = 0
-rem 0 -9223372036854775808 = 0
-rem 0 9223372036854775807 = 0
-rem 0 -9223372036854775809 = 0
-rem 0 9223372036854775808 = 0
-rem 0 18446744073709551614 = 0
-rem 0 85070591730234615847396907784232501249 = 0
-rem 1 1 = 0
-rem 1 -1 = 0
-rem 1 2 = 1
-rem 1 -2 = 1
-rem 1 -9223372036854775808 = 1
-rem 1 9223372036854775807 = 1
-rem 1 -9223372036854775809 = 1
-rem 1 9223372036854775808 = 1
-rem 1 18446744073709551614 = 1
-rem 1 85070591730234615847396907784232501249 = 1
-rem -1 1 = 0
-rem -1 -1 = 0
-rem -1 2 = -1
-rem -1 -2 = -1
-rem -1 -9223372036854775808 = -1
-rem -1 9223372036854775807 = -1
-rem -1 -9223372036854775809 = -1
-rem -1 9223372036854775808 = -1
-rem -1 18446744073709551614 = -1
-rem -1 85070591730234615847396907784232501249 = -1
-rem 2 1 = 0
-rem 2 -1 = 0
-rem 2 2 = 0
-rem 2 -2 = 0
-rem 2 -9223372036854775808 = 2
-rem 2 9223372036854775807 = 2
-rem 2 -9223372036854775809 = 2
-rem 2 9223372036854775808 = 2
-rem 2 18446744073709551614 = 2
-rem 2 85070591730234615847396907784232501249 = 2
-rem -2 1 = 0
-rem -2 -1 = 0
-rem -2 2 = 0
-rem -2 -2 = 0
-rem -2 -9223372036854775808 = -2
-rem -2 9223372036854775807 = -2
-rem -2 -9223372036854775809 = -2
-rem -2 9223372036854775808 = -2
-rem -2 18446744073709551614 = -2
-rem -2 85070591730234615847396907784232501249 = -2
-rem -9223372036854775808 1 = 0
-rem -9223372036854775808 -1 = 0
-rem -9223372036854775808 2 = 0
-rem -9223372036854775808 -2 = 0
-rem -9223372036854775808 -9223372036854775808 = 0
-rem -9223372036854775808 9223372036854775807 = -1
-rem -9223372036854775808 -9223372036854775809 = -9223372036854775808
-rem -9223372036854775808 9223372036854775808 = 0
-rem -9223372036854775808 18446744073709551614 = -9223372036854775808
-rem -9223372036854775808 85070591730234615847396907784232501249 = -9223372036854775808
-rem 9223372036854775807 1 = 0
-rem 9223372036854775807 -1 = 0
-rem 9223372036854775807 2 = 1
-rem 9223372036854775807 -2 = 1
-rem 9223372036854775807 -9223372036854775808 = 9223372036854775807
-rem 9223372036854775807 9223372036854775807 = 0
-rem 9223372036854775807 -9223372036854775809 = 9223372036854775807
-rem 9223372036854775807 9223372036854775808 = 9223372036854775807
-rem 9223372036854775807 18446744073709551614 = 9223372036854775807
-rem 9223372036854775807 85070591730234615847396907784232501249 = 9223372036854775807
-gcd 0 1 = 1
-gcd 0 -1 = 1
-gcd 0 2 = 2
-gcd 0 -2 = 2
-gcd 0 -9223372036854775808 = 9223372036854775808
-gcd 0 9223372036854775807 = 9223372036854775807
-gcd 1 0 = 1
-gcd 1 1 = 1
-gcd 1 -1 = 1
-gcd 1 2 = 1
-gcd 1 -2 = 1
-gcd 1 -9223372036854775808 = 1
-gcd 1 9223372036854775807 = 1
-gcd -1 0 = 1
-gcd -1 1 = 1
-gcd -1 -1 = 1
-gcd -1 2 = 1
-gcd -1 -2 = 1
-gcd -1 -9223372036854775808 = 1
-gcd -1 9223372036854775807 = 1
-gcd 2 0 = 2
-gcd 2 1 = 1
-gcd 2 -1 = 1
-gcd 2 2 = 2
-gcd 2 -2 = 2
-gcd 2 -9223372036854775808 = 2
-gcd 2 9223372036854775807 = 1
-gcd -2 0 = 2
-gcd -2 1 = 1
-gcd -2 -1 = 1
-gcd -2 2 = 2
-gcd -2 -2 = 2
-gcd -2 -9223372036854775808 = 2
-gcd -2 9223372036854775807 = 1
-gcd -9223372036854775808 0 = 9223372036854775808
-gcd -9223372036854775808 1 = 1
-gcd -9223372036854775808 -1 = 1
-gcd -9223372036854775808 2 = 2
-gcd -9223372036854775808 -2 = 2
-gcd -9223372036854775808 -9223372036854775808 = 9223372036854775808
-gcd -9223372036854775808 9223372036854775807 = 1
-gcd 9223372036854775807 0 = 9223372036854775807
-gcd 9223372036854775807 1 = 1
-gcd 9223372036854775807 -1 = 1
-gcd 9223372036854775807 2 = 1
-gcd 9223372036854775807 -2 = 1
-gcd 9223372036854775807 -9223372036854775808 = 1
-gcd 9223372036854775807 9223372036854775807 = 9223372036854775807
-lcm 0 1 = 0
-lcm 0 -1 = 0
-lcm 0 2 = 0
-lcm 0 -2 = 0
-lcm 0 -9223372036854775808 = 0
-lcm 0 9223372036854775807 = 0
-lcm 1 0 = 0
-lcm 1 1 = 1
-lcm 1 -1 = 1
-lcm 1 2 = 2
-lcm 1 -2 = 2
-lcm 1 -9223372036854775808 = 9223372036854775808
-lcm 1 9223372036854775807 = 9223372036854775807
-lcm -1 0 = 0
-lcm -1 1 = 1
-lcm -1 -1 = 1
-lcm -1 2 = 2
-lcm -1 -2 = 2
-lcm -1 -9223372036854775808 = 9223372036854775808
-lcm -1 9223372036854775807 = 9223372036854775807
-lcm 2 0 = 0
-lcm 2 1 = 2
-lcm 2 -1 = 2
-lcm 2 2 = 2
-lcm 2 -2 = 2
-lcm 2 -9223372036854775808 = 9223372036854775808
-lcm 2 9223372036854775807 = 18446744073709551614
-lcm -2 0 = 0
-lcm -2 1 = 2
-lcm -2 -1 = 2
-lcm -2 2 = 2
-lcm -2 -2 = 2
-lcm -2 -9223372036854775808 = 9223372036854775808
-lcm -2 9223372036854775807 = 18446744073709551614
-lcm -9223372036854775808 0 = 0
-lcm -9223372036854775808 1 = 9223372036854775808
-lcm -9223372036854775808 -1 = 9223372036854775808
-lcm -9223372036854775808 2 = 9223372036854775808
-lcm -9223372036854775808 -2 = 9223372036854775808
-lcm -9223372036854775808 -9223372036854775808 = 9223372036854775808
-lcm -9223372036854775808 9223372036854775807 = 85070591730234615856620279821087277056
-lcm 9223372036854775807 0 = 0
-lcm 9223372036854775807 1 = 9223372036854775807
-lcm 9223372036854775807 -1 = 9223372036854775807
-lcm 9223372036854775807 2 = 18446744073709551614
-lcm 9223372036854775807 -2 = 18446744073709551614
-lcm 9223372036854775807 -9223372036854775808 = 85070591730234615856620279821087277056
-lcm 9223372036854775807 9223372036854775807 = 9223372036854775807
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith003.stdout-mips-sgi-irix b/testsuite/tests/ghc-regress/numeric/should_run/arith003.stdout-mips-sgi-irix
deleted file mode 100644
index 9ea4a0f2eb..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith003.stdout-mips-sgi-irix
+++ /dev/null
@@ -1,1053 +0,0 @@
-(+) 0 0 = 0
-(+) 0 1 = 1
-(+) 0 -1 = -1
-(+) 0 2 = 2
-(+) 0 -2 = -2
-(+) 0 -9223372036854775808 = -9223372036854775808
-(+) 0 9223372036854775807 = 9223372036854775807
-(+) 1 0 = 1
-(+) 1 1 = 2
-(+) 1 -1 = 0
-(+) 1 2 = 3
-(+) 1 -2 = -1
-(+) 1 -9223372036854775808 = -9223372036854775807
-(+) 1 9223372036854775807 = -9223372036854775808
-(+) -1 0 = -1
-(+) -1 1 = 0
-(+) -1 -1 = -2
-(+) -1 2 = 1
-(+) -1 -2 = -3
-(+) -1 -9223372036854775808 = 9223372036854775807
-(+) -1 9223372036854775807 = 9223372036854775806
-(+) 2 0 = 2
-(+) 2 1 = 3
-(+) 2 -1 = 1
-(+) 2 2 = 4
-(+) 2 -2 = 0
-(+) 2 -9223372036854775808 = -9223372036854775806
-(+) 2 9223372036854775807 = -9223372036854775807
-(+) -2 0 = -2
-(+) -2 1 = -1
-(+) -2 -1 = -3
-(+) -2 2 = 0
-(+) -2 -2 = -4
-(+) -2 -9223372036854775808 = 9223372036854775806
-(+) -2 9223372036854775807 = 9223372036854775805
-(+) -9223372036854775808 0 = -9223372036854775808
-(+) -9223372036854775808 1 = -9223372036854775807
-(+) -9223372036854775808 -1 = 9223372036854775807
-(+) -9223372036854775808 2 = -9223372036854775806
-(+) -9223372036854775808 -2 = 9223372036854775806
-(+) -9223372036854775808 -9223372036854775808 = 0
-(+) -9223372036854775808 9223372036854775807 = -1
-(+) 9223372036854775807 0 = 9223372036854775807
-(+) 9223372036854775807 1 = -9223372036854775808
-(+) 9223372036854775807 -1 = 9223372036854775806
-(+) 9223372036854775807 2 = -9223372036854775807
-(+) 9223372036854775807 -2 = 9223372036854775805
-(+) 9223372036854775807 -9223372036854775808 = -1
-(+) 9223372036854775807 9223372036854775807 = -2
-(-) 0 0 = 0
-(-) 0 1 = -1
-(-) 0 -1 = 1
-(-) 0 2 = -2
-(-) 0 -2 = 2
-(-) 0 -9223372036854775808 = -9223372036854775808
-(-) 0 9223372036854775807 = -9223372036854775807
-(-) 1 0 = 1
-(-) 1 1 = 0
-(-) 1 -1 = 2
-(-) 1 2 = -1
-(-) 1 -2 = 3
-(-) 1 -9223372036854775808 = -9223372036854775807
-(-) 1 9223372036854775807 = -9223372036854775806
-(-) -1 0 = -1
-(-) -1 1 = -2
-(-) -1 -1 = 0
-(-) -1 2 = -3
-(-) -1 -2 = 1
-(-) -1 -9223372036854775808 = 9223372036854775807
-(-) -1 9223372036854775807 = -9223372036854775808
-(-) 2 0 = 2
-(-) 2 1 = 1
-(-) 2 -1 = 3
-(-) 2 2 = 0
-(-) 2 -2 = 4
-(-) 2 -9223372036854775808 = -9223372036854775806
-(-) 2 9223372036854775807 = -9223372036854775805
-(-) -2 0 = -2
-(-) -2 1 = -3
-(-) -2 -1 = -1
-(-) -2 2 = -4
-(-) -2 -2 = 0
-(-) -2 -9223372036854775808 = 9223372036854775806
-(-) -2 9223372036854775807 = 9223372036854775807
-(-) -9223372036854775808 0 = -9223372036854775808
-(-) -9223372036854775808 1 = 9223372036854775807
-(-) -9223372036854775808 -1 = -9223372036854775807
-(-) -9223372036854775808 2 = 9223372036854775806
-(-) -9223372036854775808 -2 = -9223372036854775806
-(-) -9223372036854775808 -9223372036854775808 = 0
-(-) -9223372036854775808 9223372036854775807 = 1
-(-) 9223372036854775807 0 = 9223372036854775807
-(-) 9223372036854775807 1 = 9223372036854775806
-(-) 9223372036854775807 -1 = -9223372036854775808
-(-) 9223372036854775807 2 = 9223372036854775805
-(-) 9223372036854775807 -2 = -9223372036854775807
-(-) 9223372036854775807 -9223372036854775808 = -1
-(-) 9223372036854775807 9223372036854775807 = 0
-(^) 0 0 = 1
-(^) 0 1 = 0
-(^) 0 2 = 0
-(^) 1 0 = 1
-(^) 1 1 = 1
-(^) 1 2 = 1
-(^) -1 0 = 1
-(^) -1 1 = -1
-(^) -1 2 = 1
-(^) 2 0 = 1
-(^) 2 1 = 2
-(^) 2 2 = 4
-(^) -2 0 = 1
-(^) -2 1 = -2
-(^) -2 2 = 4
-(^) -9223372036854775808 0 = 1
-(^) -9223372036854775808 1 = -9223372036854775808
-(^) -9223372036854775808 2 = 0
-(^) 9223372036854775807 0 = 1
-(^) 9223372036854775807 1 = 9223372036854775807
-(^) 9223372036854775807 2 = 1
-div 0 1 = 0
-div 0 -1 = 0
-div 0 2 = 0
-div 0 -2 = 0
-div 0 -9223372036854775808 = 0
-div 0 9223372036854775807 = 0
-div 1 1 = 1
-div 1 -1 = -1
-div 1 2 = 0
-div 1 -2 = -1
-div 1 -9223372036854775808 = -1
-div 1 9223372036854775807 = 0
-div -1 1 = -1
-div -1 -1 = 1
-div -1 2 = -1
-div -1 -2 = 0
-div -1 -9223372036854775808 = 0
-div -1 9223372036854775807 = -1
-div 2 1 = 2
-div 2 -1 = -2
-div 2 2 = 1
-div 2 -2 = -1
-div 2 -9223372036854775808 = -1
-div 2 9223372036854775807 = 0
-div -2 1 = -2
-div -2 -1 = 2
-div -2 2 = -1
-div -2 -2 = 1
-div -2 -9223372036854775808 = 0
-div -2 9223372036854775807 = -1
-div 9223372036854775807 1 = 9223372036854775807
-div 9223372036854775807 -1 = -9223372036854775807
-div 9223372036854775807 2 = 4611686018427387903
-div 9223372036854775807 -2 = -4611686018427387904
-div 9223372036854775807 -9223372036854775808 = -1
-div 9223372036854775807 9223372036854775807 = 1
-mod 0 1 = 0
-mod 0 -1 = 0
-mod 0 2 = 0
-mod 0 -2 = 0
-mod 0 -9223372036854775808 = 0
-mod 0 9223372036854775807 = 0
-mod 1 1 = 0
-mod 1 -1 = 0
-mod 1 2 = 1
-mod 1 -2 = -1
-mod 1 -9223372036854775808 = -9223372036854775807
-mod 1 9223372036854775807 = 1
-mod -1 1 = 0
-mod -1 -1 = 0
-mod -1 2 = 1
-mod -1 -2 = -1
-mod -1 -9223372036854775808 = -1
-mod -1 9223372036854775807 = 9223372036854775806
-mod 2 1 = 0
-mod 2 -1 = 0
-mod 2 2 = 0
-mod 2 -2 = 0
-mod 2 -9223372036854775808 = -9223372036854775806
-mod 2 9223372036854775807 = 2
-mod -2 1 = 0
-mod -2 -1 = 0
-mod -2 2 = 0
-mod -2 -2 = 0
-mod -2 -9223372036854775808 = -2
-mod -2 9223372036854775807 = 9223372036854775805
-mod 9223372036854775807 1 = 0
-mod 9223372036854775807 -1 = 0
-mod 9223372036854775807 2 = 1
-mod 9223372036854775807 -2 = -1
-mod 9223372036854775807 -9223372036854775808 = -1
-mod 9223372036854775807 9223372036854775807 = 0
-quot 0 1 = 0
-quot 0 -1 = 0
-quot 0 2 = 0
-quot 0 -2 = 0
-quot 0 -9223372036854775808 = 0
-quot 0 9223372036854775807 = 0
-quot 1 1 = 1
-quot 1 -1 = -1
-quot 1 2 = 0
-quot 1 -2 = 0
-quot 1 -9223372036854775808 = 0
-quot 1 9223372036854775807 = 0
-quot -1 1 = -1
-quot -1 -1 = 1
-quot -1 2 = 0
-quot -1 -2 = 0
-quot -1 -9223372036854775808 = 0
-quot -1 9223372036854775807 = 0
-quot 2 1 = 2
-quot 2 -1 = -2
-quot 2 2 = 1
-quot 2 -2 = -1
-quot 2 -9223372036854775808 = 0
-quot 2 9223372036854775807 = 0
-quot -2 1 = -2
-quot -2 -1 = 2
-quot -2 2 = -1
-quot -2 -2 = 1
-quot -2 -9223372036854775808 = 0
-quot -2 9223372036854775807 = 0
-quot 9223372036854775807 1 = 9223372036854775807
-quot 9223372036854775807 -1 = -9223372036854775807
-quot 9223372036854775807 2 = 4611686018427387903
-quot 9223372036854775807 -2 = -4611686018427387903
-quot 9223372036854775807 -9223372036854775808 = 0
-quot 9223372036854775807 9223372036854775807 = 1
-rem 0 1 = 0
-rem 0 -1 = 0
-rem 0 2 = 0
-rem 0 -2 = 0
-rem 0 -9223372036854775808 = 0
-rem 0 9223372036854775807 = 0
-rem 1 1 = 0
-rem 1 -1 = 0
-rem 1 2 = 1
-rem 1 -2 = 1
-rem 1 -9223372036854775808 = 1
-rem 1 9223372036854775807 = 1
-rem -1 1 = 0
-rem -1 -1 = 0
-rem -1 2 = -1
-rem -1 -2 = -1
-rem -1 -9223372036854775808 = -1
-rem -1 9223372036854775807 = -1
-rem 2 1 = 0
-rem 2 -1 = 0
-rem 2 2 = 0
-rem 2 -2 = 0
-rem 2 -9223372036854775808 = 2
-rem 2 9223372036854775807 = 2
-rem -2 1 = 0
-rem -2 -1 = 0
-rem -2 2 = 0
-rem -2 -2 = 0
-rem -2 -9223372036854775808 = -2
-rem -2 9223372036854775807 = -2
-rem 9223372036854775807 1 = 0
-rem 9223372036854775807 -1 = 0
-rem 9223372036854775807 2 = 1
-rem 9223372036854775807 -2 = 1
-rem 9223372036854775807 -9223372036854775808 = 9223372036854775807
-rem 9223372036854775807 9223372036854775807 = 0
-gcd 0 1 = 1
-gcd 0 -1 = 1
-gcd 0 2 = 2
-gcd 0 -2 = 2
-gcd 0 9223372036854775807 = 9223372036854775807
-gcd 1 0 = 1
-gcd 1 1 = 1
-gcd 1 -1 = 1
-gcd 1 2 = 1
-gcd 1 -2 = 1
-gcd 1 9223372036854775807 = 1
-gcd -1 0 = 1
-gcd -1 1 = 1
-gcd -1 -1 = 1
-gcd -1 2 = 1
-gcd -1 -2 = 1
-gcd -1 9223372036854775807 = 1
-gcd 2 0 = 2
-gcd 2 1 = 1
-gcd 2 -1 = 1
-gcd 2 2 = 2
-gcd 2 -2 = 2
-gcd 2 9223372036854775807 = 1
-gcd -2 0 = 2
-gcd -2 1 = 1
-gcd -2 -1 = 1
-gcd -2 2 = 2
-gcd -2 -2 = 2
-gcd -2 9223372036854775807 = 1
-gcd 9223372036854775807 0 = 9223372036854775807
-gcd 9223372036854775807 1 = 1
-gcd 9223372036854775807 -1 = 1
-gcd 9223372036854775807 2 = 1
-gcd 9223372036854775807 -2 = 1
-gcd 9223372036854775807 9223372036854775807 = 9223372036854775807
-lcm 0 1 = 0
-lcm 0 -1 = 0
-lcm 0 2 = 0
-lcm 0 -2 = 0
-lcm 0 -9223372036854775808 = 0
-lcm 1 0 = 0
-lcm 1 1 = 1
-lcm 1 -1 = 1
-lcm 1 2 = 2
-lcm 1 -2 = 2
-lcm 1 -9223372036854775808 = -9223372036854775808
-lcm -1 0 = 0
-lcm -1 1 = 1
-lcm -1 -1 = 1
-lcm -1 2 = 2
-lcm -1 -2 = 2
-lcm -1 -9223372036854775808 = -9223372036854775808
-lcm 2 0 = 0
-lcm 2 1 = 2
-lcm 2 -1 = 2
-lcm 2 2 = 2
-lcm 2 -2 = 2
-lcm 2 -9223372036854775808 = -9223372036854775808
-lcm -2 0 = 0
-lcm -2 1 = 2
-lcm -2 -1 = 2
-lcm -2 2 = 2
-lcm -2 -2 = 2
-lcm -2 -9223372036854775808 = -9223372036854775808
-lcm -9223372036854775808 0 = 0
-lcm -9223372036854775808 1 = -9223372036854775808
-lcm -9223372036854775808 -1 = -9223372036854775808
-lcm -9223372036854775808 2 = -9223372036854775808
-lcm -9223372036854775808 -2 = -9223372036854775808
-lcm -9223372036854775808 -9223372036854775808 = -9223372036854775808
-lcm 9223372036854775807 0 = 0
-lcm 9223372036854775807 1 = 9223372036854775807
-lcm 9223372036854775807 -1 = 9223372036854775807
-lcm 9223372036854775807 2 = 2
-lcm 9223372036854775807 -2 = 2
-lcm 9223372036854775807 -9223372036854775808 = -9223372036854775808
-(+) 0 0 = 0
-(+) 0 1 = 1
-(+) 0 -1 = -1
-(+) 0 2 = 2
-(+) 0 -2 = -2
-(+) 0 -9223372036854775808 = -9223372036854775808
-(+) 0 9223372036854775807 = 9223372036854775807
-(+) 0 -9223372036854775809 = -9223372036854775809
-(+) 0 9223372036854775808 = 9223372036854775808
-(+) 0 0 = 0
-(+) 0 18446744073709551614 = 18446744073709551614
-(+) 0 0 = 0
-(+) 0 85070591730234615847396907784232501249 = 85070591730234615847396907784232501249
-(+) 1 0 = 1
-(+) 1 1 = 2
-(+) 1 -1 = 0
-(+) 1 2 = 3
-(+) 1 -2 = -1
-(+) 1 -9223372036854775808 = -9223372036854775807
-(+) 1 9223372036854775807 = 9223372036854775808
-(+) 1 -9223372036854775809 = -9223372036854775808
-(+) 1 9223372036854775808 = 9223372036854775809
-(+) 1 0 = 1
-(+) 1 18446744073709551614 = 18446744073709551615
-(+) 1 0 = 1
-(+) 1 85070591730234615847396907784232501249 = 85070591730234615847396907784232501250
-(+) -1 0 = -1
-(+) -1 1 = 0
-(+) -1 -1 = -2
-(+) -1 2 = 1
-(+) -1 -2 = -3
-(+) -1 -9223372036854775808 = -9223372036854775809
-(+) -1 9223372036854775807 = 9223372036854775806
-(+) -1 -9223372036854775809 = -9223372036854775810
-(+) -1 9223372036854775808 = 9223372036854775807
-(+) -1 0 = -1
-(+) -1 18446744073709551614 = 18446744073709551613
-(+) -1 0 = -1
-(+) -1 85070591730234615847396907784232501249 = 85070591730234615847396907784232501248
-(+) 2 0 = 2
-(+) 2 1 = 3
-(+) 2 -1 = 1
-(+) 2 2 = 4
-(+) 2 -2 = 0
-(+) 2 -9223372036854775808 = -9223372036854775806
-(+) 2 9223372036854775807 = 9223372036854775809
-(+) 2 -9223372036854775809 = -9223372036854775807
-(+) 2 9223372036854775808 = 9223372036854775810
-(+) 2 0 = 2
-(+) 2 18446744073709551614 = 18446744073709551616
-(+) 2 0 = 2
-(+) 2 85070591730234615847396907784232501249 = 85070591730234615847396907784232501251
-(+) -2 0 = -2
-(+) -2 1 = -1
-(+) -2 -1 = -3
-(+) -2 2 = 0
-(+) -2 -2 = -4
-(+) -2 -9223372036854775808 = -9223372036854775810
-(+) -2 9223372036854775807 = 9223372036854775805
-(+) -2 -9223372036854775809 = -9223372036854775811
-(+) -2 9223372036854775808 = 9223372036854775806
-(+) -2 0 = -2
-(+) -2 18446744073709551614 = 18446744073709551612
-(+) -2 0 = -2
-(+) -2 85070591730234615847396907784232501249 = 85070591730234615847396907784232501247
-(+) -9223372036854775808 0 = -9223372036854775808
-(+) -9223372036854775808 1 = -9223372036854775807
-(+) -9223372036854775808 -1 = -9223372036854775809
-(+) -9223372036854775808 2 = -9223372036854775806
-(+) -9223372036854775808 -2 = -9223372036854775810
-(+) -9223372036854775808 -9223372036854775808 = -18446744073709551616
-(+) -9223372036854775808 9223372036854775807 = -1
-(+) -9223372036854775808 -9223372036854775809 = -18446744073709551617
-(+) -9223372036854775808 9223372036854775808 = 0
-(+) -9223372036854775808 0 = -9223372036854775808
-(+) -9223372036854775808 18446744073709551614 = 9223372036854775806
-(+) -9223372036854775808 0 = -9223372036854775808
-(+) -9223372036854775808 85070591730234615847396907784232501249 = 85070591730234615838173535747377725441
-(+) 9223372036854775807 0 = 9223372036854775807
-(+) 9223372036854775807 1 = 9223372036854775808
-(+) 9223372036854775807 -1 = 9223372036854775806
-(+) 9223372036854775807 2 = 9223372036854775809
-(+) 9223372036854775807 -2 = 9223372036854775805
-(+) 9223372036854775807 -9223372036854775808 = -1
-(+) 9223372036854775807 9223372036854775807 = 18446744073709551614
-(+) 9223372036854775807 -9223372036854775809 = -2
-(+) 9223372036854775807 9223372036854775808 = 18446744073709551615
-(+) 9223372036854775807 0 = 9223372036854775807
-(+) 9223372036854775807 18446744073709551614 = 27670116110564327421
-(+) 9223372036854775807 0 = 9223372036854775807
-(+) 9223372036854775807 85070591730234615847396907784232501249 = 85070591730234615856620279821087277056
-(+) -9223372036854775809 0 = -9223372036854775809
-(+) -9223372036854775809 1 = -9223372036854775808
-(+) -9223372036854775809 -1 = -9223372036854775810
-(+) -9223372036854775809 2 = -9223372036854775807
-(+) -9223372036854775809 -2 = -9223372036854775811
-(+) -9223372036854775809 -9223372036854775808 = -18446744073709551617
-(+) -9223372036854775809 9223372036854775807 = -2
-(+) -9223372036854775809 -9223372036854775809 = -18446744073709551618
-(+) -9223372036854775809 9223372036854775808 = -1
-(+) -9223372036854775809 0 = -9223372036854775809
-(+) -9223372036854775809 18446744073709551614 = 9223372036854775805
-(+) -9223372036854775809 0 = -9223372036854775809
-(+) -9223372036854775809 85070591730234615847396907784232501249 = 85070591730234615838173535747377725440
-(+) 9223372036854775808 0 = 9223372036854775808
-(+) 9223372036854775808 1 = 9223372036854775809
-(+) 9223372036854775808 -1 = 9223372036854775807
-(+) 9223372036854775808 2 = 9223372036854775810
-(+) 9223372036854775808 -2 = 9223372036854775806
-(+) 9223372036854775808 -9223372036854775808 = 0
-(+) 9223372036854775808 9223372036854775807 = 18446744073709551615
-(+) 9223372036854775808 -9223372036854775809 = -1
-(+) 9223372036854775808 9223372036854775808 = 18446744073709551616
-(+) 9223372036854775808 0 = 9223372036854775808
-(+) 9223372036854775808 18446744073709551614 = 27670116110564327422
-(+) 9223372036854775808 0 = 9223372036854775808
-(+) 9223372036854775808 85070591730234615847396907784232501249 = 85070591730234615856620279821087277057
-(+) 0 0 = 0
-(+) 0 1 = 1
-(+) 0 -1 = -1
-(+) 0 2 = 2
-(+) 0 -2 = -2
-(+) 0 -9223372036854775808 = -9223372036854775808
-(+) 0 9223372036854775807 = 9223372036854775807
-(+) 0 -9223372036854775809 = -9223372036854775809
-(+) 0 9223372036854775808 = 9223372036854775808
-(+) 0 0 = 0
-(+) 0 18446744073709551614 = 18446744073709551614
-(+) 0 0 = 0
-(+) 0 85070591730234615847396907784232501249 = 85070591730234615847396907784232501249
-(+) 18446744073709551614 0 = 18446744073709551614
-(+) 18446744073709551614 1 = 18446744073709551615
-(+) 18446744073709551614 -1 = 18446744073709551613
-(+) 18446744073709551614 2 = 18446744073709551616
-(+) 18446744073709551614 -2 = 18446744073709551612
-(+) 18446744073709551614 -9223372036854775808 = 9223372036854775806
-(+) 18446744073709551614 9223372036854775807 = 27670116110564327421
-(+) 18446744073709551614 -9223372036854775809 = 9223372036854775805
-(+) 18446744073709551614 9223372036854775808 = 27670116110564327422
-(+) 18446744073709551614 0 = 18446744073709551614
-(+) 18446744073709551614 18446744073709551614 = 36893488147419103228
-(+) 18446744073709551614 0 = 18446744073709551614
-(+) 18446744073709551614 85070591730234615847396907784232501249 = 85070591730234615865843651857942052863
-(+) 0 0 = 0
-(+) 0 1 = 1
-(+) 0 -1 = -1
-(+) 0 2 = 2
-(+) 0 -2 = -2
-(+) 0 -9223372036854775808 = -9223372036854775808
-(+) 0 9223372036854775807 = 9223372036854775807
-(+) 0 -9223372036854775809 = -9223372036854775809
-(+) 0 9223372036854775808 = 9223372036854775808
-(+) 0 0 = 0
-(+) 0 18446744073709551614 = 18446744073709551614
-(+) 0 0 = 0
-(+) 0 85070591730234615847396907784232501249 = 85070591730234615847396907784232501249
-(+) 85070591730234615847396907784232501249 0 = 85070591730234615847396907784232501249
-(+) 85070591730234615847396907784232501249 1 = 85070591730234615847396907784232501250
-(+) 85070591730234615847396907784232501249 -1 = 85070591730234615847396907784232501248
-(+) 85070591730234615847396907784232501249 2 = 85070591730234615847396907784232501251
-(+) 85070591730234615847396907784232501249 -2 = 85070591730234615847396907784232501247
-(+) 85070591730234615847396907784232501249 -9223372036854775808 = 85070591730234615838173535747377725441
-(+) 85070591730234615847396907784232501249 9223372036854775807 = 85070591730234615856620279821087277056
-(+) 85070591730234615847396907784232501249 -9223372036854775809 = 85070591730234615838173535747377725440
-(+) 85070591730234615847396907784232501249 9223372036854775808 = 85070591730234615856620279821087277057
-(+) 85070591730234615847396907784232501249 0 = 85070591730234615847396907784232501249
-(+) 85070591730234615847396907784232501249 18446744073709551614 = 85070591730234615865843651857942052863
-(+) 85070591730234615847396907784232501249 0 = 85070591730234615847396907784232501249
-(+) 85070591730234615847396907784232501249 85070591730234615847396907784232501249 = 170141183460469231694793815568465002498
-(-) 0 0 = 0
-(-) 0 1 = -1
-(-) 0 -1 = 1
-(-) 0 2 = -2
-(-) 0 -2 = 2
-(-) 0 -9223372036854775808 = 9223372036854775808
-(-) 0 9223372036854775807 = -9223372036854775807
-(-) 0 -9223372036854775809 = 9223372036854775809
-(-) 0 9223372036854775808 = -9223372036854775808
-(-) 0 0 = 0
-(-) 0 18446744073709551614 = -18446744073709551614
-(-) 0 0 = 0
-(-) 0 85070591730234615847396907784232501249 = -85070591730234615847396907784232501249
-(-) 1 0 = 1
-(-) 1 1 = 0
-(-) 1 -1 = 2
-(-) 1 2 = -1
-(-) 1 -2 = 3
-(-) 1 -9223372036854775808 = 9223372036854775809
-(-) 1 9223372036854775807 = -9223372036854775806
-(-) 1 -9223372036854775809 = 9223372036854775810
-(-) 1 9223372036854775808 = -9223372036854775807
-(-) 1 0 = 1
-(-) 1 18446744073709551614 = -18446744073709551613
-(-) 1 0 = 1
-(-) 1 85070591730234615847396907784232501249 = -85070591730234615847396907784232501248
-(-) -1 0 = -1
-(-) -1 1 = -2
-(-) -1 -1 = 0
-(-) -1 2 = -3
-(-) -1 -2 = 1
-(-) -1 -9223372036854775808 = 9223372036854775807
-(-) -1 9223372036854775807 = -9223372036854775808
-(-) -1 -9223372036854775809 = 9223372036854775808
-(-) -1 9223372036854775808 = -9223372036854775809
-(-) -1 0 = -1
-(-) -1 18446744073709551614 = -18446744073709551615
-(-) -1 0 = -1
-(-) -1 85070591730234615847396907784232501249 = -85070591730234615847396907784232501250
-(-) 2 0 = 2
-(-) 2 1 = 1
-(-) 2 -1 = 3
-(-) 2 2 = 0
-(-) 2 -2 = 4
-(-) 2 -9223372036854775808 = 9223372036854775810
-(-) 2 9223372036854775807 = -9223372036854775805
-(-) 2 -9223372036854775809 = 9223372036854775811
-(-) 2 9223372036854775808 = -9223372036854775806
-(-) 2 0 = 2
-(-) 2 18446744073709551614 = -18446744073709551612
-(-) 2 0 = 2
-(-) 2 85070591730234615847396907784232501249 = -85070591730234615847396907784232501247
-(-) -2 0 = -2
-(-) -2 1 = -3
-(-) -2 -1 = -1
-(-) -2 2 = -4
-(-) -2 -2 = 0
-(-) -2 -9223372036854775808 = 9223372036854775806
-(-) -2 9223372036854775807 = -9223372036854775809
-(-) -2 -9223372036854775809 = 9223372036854775807
-(-) -2 9223372036854775808 = -9223372036854775810
-(-) -2 0 = -2
-(-) -2 18446744073709551614 = -18446744073709551616
-(-) -2 0 = -2
-(-) -2 85070591730234615847396907784232501249 = -85070591730234615847396907784232501251
-(-) -9223372036854775808 0 = -9223372036854775808
-(-) -9223372036854775808 1 = -9223372036854775809
-(-) -9223372036854775808 -1 = -9223372036854775807
-(-) -9223372036854775808 2 = -9223372036854775810
-(-) -9223372036854775808 -2 = -9223372036854775806
-(-) -9223372036854775808 -9223372036854775808 = 0
-(-) -9223372036854775808 9223372036854775807 = -18446744073709551615
-(-) -9223372036854775808 -9223372036854775809 = 1
-(-) -9223372036854775808 9223372036854775808 = -18446744073709551616
-(-) -9223372036854775808 0 = -9223372036854775808
-(-) -9223372036854775808 18446744073709551614 = -27670116110564327422
-(-) -9223372036854775808 0 = -9223372036854775808
-(-) -9223372036854775808 85070591730234615847396907784232501249 = -85070591730234615856620279821087277057
-(-) 9223372036854775807 0 = 9223372036854775807
-(-) 9223372036854775807 1 = 9223372036854775806
-(-) 9223372036854775807 -1 = 9223372036854775808
-(-) 9223372036854775807 2 = 9223372036854775805
-(-) 9223372036854775807 -2 = 9223372036854775809
-(-) 9223372036854775807 -9223372036854775808 = 18446744073709551615
-(-) 9223372036854775807 9223372036854775807 = 0
-(-) 9223372036854775807 -9223372036854775809 = 18446744073709551616
-(-) 9223372036854775807 9223372036854775808 = -1
-(-) 9223372036854775807 0 = 9223372036854775807
-(-) 9223372036854775807 18446744073709551614 = -9223372036854775807
-(-) 9223372036854775807 0 = 9223372036854775807
-(-) 9223372036854775807 85070591730234615847396907784232501249 = -85070591730234615838173535747377725442
-(-) -9223372036854775809 0 = -9223372036854775809
-(-) -9223372036854775809 1 = -9223372036854775810
-(-) -9223372036854775809 -1 = -9223372036854775808
-(-) -9223372036854775809 2 = -9223372036854775811
-(-) -9223372036854775809 -2 = -9223372036854775807
-(-) -9223372036854775809 -9223372036854775808 = -1
-(-) -9223372036854775809 9223372036854775807 = -18446744073709551616
-(-) -9223372036854775809 -9223372036854775809 = 0
-(-) -9223372036854775809 9223372036854775808 = -18446744073709551617
-(-) -9223372036854775809 0 = -9223372036854775809
-(-) -9223372036854775809 18446744073709551614 = -27670116110564327423
-(-) -9223372036854775809 0 = -9223372036854775809
-(-) -9223372036854775809 85070591730234615847396907784232501249 = -85070591730234615856620279821087277058
-(-) 9223372036854775808 0 = 9223372036854775808
-(-) 9223372036854775808 1 = 9223372036854775807
-(-) 9223372036854775808 -1 = 9223372036854775809
-(-) 9223372036854775808 2 = 9223372036854775806
-(-) 9223372036854775808 -2 = 9223372036854775810
-(-) 9223372036854775808 -9223372036854775808 = 18446744073709551616
-(-) 9223372036854775808 9223372036854775807 = 1
-(-) 9223372036854775808 -9223372036854775809 = 18446744073709551617
-(-) 9223372036854775808 9223372036854775808 = 0
-(-) 9223372036854775808 0 = 9223372036854775808
-(-) 9223372036854775808 18446744073709551614 = -9223372036854775806
-(-) 9223372036854775808 0 = 9223372036854775808
-(-) 9223372036854775808 85070591730234615847396907784232501249 = -85070591730234615838173535747377725441
-(-) 0 0 = 0
-(-) 0 1 = -1
-(-) 0 -1 = 1
-(-) 0 2 = -2
-(-) 0 -2 = 2
-(-) 0 -9223372036854775808 = 9223372036854775808
-(-) 0 9223372036854775807 = -9223372036854775807
-(-) 0 -9223372036854775809 = 9223372036854775809
-(-) 0 9223372036854775808 = -9223372036854775808
-(-) 0 0 = 0
-(-) 0 18446744073709551614 = -18446744073709551614
-(-) 0 0 = 0
-(-) 0 85070591730234615847396907784232501249 = -85070591730234615847396907784232501249
-(-) 18446744073709551614 0 = 18446744073709551614
-(-) 18446744073709551614 1 = 18446744073709551613
-(-) 18446744073709551614 -1 = 18446744073709551615
-(-) 18446744073709551614 2 = 18446744073709551612
-(-) 18446744073709551614 -2 = 18446744073709551616
-(-) 18446744073709551614 -9223372036854775808 = 27670116110564327422
-(-) 18446744073709551614 9223372036854775807 = 9223372036854775807
-(-) 18446744073709551614 -9223372036854775809 = 27670116110564327423
-(-) 18446744073709551614 9223372036854775808 = 9223372036854775806
-(-) 18446744073709551614 0 = 18446744073709551614
-(-) 18446744073709551614 18446744073709551614 = 0
-(-) 18446744073709551614 0 = 18446744073709551614
-(-) 18446744073709551614 85070591730234615847396907784232501249 = -85070591730234615828950163710522949635
-(-) 0 0 = 0
-(-) 0 1 = -1
-(-) 0 -1 = 1
-(-) 0 2 = -2
-(-) 0 -2 = 2
-(-) 0 -9223372036854775808 = 9223372036854775808
-(-) 0 9223372036854775807 = -9223372036854775807
-(-) 0 -9223372036854775809 = 9223372036854775809
-(-) 0 9223372036854775808 = -9223372036854775808
-(-) 0 0 = 0
-(-) 0 18446744073709551614 = -18446744073709551614
-(-) 0 0 = 0
-(-) 0 85070591730234615847396907784232501249 = -85070591730234615847396907784232501249
-(-) 85070591730234615847396907784232501249 0 = 85070591730234615847396907784232501249
-(-) 85070591730234615847396907784232501249 1 = 85070591730234615847396907784232501248
-(-) 85070591730234615847396907784232501249 -1 = 85070591730234615847396907784232501250
-(-) 85070591730234615847396907784232501249 2 = 85070591730234615847396907784232501247
-(-) 85070591730234615847396907784232501249 -2 = 85070591730234615847396907784232501251
-(-) 85070591730234615847396907784232501249 -9223372036854775808 = 85070591730234615856620279821087277057
-(-) 85070591730234615847396907784232501249 9223372036854775807 = 85070591730234615838173535747377725442
-(-) 85070591730234615847396907784232501249 -9223372036854775809 = 85070591730234615856620279821087277058
-(-) 85070591730234615847396907784232501249 9223372036854775808 = 85070591730234615838173535747377725441
-(-) 85070591730234615847396907784232501249 0 = 85070591730234615847396907784232501249
-(-) 85070591730234615847396907784232501249 18446744073709551614 = 85070591730234615828950163710522949635
-(-) 85070591730234615847396907784232501249 0 = 85070591730234615847396907784232501249
-(-) 85070591730234615847396907784232501249 85070591730234615847396907784232501249 = 0
-div 0 1 = 0
-div 0 -1 = 0
-div 0 2 = 0
-div 0 -2 = 0
-div 0 -9223372036854775808 = 0
-div 0 9223372036854775807 = 0
-div 0 -9223372036854775809 = 0
-div 0 9223372036854775808 = 0
-div 0 18446744073709551614 = 0
-div 0 85070591730234615847396907784232501249 = 0
-div 1 1 = 1
-div 1 -1 = -1
-div 1 2 = 0
-div 1 -2 = -1
-div 1 -9223372036854775808 = -1
-div 1 9223372036854775807 = 0
-div 1 -9223372036854775809 = -1
-div 1 9223372036854775808 = 0
-div 1 18446744073709551614 = 0
-div 1 85070591730234615847396907784232501249 = 0
-div -1 1 = -1
-div -1 -1 = 1
-div -1 2 = -1
-div -1 -2 = 0
-div -1 -9223372036854775808 = 0
-div -1 9223372036854775807 = -1
-div -1 -9223372036854775809 = 0
-div -1 9223372036854775808 = -1
-div -1 18446744073709551614 = -1
-div -1 85070591730234615847396907784232501249 = -1
-div 2 1 = 2
-div 2 -1 = -2
-div 2 2 = 1
-div 2 -2 = -1
-div 2 -9223372036854775808 = -1
-div 2 9223372036854775807 = 0
-div 2 -9223372036854775809 = -1
-div 2 9223372036854775808 = 0
-div 2 18446744073709551614 = 0
-div 2 85070591730234615847396907784232501249 = 0
-div -2 1 = -2
-div -2 -1 = 2
-div -2 2 = -1
-div -2 -2 = 1
-div -2 -9223372036854775808 = 0
-div -2 9223372036854775807 = -1
-div -2 -9223372036854775809 = 0
-div -2 9223372036854775808 = -1
-div -2 18446744073709551614 = -1
-div -2 85070591730234615847396907784232501249 = -1
-div -9223372036854775808 1 = -9223372036854775808
-div -9223372036854775808 -1 = 9223372036854775808
-div -9223372036854775808 2 = -4611686018427387904
-div -9223372036854775808 -2 = 4611686018427387904
-div -9223372036854775808 -9223372036854775808 = 1
-div -9223372036854775808 9223372036854775807 = -2
-div -9223372036854775808 -9223372036854775809 = 0
-div -9223372036854775808 9223372036854775808 = -1
-div -9223372036854775808 18446744073709551614 = -1
-div -9223372036854775808 85070591730234615847396907784232501249 = -1
-div 9223372036854775807 1 = 9223372036854775807
-div 9223372036854775807 -1 = -9223372036854775807
-div 9223372036854775807 2 = 4611686018427387903
-div 9223372036854775807 -2 = -4611686018427387904
-div 9223372036854775807 -9223372036854775808 = -1
-div 9223372036854775807 9223372036854775807 = 1
-div 9223372036854775807 -9223372036854775809 = -1
-div 9223372036854775807 9223372036854775808 = 0
-div 9223372036854775807 18446744073709551614 = 0
-div 9223372036854775807 85070591730234615847396907784232501249 = 0
-mod 0 1 = 0
-mod 0 -1 = 0
-mod 0 2 = 0
-mod 0 -2 = 0
-mod 0 -9223372036854775808 = 0
-mod 0 9223372036854775807 = 0
-mod 0 -9223372036854775809 = 0
-mod 0 9223372036854775808 = 0
-mod 0 18446744073709551614 = 0
-mod 0 85070591730234615847396907784232501249 = 0
-mod 1 1 = 0
-mod 1 -1 = 0
-mod 1 2 = 1
-mod 1 -2 = -1
-mod 1 -9223372036854775808 = -9223372036854775807
-mod 1 9223372036854775807 = 1
-mod 1 -9223372036854775809 = -9223372036854775808
-mod 1 9223372036854775808 = 1
-mod 1 18446744073709551614 = 1
-mod 1 85070591730234615847396907784232501249 = 1
-mod -1 1 = 0
-mod -1 -1 = 0
-mod -1 2 = 1
-mod -1 -2 = -1
-mod -1 -9223372036854775808 = -1
-mod -1 9223372036854775807 = 9223372036854775806
-mod -1 -9223372036854775809 = -1
-mod -1 9223372036854775808 = 9223372036854775807
-mod -1 18446744073709551614 = 18446744073709551613
-mod -1 85070591730234615847396907784232501249 = 85070591730234615847396907784232501248
-mod 2 1 = 0
-mod 2 -1 = 0
-mod 2 2 = 0
-mod 2 -2 = 0
-mod 2 -9223372036854775808 = -9223372036854775806
-mod 2 9223372036854775807 = 2
-mod 2 -9223372036854775809 = -9223372036854775807
-mod 2 9223372036854775808 = 2
-mod 2 18446744073709551614 = 2
-mod 2 85070591730234615847396907784232501249 = 2
-mod -2 1 = 0
-mod -2 -1 = 0
-mod -2 2 = 0
-mod -2 -2 = 0
-mod -2 -9223372036854775808 = -2
-mod -2 9223372036854775807 = 9223372036854775805
-mod -2 -9223372036854775809 = -2
-mod -2 9223372036854775808 = 9223372036854775806
-mod -2 18446744073709551614 = 18446744073709551612
-mod -2 85070591730234615847396907784232501249 = 85070591730234615847396907784232501247
-mod -9223372036854775808 1 = 0
-mod -9223372036854775808 -1 = 0
-mod -9223372036854775808 2 = 0
-mod -9223372036854775808 -2 = 0
-mod -9223372036854775808 -9223372036854775808 = 0
-mod -9223372036854775808 9223372036854775807 = 9223372036854775806
-mod -9223372036854775808 -9223372036854775809 = -9223372036854775808
-mod -9223372036854775808 9223372036854775808 = 0
-mod -9223372036854775808 18446744073709551614 = 9223372036854775806
-mod -9223372036854775808 85070591730234615847396907784232501249 = 85070591730234615838173535747377725441
-mod 9223372036854775807 1 = 0
-mod 9223372036854775807 -1 = 0
-mod 9223372036854775807 2 = 1
-mod 9223372036854775807 -2 = -1
-mod 9223372036854775807 -9223372036854775808 = -1
-mod 9223372036854775807 9223372036854775807 = 0
-mod 9223372036854775807 -9223372036854775809 = -2
-mod 9223372036854775807 9223372036854775808 = 9223372036854775807
-mod 9223372036854775807 18446744073709551614 = 9223372036854775807
-mod 9223372036854775807 85070591730234615847396907784232501249 = 9223372036854775807
-quot 0 1 = 0
-quot 0 -1 = 0
-quot 0 2 = 0
-quot 0 -2 = 0
-quot 0 -9223372036854775808 = 0
-quot 0 9223372036854775807 = 0
-quot 0 -9223372036854775809 = 0
-quot 0 9223372036854775808 = 0
-quot 0 18446744073709551614 = 0
-quot 0 85070591730234615847396907784232501249 = 0
-quot 1 1 = 1
-quot 1 -1 = -1
-quot 1 2 = 0
-quot 1 -2 = 0
-quot 1 -9223372036854775808 = 0
-quot 1 9223372036854775807 = 0
-quot 1 -9223372036854775809 = 0
-quot 1 9223372036854775808 = 0
-quot 1 18446744073709551614 = 0
-quot 1 85070591730234615847396907784232501249 = 0
-quot -1 1 = -1
-quot -1 -1 = 1
-quot -1 2 = 0
-quot -1 -2 = 0
-quot -1 -9223372036854775808 = 0
-quot -1 9223372036854775807 = 0
-quot -1 -9223372036854775809 = 0
-quot -1 9223372036854775808 = 0
-quot -1 18446744073709551614 = 0
-quot -1 85070591730234615847396907784232501249 = 0
-quot 2 1 = 2
-quot 2 -1 = -2
-quot 2 2 = 1
-quot 2 -2 = -1
-quot 2 -9223372036854775808 = 0
-quot 2 9223372036854775807 = 0
-quot 2 -9223372036854775809 = 0
-quot 2 9223372036854775808 = 0
-quot 2 18446744073709551614 = 0
-quot 2 85070591730234615847396907784232501249 = 0
-quot -2 1 = -2
-quot -2 -1 = 2
-quot -2 2 = -1
-quot -2 -2 = 1
-quot -2 -9223372036854775808 = 0
-quot -2 9223372036854775807 = 0
-quot -2 -9223372036854775809 = 0
-quot -2 9223372036854775808 = 0
-quot -2 18446744073709551614 = 0
-quot -2 85070591730234615847396907784232501249 = 0
-quot -9223372036854775808 1 = -9223372036854775808
-quot -9223372036854775808 -1 = 9223372036854775808
-quot -9223372036854775808 2 = -4611686018427387904
-quot -9223372036854775808 -2 = 4611686018427387904
-quot -9223372036854775808 -9223372036854775808 = 1
-quot -9223372036854775808 9223372036854775807 = -1
-quot -9223372036854775808 -9223372036854775809 = 0
-quot -9223372036854775808 9223372036854775808 = -1
-quot -9223372036854775808 18446744073709551614 = 0
-quot -9223372036854775808 85070591730234615847396907784232501249 = 0
-quot 9223372036854775807 1 = 9223372036854775807
-quot 9223372036854775807 -1 = -9223372036854775807
-quot 9223372036854775807 2 = 4611686018427387903
-quot 9223372036854775807 -2 = -4611686018427387903
-quot 9223372036854775807 -9223372036854775808 = 0
-quot 9223372036854775807 9223372036854775807 = 1
-quot 9223372036854775807 -9223372036854775809 = 0
-quot 9223372036854775807 9223372036854775808 = 0
-quot 9223372036854775807 18446744073709551614 = 0
-quot 9223372036854775807 85070591730234615847396907784232501249 = 0
-rem 0 1 = 0
-rem 0 -1 = 0
-rem 0 2 = 0
-rem 0 -2 = 0
-rem 0 -9223372036854775808 = 0
-rem 0 9223372036854775807 = 0
-rem 0 -9223372036854775809 = 0
-rem 0 9223372036854775808 = 0
-rem 0 18446744073709551614 = 0
-rem 0 85070591730234615847396907784232501249 = 0
-rem 1 1 = 0
-rem 1 -1 = 0
-rem 1 2 = 1
-rem 1 -2 = 1
-rem 1 -9223372036854775808 = 1
-rem 1 9223372036854775807 = 1
-rem 1 -9223372036854775809 = 1
-rem 1 9223372036854775808 = 1
-rem 1 18446744073709551614 = 1
-rem 1 85070591730234615847396907784232501249 = 1
-rem -1 1 = 0
-rem -1 -1 = 0
-rem -1 2 = -1
-rem -1 -2 = -1
-rem -1 -9223372036854775808 = -1
-rem -1 9223372036854775807 = -1
-rem -1 -9223372036854775809 = -1
-rem -1 9223372036854775808 = -1
-rem -1 18446744073709551614 = -1
-rem -1 85070591730234615847396907784232501249 = -1
-rem 2 1 = 0
-rem 2 -1 = 0
-rem 2 2 = 0
-rem 2 -2 = 0
-rem 2 -9223372036854775808 = 2
-rem 2 9223372036854775807 = 2
-rem 2 -9223372036854775809 = 2
-rem 2 9223372036854775808 = 2
-rem 2 18446744073709551614 = 2
-rem 2 85070591730234615847396907784232501249 = 2
-rem -2 1 = 0
-rem -2 -1 = 0
-rem -2 2 = 0
-rem -2 -2 = 0
-rem -2 -9223372036854775808 = -2
-rem -2 9223372036854775807 = -2
-rem -2 -9223372036854775809 = -2
-rem -2 9223372036854775808 = -2
-rem -2 18446744073709551614 = -2
-rem -2 85070591730234615847396907784232501249 = -2
-rem -9223372036854775808 1 = 0
-rem -9223372036854775808 -1 = 0
-rem -9223372036854775808 2 = 0
-rem -9223372036854775808 -2 = 0
-rem -9223372036854775808 -9223372036854775808 = 0
-rem -9223372036854775808 9223372036854775807 = -1
-rem -9223372036854775808 -9223372036854775809 = -9223372036854775808
-rem -9223372036854775808 9223372036854775808 = 0
-rem -9223372036854775808 18446744073709551614 = -9223372036854775808
-rem -9223372036854775808 85070591730234615847396907784232501249 = -9223372036854775808
-rem 9223372036854775807 1 = 0
-rem 9223372036854775807 -1 = 0
-rem 9223372036854775807 2 = 1
-rem 9223372036854775807 -2 = 1
-rem 9223372036854775807 -9223372036854775808 = 9223372036854775807
-rem 9223372036854775807 9223372036854775807 = 0
-rem 9223372036854775807 -9223372036854775809 = 9223372036854775807
-rem 9223372036854775807 9223372036854775808 = 9223372036854775807
-rem 9223372036854775807 18446744073709551614 = 9223372036854775807
-rem 9223372036854775807 85070591730234615847396907784232501249 = 9223372036854775807
-gcd 0 1 = 1
-gcd 0 -1 = 1
-gcd 0 2 = 2
-gcd 0 -2 = 2
-gcd 0 -9223372036854775808 = 9223372036854775808
-gcd 0 9223372036854775807 = 9223372036854775807
-gcd 1 0 = 1
-gcd 1 1 = 1
-gcd 1 -1 = 1
-gcd 1 2 = 1
-gcd 1 -2 = 1
-gcd 1 -9223372036854775808 = 1
-gcd 1 9223372036854775807 = 1
-gcd -1 0 = 1
-gcd -1 1 = 1
-gcd -1 -1 = 1
-gcd -1 2 = 1
-gcd -1 -2 = 1
-gcd -1 -9223372036854775808 = 1
-gcd -1 9223372036854775807 = 1
-gcd 2 0 = 2
-gcd 2 1 = 1
-gcd 2 -1 = 1
-gcd 2 2 = 2
-gcd 2 -2 = 2
-gcd 2 -9223372036854775808 = 2
-gcd 2 9223372036854775807 = 1
-gcd -2 0 = 2
-gcd -2 1 = 1
-gcd -2 -1 = 1
-gcd -2 2 = 2
-gcd -2 -2 = 2
-gcd -2 -9223372036854775808 = 2
-gcd -2 9223372036854775807 = 1
-gcd -9223372036854775808 0 = 9223372036854775808
-gcd -9223372036854775808 1 = 1
-gcd -9223372036854775808 -1 = 1
-gcd -9223372036854775808 2 = 2
-gcd -9223372036854775808 -2 = 2
-gcd -9223372036854775808 -9223372036854775808 = 9223372036854775808
-gcd -9223372036854775808 9223372036854775807 = 1
-gcd 9223372036854775807 0 = 9223372036854775807
-gcd 9223372036854775807 1 = 1
-gcd 9223372036854775807 -1 = 1
-gcd 9223372036854775807 2 = 1
-gcd 9223372036854775807 -2 = 1
-gcd 9223372036854775807 -9223372036854775808 = 1
-gcd 9223372036854775807 9223372036854775807 = 9223372036854775807
-lcm 0 1 = 0
-lcm 0 -1 = 0
-lcm 0 2 = 0
-lcm 0 -2 = 0
-lcm 0 -9223372036854775808 = 0
-lcm 0 9223372036854775807 = 0
-lcm 1 0 = 0
-lcm 1 1 = 1
-lcm 1 -1 = 1
-lcm 1 2 = 2
-lcm 1 -2 = 2
-lcm 1 -9223372036854775808 = 9223372036854775808
-lcm 1 9223372036854775807 = 9223372036854775807
-lcm -1 0 = 0
-lcm -1 1 = 1
-lcm -1 -1 = 1
-lcm -1 2 = 2
-lcm -1 -2 = 2
-lcm -1 -9223372036854775808 = 9223372036854775808
-lcm -1 9223372036854775807 = 9223372036854775807
-lcm 2 0 = 0
-lcm 2 1 = 2
-lcm 2 -1 = 2
-lcm 2 2 = 2
-lcm 2 -2 = 2
-lcm 2 -9223372036854775808 = 9223372036854775808
-lcm 2 9223372036854775807 = 18446744073709551614
-lcm -2 0 = 0
-lcm -2 1 = 2
-lcm -2 -1 = 2
-lcm -2 2 = 2
-lcm -2 -2 = 2
-lcm -2 -9223372036854775808 = 9223372036854775808
-lcm -2 9223372036854775807 = 18446744073709551614
-lcm -9223372036854775808 0 = 0
-lcm -9223372036854775808 1 = 9223372036854775808
-lcm -9223372036854775808 -1 = 9223372036854775808
-lcm -9223372036854775808 2 = 9223372036854775808
-lcm -9223372036854775808 -2 = 9223372036854775808
-lcm -9223372036854775808 -9223372036854775808 = 9223372036854775808
-lcm -9223372036854775808 9223372036854775807 = 85070591730234615856620279821087277056
-lcm 9223372036854775807 0 = 0
-lcm 9223372036854775807 1 = 9223372036854775807
-lcm 9223372036854775807 -1 = 9223372036854775807
-lcm 9223372036854775807 2 = 18446744073709551614
-lcm 9223372036854775807 -2 = 18446744073709551614
-lcm 9223372036854775807 -9223372036854775808 = 85070591730234615856620279821087277056
-lcm 9223372036854775807 9223372036854775807 = 9223372036854775807
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith003.stdout-ws-64 b/testsuite/tests/ghc-regress/numeric/should_run/arith003.stdout-ws-64
deleted file mode 100644
index 9d8f7eee82..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith003.stdout-ws-64
+++ /dev/null
@@ -1,1109 +0,0 @@
-(+) 0 0 = 0
-(+) 0 1 = 1
-(+) 0 -1 = -1
-(+) 0 2 = 2
-(+) 0 -2 = -2
-(+) 0 -9223372036854775808 = -9223372036854775808
-(+) 0 9223372036854775807 = 9223372036854775807
-(+) 1 0 = 1
-(+) 1 1 = 2
-(+) 1 -1 = 0
-(+) 1 2 = 3
-(+) 1 -2 = -1
-(+) 1 -9223372036854775808 = -9223372036854775807
-(+) 1 9223372036854775807 = -9223372036854775808
-(+) -1 0 = -1
-(+) -1 1 = 0
-(+) -1 -1 = -2
-(+) -1 2 = 1
-(+) -1 -2 = -3
-(+) -1 -9223372036854775808 = 9223372036854775807
-(+) -1 9223372036854775807 = 9223372036854775806
-(+) 2 0 = 2
-(+) 2 1 = 3
-(+) 2 -1 = 1
-(+) 2 2 = 4
-(+) 2 -2 = 0
-(+) 2 -9223372036854775808 = -9223372036854775806
-(+) 2 9223372036854775807 = -9223372036854775807
-(+) -2 0 = -2
-(+) -2 1 = -1
-(+) -2 -1 = -3
-(+) -2 2 = 0
-(+) -2 -2 = -4
-(+) -2 -9223372036854775808 = 9223372036854775806
-(+) -2 9223372036854775807 = 9223372036854775805
-(+) -9223372036854775808 0 = -9223372036854775808
-(+) -9223372036854775808 1 = -9223372036854775807
-(+) -9223372036854775808 -1 = 9223372036854775807
-(+) -9223372036854775808 2 = -9223372036854775806
-(+) -9223372036854775808 -2 = 9223372036854775806
-(+) -9223372036854775808 -9223372036854775808 = 0
-(+) -9223372036854775808 9223372036854775807 = -1
-(+) 9223372036854775807 0 = 9223372036854775807
-(+) 9223372036854775807 1 = -9223372036854775808
-(+) 9223372036854775807 -1 = 9223372036854775806
-(+) 9223372036854775807 2 = -9223372036854775807
-(+) 9223372036854775807 -2 = 9223372036854775805
-(+) 9223372036854775807 -9223372036854775808 = -1
-(+) 9223372036854775807 9223372036854775807 = -2
-(-) 0 0 = 0
-(-) 0 1 = -1
-(-) 0 -1 = 1
-(-) 0 2 = -2
-(-) 0 -2 = 2
-(-) 0 -9223372036854775808 = -9223372036854775808
-(-) 0 9223372036854775807 = -9223372036854775807
-(-) 1 0 = 1
-(-) 1 1 = 0
-(-) 1 -1 = 2
-(-) 1 2 = -1
-(-) 1 -2 = 3
-(-) 1 -9223372036854775808 = -9223372036854775807
-(-) 1 9223372036854775807 = -9223372036854775806
-(-) -1 0 = -1
-(-) -1 1 = -2
-(-) -1 -1 = 0
-(-) -1 2 = -3
-(-) -1 -2 = 1
-(-) -1 -9223372036854775808 = 9223372036854775807
-(-) -1 9223372036854775807 = -9223372036854775808
-(-) 2 0 = 2
-(-) 2 1 = 1
-(-) 2 -1 = 3
-(-) 2 2 = 0
-(-) 2 -2 = 4
-(-) 2 -9223372036854775808 = -9223372036854775806
-(-) 2 9223372036854775807 = -9223372036854775805
-(-) -2 0 = -2
-(-) -2 1 = -3
-(-) -2 -1 = -1
-(-) -2 2 = -4
-(-) -2 -2 = 0
-(-) -2 -9223372036854775808 = 9223372036854775806
-(-) -2 9223372036854775807 = 9223372036854775807
-(-) -9223372036854775808 0 = -9223372036854775808
-(-) -9223372036854775808 1 = 9223372036854775807
-(-) -9223372036854775808 -1 = -9223372036854775807
-(-) -9223372036854775808 2 = 9223372036854775806
-(-) -9223372036854775808 -2 = -9223372036854775806
-(-) -9223372036854775808 -9223372036854775808 = 0
-(-) -9223372036854775808 9223372036854775807 = 1
-(-) 9223372036854775807 0 = 9223372036854775807
-(-) 9223372036854775807 1 = 9223372036854775806
-(-) 9223372036854775807 -1 = -9223372036854775808
-(-) 9223372036854775807 2 = 9223372036854775805
-(-) 9223372036854775807 -2 = -9223372036854775807
-(-) 9223372036854775807 -9223372036854775808 = -1
-(-) 9223372036854775807 9223372036854775807 = 0
-(^) 0 0 = 1
-(^) 0 1 = 0
-(^) 0 2 = 0
-(^) 1 0 = 1
-(^) 1 1 = 1
-(^) 1 2 = 1
-(^) -1 0 = 1
-(^) -1 1 = -1
-(^) -1 2 = 1
-(^) 2 0 = 1
-(^) 2 1 = 2
-(^) 2 2 = 4
-(^) -2 0 = 1
-(^) -2 1 = -2
-(^) -2 2 = 4
-(^) -9223372036854775808 0 = 1
-(^) -9223372036854775808 1 = -9223372036854775808
-(^) -9223372036854775808 2 = 0
-(^) 9223372036854775807 0 = 1
-(^) 9223372036854775807 1 = 9223372036854775807
-(^) 9223372036854775807 2 = 1
-div 0 1 = 0
-div 0 -1 = 0
-div 0 2 = 0
-div 0 -2 = 0
-div 0 -9223372036854775808 = 0
-div 0 9223372036854775807 = 0
-div 1 1 = 1
-div 1 -1 = -1
-div 1 2 = 0
-div 1 -2 = -1
-div 1 -9223372036854775808 = -1
-div 1 9223372036854775807 = 0
-div -1 1 = -1
-div -1 -1 = 1
-div -1 2 = -1
-div -1 -2 = 0
-div -1 -9223372036854775808 = 0
-div -1 9223372036854775807 = -1
-div 2 1 = 2
-div 2 -1 = -2
-div 2 2 = 1
-div 2 -2 = -1
-div 2 -9223372036854775808 = -1
-div 2 9223372036854775807 = 0
-div -2 1 = -2
-div -2 -1 = 2
-div -2 2 = -1
-div -2 -2 = 1
-div -2 -9223372036854775808 = 0
-div -2 9223372036854775807 = -1
-div 9223372036854775807 1 = 9223372036854775807
-div 9223372036854775807 -1 = -9223372036854775807
-div 9223372036854775807 2 = 4611686018427387903
-div 9223372036854775807 -2 = -4611686018427387904
-div 9223372036854775807 -9223372036854775808 = -1
-div 9223372036854775807 9223372036854775807 = 1
-mod 0 1 = 0
-mod 0 -1 = 0
-mod 0 2 = 0
-mod 0 -2 = 0
-mod 0 -9223372036854775808 = 0
-mod 0 9223372036854775807 = 0
-mod 1 1 = 0
-mod 1 -1 = 0
-mod 1 2 = 1
-mod 1 -2 = -1
-mod 1 -9223372036854775808 = -9223372036854775807
-mod 1 9223372036854775807 = 1
-mod -1 1 = 0
-mod -1 -1 = 0
-mod -1 2 = 1
-mod -1 -2 = -1
-mod -1 -9223372036854775808 = -1
-mod -1 9223372036854775807 = 9223372036854775806
-mod 2 1 = 0
-mod 2 -1 = 0
-mod 2 2 = 0
-mod 2 -2 = 0
-mod 2 -9223372036854775808 = -9223372036854775806
-mod 2 9223372036854775807 = 2
-mod -2 1 = 0
-mod -2 -1 = 0
-mod -2 2 = 0
-mod -2 -2 = 0
-mod -2 -9223372036854775808 = -2
-mod -2 9223372036854775807 = 9223372036854775805
-mod 9223372036854775807 1 = 0
-mod 9223372036854775807 -1 = 0
-mod 9223372036854775807 2 = 1
-mod 9223372036854775807 -2 = -1
-mod 9223372036854775807 -9223372036854775808 = -1
-mod 9223372036854775807 9223372036854775807 = 0
-quot 0 1 = 0
-quot 0 -1 = 0
-quot 0 2 = 0
-quot 0 -2 = 0
-quot 0 -9223372036854775808 = 0
-quot 0 9223372036854775807 = 0
-quot 1 1 = 1
-quot 1 -1 = -1
-quot 1 2 = 0
-quot 1 -2 = 0
-quot 1 -9223372036854775808 = 0
-quot 1 9223372036854775807 = 0
-quot -1 1 = -1
-quot -1 -1 = 1
-quot -1 2 = 0
-quot -1 -2 = 0
-quot -1 -9223372036854775808 = 0
-quot -1 9223372036854775807 = 0
-quot 2 1 = 2
-quot 2 -1 = -2
-quot 2 2 = 1
-quot 2 -2 = -1
-quot 2 -9223372036854775808 = 0
-quot 2 9223372036854775807 = 0
-quot -2 1 = -2
-quot -2 -1 = 2
-quot -2 2 = -1
-quot -2 -2 = 1
-quot -2 -9223372036854775808 = 0
-quot -2 9223372036854775807 = 0
-quot 9223372036854775807 1 = 9223372036854775807
-quot 9223372036854775807 -1 = -9223372036854775807
-quot 9223372036854775807 2 = 4611686018427387903
-quot 9223372036854775807 -2 = -4611686018427387903
-quot 9223372036854775807 -9223372036854775808 = 0
-quot 9223372036854775807 9223372036854775807 = 1
-rem 0 1 = 0
-rem 0 -1 = 0
-rem 0 2 = 0
-rem 0 -2 = 0
-rem 0 -9223372036854775808 = 0
-rem 0 9223372036854775807 = 0
-rem 1 1 = 0
-rem 1 -1 = 0
-rem 1 2 = 1
-rem 1 -2 = 1
-rem 1 -9223372036854775808 = 1
-rem 1 9223372036854775807 = 1
-rem -1 1 = 0
-rem -1 -1 = 0
-rem -1 2 = -1
-rem -1 -2 = -1
-rem -1 -9223372036854775808 = -1
-rem -1 9223372036854775807 = -1
-rem 2 1 = 0
-rem 2 -1 = 0
-rem 2 2 = 0
-rem 2 -2 = 0
-rem 2 -9223372036854775808 = 2
-rem 2 9223372036854775807 = 2
-rem -2 1 = 0
-rem -2 -1 = 0
-rem -2 2 = 0
-rem -2 -2 = 0
-rem -2 -9223372036854775808 = -2
-rem -2 9223372036854775807 = -2
-rem 9223372036854775807 1 = 0
-rem 9223372036854775807 -1 = 0
-rem 9223372036854775807 2 = 1
-rem 9223372036854775807 -2 = 1
-rem 9223372036854775807 -9223372036854775808 = 9223372036854775807
-rem 9223372036854775807 9223372036854775807 = 0
-gcd 0 1 = 1
-gcd 0 -1 = 1
-gcd 0 2 = 2
-gcd 0 -2 = 2
-gcd 0 9223372036854775807 = 9223372036854775807
-gcd 1 0 = 1
-gcd 1 1 = 1
-gcd 1 -1 = 1
-gcd 1 2 = 1
-gcd 1 -2 = 1
-gcd 1 9223372036854775807 = 1
-gcd -1 0 = 1
-gcd -1 1 = 1
-gcd -1 -1 = 1
-gcd -1 2 = 1
-gcd -1 -2 = 1
-gcd -1 9223372036854775807 = 1
-gcd 2 0 = 2
-gcd 2 1 = 1
-gcd 2 -1 = 1
-gcd 2 2 = 2
-gcd 2 -2 = 2
-gcd 2 9223372036854775807 = 1
-gcd -2 0 = 2
-gcd -2 1 = 1
-gcd -2 -1 = 1
-gcd -2 2 = 2
-gcd -2 -2 = 2
-gcd -2 9223372036854775807 = 1
-gcd 9223372036854775807 0 = 9223372036854775807
-gcd 9223372036854775807 1 = 1
-gcd 9223372036854775807 -1 = 1
-gcd 9223372036854775807 2 = 1
-gcd 9223372036854775807 -2 = 1
-gcd 9223372036854775807 9223372036854775807 = 9223372036854775807
-lcm 0 1 = 0
-lcm 0 -1 = 0
-lcm 0 2 = 0
-lcm 0 -2 = 0
-lcm 0 -9223372036854775808 = 0
-lcm 1 0 = 0
-lcm 1 1 = 1
-lcm 1 -1 = 1
-lcm 1 2 = 2
-lcm 1 -2 = 2
-lcm 1 -9223372036854775808 = -9223372036854775808
-lcm -1 0 = 0
-lcm -1 1 = 1
-lcm -1 -1 = 1
-lcm -1 2 = 2
-lcm -1 -2 = 2
-lcm -1 -9223372036854775808 = -9223372036854775808
-lcm 2 0 = 0
-lcm 2 1 = 2
-lcm 2 -1 = 2
-lcm 2 2 = 2
-lcm 2 -2 = 2
-lcm 2 -9223372036854775808 = -9223372036854775808
-lcm -2 0 = 0
-lcm -2 1 = 2
-lcm -2 -1 = 2
-lcm -2 2 = 2
-lcm -2 -2 = 2
-lcm -2 -9223372036854775808 = -9223372036854775808
-lcm -9223372036854775808 0 = 0
-lcm -9223372036854775808 1 = -9223372036854775808
-lcm -9223372036854775808 -1 = -9223372036854775808
-lcm -9223372036854775808 2 = -9223372036854775808
-lcm -9223372036854775808 -2 = -9223372036854775808
-lcm -9223372036854775808 -9223372036854775808 = -9223372036854775808
-lcm 9223372036854775807 0 = 0
-lcm 9223372036854775807 1 = 9223372036854775807
-lcm 9223372036854775807 -1 = 9223372036854775807
-lcm 9223372036854775807 2 = 2
-lcm 9223372036854775807 -2 = 2
-lcm 9223372036854775807 -9223372036854775808 = -9223372036854775808
-(+) 0 0 = 0
-(+) 0 1 = 1
-(+) 0 -1 = -1
-(+) 0 2 = 2
-(+) 0 -2 = -2
-(+) 0 -9223372036854775808 = -9223372036854775808
-(+) 0 9223372036854775807 = 9223372036854775807
-(+) 0 -9223372036854775809 = -9223372036854775809
-(+) 0 9223372036854775808 = 9223372036854775808
-(+) 0 -18446744073709551616 = -18446744073709551616
-(+) 0 18446744073709551614 = 18446744073709551614
-(+) 0 85070591730234615865843651857942052864 = 85070591730234615865843651857942052864
-(+) 0 85070591730234615847396907784232501249 = 85070591730234615847396907784232501249
-(+) 1 0 = 1
-(+) 1 1 = 2
-(+) 1 -1 = 0
-(+) 1 2 = 3
-(+) 1 -2 = -1
-(+) 1 -9223372036854775808 = -9223372036854775807
-(+) 1 9223372036854775807 = 9223372036854775808
-(+) 1 -9223372036854775809 = -9223372036854775808
-(+) 1 9223372036854775808 = 9223372036854775809
-(+) 1 -18446744073709551616 = -18446744073709551615
-(+) 1 18446744073709551614 = 18446744073709551615
-(+) 1 85070591730234615865843651857942052864 = 85070591730234615865843651857942052865
-(+) 1 85070591730234615847396907784232501249 = 85070591730234615847396907784232501250
-(+) -1 0 = -1
-(+) -1 1 = 0
-(+) -1 -1 = -2
-(+) -1 2 = 1
-(+) -1 -2 = -3
-(+) -1 -9223372036854775808 = -9223372036854775809
-(+) -1 9223372036854775807 = 9223372036854775806
-(+) -1 -9223372036854775809 = -9223372036854775810
-(+) -1 9223372036854775808 = 9223372036854775807
-(+) -1 -18446744073709551616 = -18446744073709551617
-(+) -1 18446744073709551614 = 18446744073709551613
-(+) -1 85070591730234615865843651857942052864 = 85070591730234615865843651857942052863
-(+) -1 85070591730234615847396907784232501249 = 85070591730234615847396907784232501248
-(+) 2 0 = 2
-(+) 2 1 = 3
-(+) 2 -1 = 1
-(+) 2 2 = 4
-(+) 2 -2 = 0
-(+) 2 -9223372036854775808 = -9223372036854775806
-(+) 2 9223372036854775807 = 9223372036854775809
-(+) 2 -9223372036854775809 = -9223372036854775807
-(+) 2 9223372036854775808 = 9223372036854775810
-(+) 2 -18446744073709551616 = -18446744073709551614
-(+) 2 18446744073709551614 = 18446744073709551616
-(+) 2 85070591730234615865843651857942052864 = 85070591730234615865843651857942052866
-(+) 2 85070591730234615847396907784232501249 = 85070591730234615847396907784232501251
-(+) -2 0 = -2
-(+) -2 1 = -1
-(+) -2 -1 = -3
-(+) -2 2 = 0
-(+) -2 -2 = -4
-(+) -2 -9223372036854775808 = -9223372036854775810
-(+) -2 9223372036854775807 = 9223372036854775805
-(+) -2 -9223372036854775809 = -9223372036854775811
-(+) -2 9223372036854775808 = 9223372036854775806
-(+) -2 -18446744073709551616 = -18446744073709551618
-(+) -2 18446744073709551614 = 18446744073709551612
-(+) -2 85070591730234615865843651857942052864 = 85070591730234615865843651857942052862
-(+) -2 85070591730234615847396907784232501249 = 85070591730234615847396907784232501247
-(+) -9223372036854775808 0 = -9223372036854775808
-(+) -9223372036854775808 1 = -9223372036854775807
-(+) -9223372036854775808 -1 = -9223372036854775809
-(+) -9223372036854775808 2 = -9223372036854775806
-(+) -9223372036854775808 -2 = -9223372036854775810
-(+) -9223372036854775808 -9223372036854775808 = -18446744073709551616
-(+) -9223372036854775808 9223372036854775807 = -1
-(+) -9223372036854775808 -9223372036854775809 = -18446744073709551617
-(+) -9223372036854775808 9223372036854775808 = 0
-(+) -9223372036854775808 -18446744073709551616 = -27670116110564327424
-(+) -9223372036854775808 18446744073709551614 = 9223372036854775806
-(+) -9223372036854775808 85070591730234615865843651857942052864 = 85070591730234615856620279821087277056
-(+) -9223372036854775808 85070591730234615847396907784232501249 = 85070591730234615838173535747377725441
-(+) 9223372036854775807 0 = 9223372036854775807
-(+) 9223372036854775807 1 = 9223372036854775808
-(+) 9223372036854775807 -1 = 9223372036854775806
-(+) 9223372036854775807 2 = 9223372036854775809
-(+) 9223372036854775807 -2 = 9223372036854775805
-(+) 9223372036854775807 -9223372036854775808 = -1
-(+) 9223372036854775807 9223372036854775807 = 18446744073709551614
-(+) 9223372036854775807 -9223372036854775809 = -2
-(+) 9223372036854775807 9223372036854775808 = 18446744073709551615
-(+) 9223372036854775807 -18446744073709551616 = -9223372036854775809
-(+) 9223372036854775807 18446744073709551614 = 27670116110564327421
-(+) 9223372036854775807 85070591730234615865843651857942052864 = 85070591730234615875067023894796828671
-(+) 9223372036854775807 85070591730234615847396907784232501249 = 85070591730234615856620279821087277056
-(+) -9223372036854775809 0 = -9223372036854775809
-(+) -9223372036854775809 1 = -9223372036854775808
-(+) -9223372036854775809 -1 = -9223372036854775810
-(+) -9223372036854775809 2 = -9223372036854775807
-(+) -9223372036854775809 -2 = -9223372036854775811
-(+) -9223372036854775809 -9223372036854775808 = -18446744073709551617
-(+) -9223372036854775809 9223372036854775807 = -2
-(+) -9223372036854775809 -9223372036854775809 = -18446744073709551618
-(+) -9223372036854775809 9223372036854775808 = -1
-(+) -9223372036854775809 -18446744073709551616 = -27670116110564327425
-(+) -9223372036854775809 18446744073709551614 = 9223372036854775805
-(+) -9223372036854775809 85070591730234615865843651857942052864 = 85070591730234615856620279821087277055
-(+) -9223372036854775809 85070591730234615847396907784232501249 = 85070591730234615838173535747377725440
-(+) 9223372036854775808 0 = 9223372036854775808
-(+) 9223372036854775808 1 = 9223372036854775809
-(+) 9223372036854775808 -1 = 9223372036854775807
-(+) 9223372036854775808 2 = 9223372036854775810
-(+) 9223372036854775808 -2 = 9223372036854775806
-(+) 9223372036854775808 -9223372036854775808 = 0
-(+) 9223372036854775808 9223372036854775807 = 18446744073709551615
-(+) 9223372036854775808 -9223372036854775809 = -1
-(+) 9223372036854775808 9223372036854775808 = 18446744073709551616
-(+) 9223372036854775808 -18446744073709551616 = -9223372036854775808
-(+) 9223372036854775808 18446744073709551614 = 27670116110564327422
-(+) 9223372036854775808 85070591730234615865843651857942052864 = 85070591730234615875067023894796828672
-(+) 9223372036854775808 85070591730234615847396907784232501249 = 85070591730234615856620279821087277057
-(+) -18446744073709551616 0 = -18446744073709551616
-(+) -18446744073709551616 1 = -18446744073709551615
-(+) -18446744073709551616 -1 = -18446744073709551617
-(+) -18446744073709551616 2 = -18446744073709551614
-(+) -18446744073709551616 -2 = -18446744073709551618
-(+) -18446744073709551616 -9223372036854775808 = -27670116110564327424
-(+) -18446744073709551616 9223372036854775807 = -9223372036854775809
-(+) -18446744073709551616 -9223372036854775809 = -27670116110564327425
-(+) -18446744073709551616 9223372036854775808 = -9223372036854775808
-(+) -18446744073709551616 -18446744073709551616 = -36893488147419103232
-(+) -18446744073709551616 18446744073709551614 = -2
-(+) -18446744073709551616 85070591730234615865843651857942052864 = 85070591730234615847396907784232501248
-(+) -18446744073709551616 85070591730234615847396907784232501249 = 85070591730234615828950163710522949633
-(+) 18446744073709551614 0 = 18446744073709551614
-(+) 18446744073709551614 1 = 18446744073709551615
-(+) 18446744073709551614 -1 = 18446744073709551613
-(+) 18446744073709551614 2 = 18446744073709551616
-(+) 18446744073709551614 -2 = 18446744073709551612
-(+) 18446744073709551614 -9223372036854775808 = 9223372036854775806
-(+) 18446744073709551614 9223372036854775807 = 27670116110564327421
-(+) 18446744073709551614 -9223372036854775809 = 9223372036854775805
-(+) 18446744073709551614 9223372036854775808 = 27670116110564327422
-(+) 18446744073709551614 -18446744073709551616 = -2
-(+) 18446744073709551614 18446744073709551614 = 36893488147419103228
-(+) 18446744073709551614 85070591730234615865843651857942052864 = 85070591730234615884290395931651604478
-(+) 18446744073709551614 85070591730234615847396907784232501249 = 85070591730234615865843651857942052863
-(+) 85070591730234615865843651857942052864 0 = 85070591730234615865843651857942052864
-(+) 85070591730234615865843651857942052864 1 = 85070591730234615865843651857942052865
-(+) 85070591730234615865843651857942052864 -1 = 85070591730234615865843651857942052863
-(+) 85070591730234615865843651857942052864 2 = 85070591730234615865843651857942052866
-(+) 85070591730234615865843651857942052864 -2 = 85070591730234615865843651857942052862
-(+) 85070591730234615865843651857942052864 -9223372036854775808 = 85070591730234615856620279821087277056
-(+) 85070591730234615865843651857942052864 9223372036854775807 = 85070591730234615875067023894796828671
-(+) 85070591730234615865843651857942052864 -9223372036854775809 = 85070591730234615856620279821087277055
-(+) 85070591730234615865843651857942052864 9223372036854775808 = 85070591730234615875067023894796828672
-(+) 85070591730234615865843651857942052864 -18446744073709551616 = 85070591730234615847396907784232501248
-(+) 85070591730234615865843651857942052864 18446744073709551614 = 85070591730234615884290395931651604478
-(+) 85070591730234615865843651857942052864 85070591730234615865843651857942052864 = 170141183460469231731687303715884105728
-(+) 85070591730234615865843651857942052864 85070591730234615847396907784232501249 = 170141183460469231713240559642174554113
-(+) 85070591730234615847396907784232501249 0 = 85070591730234615847396907784232501249
-(+) 85070591730234615847396907784232501249 1 = 85070591730234615847396907784232501250
-(+) 85070591730234615847396907784232501249 -1 = 85070591730234615847396907784232501248
-(+) 85070591730234615847396907784232501249 2 = 85070591730234615847396907784232501251
-(+) 85070591730234615847396907784232501249 -2 = 85070591730234615847396907784232501247
-(+) 85070591730234615847396907784232501249 -9223372036854775808 = 85070591730234615838173535747377725441
-(+) 85070591730234615847396907784232501249 9223372036854775807 = 85070591730234615856620279821087277056
-(+) 85070591730234615847396907784232501249 -9223372036854775809 = 85070591730234615838173535747377725440
-(+) 85070591730234615847396907784232501249 9223372036854775808 = 85070591730234615856620279821087277057
-(+) 85070591730234615847396907784232501249 -18446744073709551616 = 85070591730234615828950163710522949633
-(+) 85070591730234615847396907784232501249 18446744073709551614 = 85070591730234615865843651857942052863
-(+) 85070591730234615847396907784232501249 85070591730234615865843651857942052864 = 170141183460469231713240559642174554113
-(+) 85070591730234615847396907784232501249 85070591730234615847396907784232501249 = 170141183460469231694793815568465002498
-(-) 0 0 = 0
-(-) 0 1 = -1
-(-) 0 -1 = 1
-(-) 0 2 = -2
-(-) 0 -2 = 2
-(-) 0 -9223372036854775808 = 9223372036854775808
-(-) 0 9223372036854775807 = -9223372036854775807
-(-) 0 -9223372036854775809 = 9223372036854775809
-(-) 0 9223372036854775808 = -9223372036854775808
-(-) 0 -18446744073709551616 = 18446744073709551616
-(-) 0 18446744073709551614 = -18446744073709551614
-(-) 0 85070591730234615865843651857942052864 = -85070591730234615865843651857942052864
-(-) 0 85070591730234615847396907784232501249 = -85070591730234615847396907784232501249
-(-) 1 0 = 1
-(-) 1 1 = 0
-(-) 1 -1 = 2
-(-) 1 2 = -1
-(-) 1 -2 = 3
-(-) 1 -9223372036854775808 = 9223372036854775809
-(-) 1 9223372036854775807 = -9223372036854775806
-(-) 1 -9223372036854775809 = 9223372036854775810
-(-) 1 9223372036854775808 = -9223372036854775807
-(-) 1 -18446744073709551616 = 18446744073709551617
-(-) 1 18446744073709551614 = -18446744073709551613
-(-) 1 85070591730234615865843651857942052864 = -85070591730234615865843651857942052863
-(-) 1 85070591730234615847396907784232501249 = -85070591730234615847396907784232501248
-(-) -1 0 = -1
-(-) -1 1 = -2
-(-) -1 -1 = 0
-(-) -1 2 = -3
-(-) -1 -2 = 1
-(-) -1 -9223372036854775808 = 9223372036854775807
-(-) -1 9223372036854775807 = -9223372036854775808
-(-) -1 -9223372036854775809 = 9223372036854775808
-(-) -1 9223372036854775808 = -9223372036854775809
-(-) -1 -18446744073709551616 = 18446744073709551615
-(-) -1 18446744073709551614 = -18446744073709551615
-(-) -1 85070591730234615865843651857942052864 = -85070591730234615865843651857942052865
-(-) -1 85070591730234615847396907784232501249 = -85070591730234615847396907784232501250
-(-) 2 0 = 2
-(-) 2 1 = 1
-(-) 2 -1 = 3
-(-) 2 2 = 0
-(-) 2 -2 = 4
-(-) 2 -9223372036854775808 = 9223372036854775810
-(-) 2 9223372036854775807 = -9223372036854775805
-(-) 2 -9223372036854775809 = 9223372036854775811
-(-) 2 9223372036854775808 = -9223372036854775806
-(-) 2 -18446744073709551616 = 18446744073709551618
-(-) 2 18446744073709551614 = -18446744073709551612
-(-) 2 85070591730234615865843651857942052864 = -85070591730234615865843651857942052862
-(-) 2 85070591730234615847396907784232501249 = -85070591730234615847396907784232501247
-(-) -2 0 = -2
-(-) -2 1 = -3
-(-) -2 -1 = -1
-(-) -2 2 = -4
-(-) -2 -2 = 0
-(-) -2 -9223372036854775808 = 9223372036854775806
-(-) -2 9223372036854775807 = -9223372036854775809
-(-) -2 -9223372036854775809 = 9223372036854775807
-(-) -2 9223372036854775808 = -9223372036854775810
-(-) -2 -18446744073709551616 = 18446744073709551614
-(-) -2 18446744073709551614 = -18446744073709551616
-(-) -2 85070591730234615865843651857942052864 = -85070591730234615865843651857942052866
-(-) -2 85070591730234615847396907784232501249 = -85070591730234615847396907784232501251
-(-) -9223372036854775808 0 = -9223372036854775808
-(-) -9223372036854775808 1 = -9223372036854775809
-(-) -9223372036854775808 -1 = -9223372036854775807
-(-) -9223372036854775808 2 = -9223372036854775810
-(-) -9223372036854775808 -2 = -9223372036854775806
-(-) -9223372036854775808 -9223372036854775808 = 0
-(-) -9223372036854775808 9223372036854775807 = -18446744073709551615
-(-) -9223372036854775808 -9223372036854775809 = 1
-(-) -9223372036854775808 9223372036854775808 = -18446744073709551616
-(-) -9223372036854775808 -18446744073709551616 = 9223372036854775808
-(-) -9223372036854775808 18446744073709551614 = -27670116110564327422
-(-) -9223372036854775808 85070591730234615865843651857942052864 = -85070591730234615875067023894796828672
-(-) -9223372036854775808 85070591730234615847396907784232501249 = -85070591730234615856620279821087277057
-(-) 9223372036854775807 0 = 9223372036854775807
-(-) 9223372036854775807 1 = 9223372036854775806
-(-) 9223372036854775807 -1 = 9223372036854775808
-(-) 9223372036854775807 2 = 9223372036854775805
-(-) 9223372036854775807 -2 = 9223372036854775809
-(-) 9223372036854775807 -9223372036854775808 = 18446744073709551615
-(-) 9223372036854775807 9223372036854775807 = 0
-(-) 9223372036854775807 -9223372036854775809 = 18446744073709551616
-(-) 9223372036854775807 9223372036854775808 = -1
-(-) 9223372036854775807 -18446744073709551616 = 27670116110564327423
-(-) 9223372036854775807 18446744073709551614 = -9223372036854775807
-(-) 9223372036854775807 85070591730234615865843651857942052864 = -85070591730234615856620279821087277057
-(-) 9223372036854775807 85070591730234615847396907784232501249 = -85070591730234615838173535747377725442
-(-) -9223372036854775809 0 = -9223372036854775809
-(-) -9223372036854775809 1 = -9223372036854775810
-(-) -9223372036854775809 -1 = -9223372036854775808
-(-) -9223372036854775809 2 = -9223372036854775811
-(-) -9223372036854775809 -2 = -9223372036854775807
-(-) -9223372036854775809 -9223372036854775808 = -1
-(-) -9223372036854775809 9223372036854775807 = -18446744073709551616
-(-) -9223372036854775809 -9223372036854775809 = 0
-(-) -9223372036854775809 9223372036854775808 = -18446744073709551617
-(-) -9223372036854775809 -18446744073709551616 = 9223372036854775807
-(-) -9223372036854775809 18446744073709551614 = -27670116110564327423
-(-) -9223372036854775809 85070591730234615865843651857942052864 = -85070591730234615875067023894796828673
-(-) -9223372036854775809 85070591730234615847396907784232501249 = -85070591730234615856620279821087277058
-(-) 9223372036854775808 0 = 9223372036854775808
-(-) 9223372036854775808 1 = 9223372036854775807
-(-) 9223372036854775808 -1 = 9223372036854775809
-(-) 9223372036854775808 2 = 9223372036854775806
-(-) 9223372036854775808 -2 = 9223372036854775810
-(-) 9223372036854775808 -9223372036854775808 = 18446744073709551616
-(-) 9223372036854775808 9223372036854775807 = 1
-(-) 9223372036854775808 -9223372036854775809 = 18446744073709551617
-(-) 9223372036854775808 9223372036854775808 = 0
-(-) 9223372036854775808 -18446744073709551616 = 27670116110564327424
-(-) 9223372036854775808 18446744073709551614 = -9223372036854775806
-(-) 9223372036854775808 85070591730234615865843651857942052864 = -85070591730234615856620279821087277056
-(-) 9223372036854775808 85070591730234615847396907784232501249 = -85070591730234615838173535747377725441
-(-) -18446744073709551616 0 = -18446744073709551616
-(-) -18446744073709551616 1 = -18446744073709551617
-(-) -18446744073709551616 -1 = -18446744073709551615
-(-) -18446744073709551616 2 = -18446744073709551618
-(-) -18446744073709551616 -2 = -18446744073709551614
-(-) -18446744073709551616 -9223372036854775808 = -9223372036854775808
-(-) -18446744073709551616 9223372036854775807 = -27670116110564327423
-(-) -18446744073709551616 -9223372036854775809 = -9223372036854775807
-(-) -18446744073709551616 9223372036854775808 = -27670116110564327424
-(-) -18446744073709551616 -18446744073709551616 = 0
-(-) -18446744073709551616 18446744073709551614 = -36893488147419103230
-(-) -18446744073709551616 85070591730234615865843651857942052864 = -85070591730234615884290395931651604480
-(-) -18446744073709551616 85070591730234615847396907784232501249 = -85070591730234615865843651857942052865
-(-) 18446744073709551614 0 = 18446744073709551614
-(-) 18446744073709551614 1 = 18446744073709551613
-(-) 18446744073709551614 -1 = 18446744073709551615
-(-) 18446744073709551614 2 = 18446744073709551612
-(-) 18446744073709551614 -2 = 18446744073709551616
-(-) 18446744073709551614 -9223372036854775808 = 27670116110564327422
-(-) 18446744073709551614 9223372036854775807 = 9223372036854775807
-(-) 18446744073709551614 -9223372036854775809 = 27670116110564327423
-(-) 18446744073709551614 9223372036854775808 = 9223372036854775806
-(-) 18446744073709551614 -18446744073709551616 = 36893488147419103230
-(-) 18446744073709551614 18446744073709551614 = 0
-(-) 18446744073709551614 85070591730234615865843651857942052864 = -85070591730234615847396907784232501250
-(-) 18446744073709551614 85070591730234615847396907784232501249 = -85070591730234615828950163710522949635
-(-) 85070591730234615865843651857942052864 0 = 85070591730234615865843651857942052864
-(-) 85070591730234615865843651857942052864 1 = 85070591730234615865843651857942052863
-(-) 85070591730234615865843651857942052864 -1 = 85070591730234615865843651857942052865
-(-) 85070591730234615865843651857942052864 2 = 85070591730234615865843651857942052862
-(-) 85070591730234615865843651857942052864 -2 = 85070591730234615865843651857942052866
-(-) 85070591730234615865843651857942052864 -9223372036854775808 = 85070591730234615875067023894796828672
-(-) 85070591730234615865843651857942052864 9223372036854775807 = 85070591730234615856620279821087277057
-(-) 85070591730234615865843651857942052864 -9223372036854775809 = 85070591730234615875067023894796828673
-(-) 85070591730234615865843651857942052864 9223372036854775808 = 85070591730234615856620279821087277056
-(-) 85070591730234615865843651857942052864 -18446744073709551616 = 85070591730234615884290395931651604480
-(-) 85070591730234615865843651857942052864 18446744073709551614 = 85070591730234615847396907784232501250
-(-) 85070591730234615865843651857942052864 85070591730234615865843651857942052864 = 0
-(-) 85070591730234615865843651857942052864 85070591730234615847396907784232501249 = 18446744073709551615
-(-) 85070591730234615847396907784232501249 0 = 85070591730234615847396907784232501249
-(-) 85070591730234615847396907784232501249 1 = 85070591730234615847396907784232501248
-(-) 85070591730234615847396907784232501249 -1 = 85070591730234615847396907784232501250
-(-) 85070591730234615847396907784232501249 2 = 85070591730234615847396907784232501247
-(-) 85070591730234615847396907784232501249 -2 = 85070591730234615847396907784232501251
-(-) 85070591730234615847396907784232501249 -9223372036854775808 = 85070591730234615856620279821087277057
-(-) 85070591730234615847396907784232501249 9223372036854775807 = 85070591730234615838173535747377725442
-(-) 85070591730234615847396907784232501249 -9223372036854775809 = 85070591730234615856620279821087277058
-(-) 85070591730234615847396907784232501249 9223372036854775808 = 85070591730234615838173535747377725441
-(-) 85070591730234615847396907784232501249 -18446744073709551616 = 85070591730234615865843651857942052865
-(-) 85070591730234615847396907784232501249 18446744073709551614 = 85070591730234615828950163710522949635
-(-) 85070591730234615847396907784232501249 85070591730234615865843651857942052864 = -18446744073709551615
-(-) 85070591730234615847396907784232501249 85070591730234615847396907784232501249 = 0
-div 0 1 = 0
-div 0 -1 = 0
-div 0 2 = 0
-div 0 -2 = 0
-div 0 -9223372036854775808 = 0
-div 0 9223372036854775807 = 0
-div 0 -9223372036854775809 = 0
-div 0 9223372036854775808 = 0
-div 0 -18446744073709551616 = 0
-div 0 18446744073709551614 = 0
-div 0 85070591730234615865843651857942052864 = 0
-div 0 85070591730234615847396907784232501249 = 0
-div 1 1 = 1
-div 1 -1 = -1
-div 1 2 = 0
-div 1 -2 = -1
-div 1 -9223372036854775808 = -1
-div 1 9223372036854775807 = 0
-div 1 -9223372036854775809 = -1
-div 1 9223372036854775808 = 0
-div 1 -18446744073709551616 = -1
-div 1 18446744073709551614 = 0
-div 1 85070591730234615865843651857942052864 = 0
-div 1 85070591730234615847396907784232501249 = 0
-div -1 1 = -1
-div -1 -1 = 1
-div -1 2 = -1
-div -1 -2 = 0
-div -1 -9223372036854775808 = 0
-div -1 9223372036854775807 = -1
-div -1 -9223372036854775809 = 0
-div -1 9223372036854775808 = -1
-div -1 -18446744073709551616 = 0
-div -1 18446744073709551614 = -1
-div -1 85070591730234615865843651857942052864 = -1
-div -1 85070591730234615847396907784232501249 = -1
-div 2 1 = 2
-div 2 -1 = -2
-div 2 2 = 1
-div 2 -2 = -1
-div 2 -9223372036854775808 = -1
-div 2 9223372036854775807 = 0
-div 2 -9223372036854775809 = -1
-div 2 9223372036854775808 = 0
-div 2 -18446744073709551616 = -1
-div 2 18446744073709551614 = 0
-div 2 85070591730234615865843651857942052864 = 0
-div 2 85070591730234615847396907784232501249 = 0
-div -2 1 = -2
-div -2 -1 = 2
-div -2 2 = -1
-div -2 -2 = 1
-div -2 -9223372036854775808 = 0
-div -2 9223372036854775807 = -1
-div -2 -9223372036854775809 = 0
-div -2 9223372036854775808 = -1
-div -2 -18446744073709551616 = 0
-div -2 18446744073709551614 = -1
-div -2 85070591730234615865843651857942052864 = -1
-div -2 85070591730234615847396907784232501249 = -1
-div -9223372036854775808 1 = -9223372036854775808
-div -9223372036854775808 -1 = 9223372036854775808
-div -9223372036854775808 2 = -4611686018427387904
-div -9223372036854775808 -2 = 4611686018427387904
-div -9223372036854775808 -9223372036854775808 = 1
-div -9223372036854775808 9223372036854775807 = -2
-div -9223372036854775808 -9223372036854775809 = 0
-div -9223372036854775808 9223372036854775808 = -1
-div -9223372036854775808 -18446744073709551616 = 0
-div -9223372036854775808 18446744073709551614 = -1
-div -9223372036854775808 85070591730234615865843651857942052864 = -1
-div -9223372036854775808 85070591730234615847396907784232501249 = -1
-div 9223372036854775807 1 = 9223372036854775807
-div 9223372036854775807 -1 = -9223372036854775807
-div 9223372036854775807 2 = 4611686018427387903
-div 9223372036854775807 -2 = -4611686018427387904
-div 9223372036854775807 -9223372036854775808 = -1
-div 9223372036854775807 9223372036854775807 = 1
-div 9223372036854775807 -9223372036854775809 = -1
-div 9223372036854775807 9223372036854775808 = 0
-div 9223372036854775807 -18446744073709551616 = -1
-div 9223372036854775807 18446744073709551614 = 0
-div 9223372036854775807 85070591730234615865843651857942052864 = 0
-div 9223372036854775807 85070591730234615847396907784232501249 = 0
-mod 0 1 = 0
-mod 0 -1 = 0
-mod 0 2 = 0
-mod 0 -2 = 0
-mod 0 -9223372036854775808 = 0
-mod 0 9223372036854775807 = 0
-mod 0 -9223372036854775809 = 0
-mod 0 9223372036854775808 = 0
-mod 0 -18446744073709551616 = 0
-mod 0 18446744073709551614 = 0
-mod 0 85070591730234615865843651857942052864 = 0
-mod 0 85070591730234615847396907784232501249 = 0
-mod 1 1 = 0
-mod 1 -1 = 0
-mod 1 2 = 1
-mod 1 -2 = -1
-mod 1 -9223372036854775808 = -9223372036854775807
-mod 1 9223372036854775807 = 1
-mod 1 -9223372036854775809 = -9223372036854775808
-mod 1 9223372036854775808 = 1
-mod 1 -18446744073709551616 = -18446744073709551615
-mod 1 18446744073709551614 = 1
-mod 1 85070591730234615865843651857942052864 = 1
-mod 1 85070591730234615847396907784232501249 = 1
-mod -1 1 = 0
-mod -1 -1 = 0
-mod -1 2 = 1
-mod -1 -2 = -1
-mod -1 -9223372036854775808 = -1
-mod -1 9223372036854775807 = 9223372036854775806
-mod -1 -9223372036854775809 = -1
-mod -1 9223372036854775808 = 9223372036854775807
-mod -1 -18446744073709551616 = -1
-mod -1 18446744073709551614 = 18446744073709551613
-mod -1 85070591730234615865843651857942052864 = 85070591730234615865843651857942052863
-mod -1 85070591730234615847396907784232501249 = 85070591730234615847396907784232501248
-mod 2 1 = 0
-mod 2 -1 = 0
-mod 2 2 = 0
-mod 2 -2 = 0
-mod 2 -9223372036854775808 = -9223372036854775806
-mod 2 9223372036854775807 = 2
-mod 2 -9223372036854775809 = -9223372036854775807
-mod 2 9223372036854775808 = 2
-mod 2 -18446744073709551616 = -18446744073709551614
-mod 2 18446744073709551614 = 2
-mod 2 85070591730234615865843651857942052864 = 2
-mod 2 85070591730234615847396907784232501249 = 2
-mod -2 1 = 0
-mod -2 -1 = 0
-mod -2 2 = 0
-mod -2 -2 = 0
-mod -2 -9223372036854775808 = -2
-mod -2 9223372036854775807 = 9223372036854775805
-mod -2 -9223372036854775809 = -2
-mod -2 9223372036854775808 = 9223372036854775806
-mod -2 -18446744073709551616 = -2
-mod -2 18446744073709551614 = 18446744073709551612
-mod -2 85070591730234615865843651857942052864 = 85070591730234615865843651857942052862
-mod -2 85070591730234615847396907784232501249 = 85070591730234615847396907784232501247
-mod -9223372036854775808 1 = 0
-mod -9223372036854775808 -1 = 0
-mod -9223372036854775808 2 = 0
-mod -9223372036854775808 -2 = 0
-mod -9223372036854775808 -9223372036854775808 = 0
-mod -9223372036854775808 9223372036854775807 = 9223372036854775806
-mod -9223372036854775808 -9223372036854775809 = -9223372036854775808
-mod -9223372036854775808 9223372036854775808 = 0
-mod -9223372036854775808 -18446744073709551616 = -9223372036854775808
-mod -9223372036854775808 18446744073709551614 = 9223372036854775806
-mod -9223372036854775808 85070591730234615865843651857942052864 = 85070591730234615856620279821087277056
-mod -9223372036854775808 85070591730234615847396907784232501249 = 85070591730234615838173535747377725441
-mod 9223372036854775807 1 = 0
-mod 9223372036854775807 -1 = 0
-mod 9223372036854775807 2 = 1
-mod 9223372036854775807 -2 = -1
-mod 9223372036854775807 -9223372036854775808 = -1
-mod 9223372036854775807 9223372036854775807 = 0
-mod 9223372036854775807 -9223372036854775809 = -2
-mod 9223372036854775807 9223372036854775808 = 9223372036854775807
-mod 9223372036854775807 -18446744073709551616 = -9223372036854775809
-mod 9223372036854775807 18446744073709551614 = 9223372036854775807
-mod 9223372036854775807 85070591730234615865843651857942052864 = 9223372036854775807
-mod 9223372036854775807 85070591730234615847396907784232501249 = 9223372036854775807
-quot 0 1 = 0
-quot 0 -1 = 0
-quot 0 2 = 0
-quot 0 -2 = 0
-quot 0 -9223372036854775808 = 0
-quot 0 9223372036854775807 = 0
-quot 0 -9223372036854775809 = 0
-quot 0 9223372036854775808 = 0
-quot 0 -18446744073709551616 = 0
-quot 0 18446744073709551614 = 0
-quot 0 85070591730234615865843651857942052864 = 0
-quot 0 85070591730234615847396907784232501249 = 0
-quot 1 1 = 1
-quot 1 -1 = -1
-quot 1 2 = 0
-quot 1 -2 = 0
-quot 1 -9223372036854775808 = 0
-quot 1 9223372036854775807 = 0
-quot 1 -9223372036854775809 = 0
-quot 1 9223372036854775808 = 0
-quot 1 -18446744073709551616 = 0
-quot 1 18446744073709551614 = 0
-quot 1 85070591730234615865843651857942052864 = 0
-quot 1 85070591730234615847396907784232501249 = 0
-quot -1 1 = -1
-quot -1 -1 = 1
-quot -1 2 = 0
-quot -1 -2 = 0
-quot -1 -9223372036854775808 = 0
-quot -1 9223372036854775807 = 0
-quot -1 -9223372036854775809 = 0
-quot -1 9223372036854775808 = 0
-quot -1 -18446744073709551616 = 0
-quot -1 18446744073709551614 = 0
-quot -1 85070591730234615865843651857942052864 = 0
-quot -1 85070591730234615847396907784232501249 = 0
-quot 2 1 = 2
-quot 2 -1 = -2
-quot 2 2 = 1
-quot 2 -2 = -1
-quot 2 -9223372036854775808 = 0
-quot 2 9223372036854775807 = 0
-quot 2 -9223372036854775809 = 0
-quot 2 9223372036854775808 = 0
-quot 2 -18446744073709551616 = 0
-quot 2 18446744073709551614 = 0
-quot 2 85070591730234615865843651857942052864 = 0
-quot 2 85070591730234615847396907784232501249 = 0
-quot -2 1 = -2
-quot -2 -1 = 2
-quot -2 2 = -1
-quot -2 -2 = 1
-quot -2 -9223372036854775808 = 0
-quot -2 9223372036854775807 = 0
-quot -2 -9223372036854775809 = 0
-quot -2 9223372036854775808 = 0
-quot -2 -18446744073709551616 = 0
-quot -2 18446744073709551614 = 0
-quot -2 85070591730234615865843651857942052864 = 0
-quot -2 85070591730234615847396907784232501249 = 0
-quot -9223372036854775808 1 = -9223372036854775808
-quot -9223372036854775808 -1 = 9223372036854775808
-quot -9223372036854775808 2 = -4611686018427387904
-quot -9223372036854775808 -2 = 4611686018427387904
-quot -9223372036854775808 -9223372036854775808 = 1
-quot -9223372036854775808 9223372036854775807 = -1
-quot -9223372036854775808 -9223372036854775809 = 0
-quot -9223372036854775808 9223372036854775808 = -1
-quot -9223372036854775808 -18446744073709551616 = 0
-quot -9223372036854775808 18446744073709551614 = 0
-quot -9223372036854775808 85070591730234615865843651857942052864 = 0
-quot -9223372036854775808 85070591730234615847396907784232501249 = 0
-quot 9223372036854775807 1 = 9223372036854775807
-quot 9223372036854775807 -1 = -9223372036854775807
-quot 9223372036854775807 2 = 4611686018427387903
-quot 9223372036854775807 -2 = -4611686018427387903
-quot 9223372036854775807 -9223372036854775808 = 0
-quot 9223372036854775807 9223372036854775807 = 1
-quot 9223372036854775807 -9223372036854775809 = 0
-quot 9223372036854775807 9223372036854775808 = 0
-quot 9223372036854775807 -18446744073709551616 = 0
-quot 9223372036854775807 18446744073709551614 = 0
-quot 9223372036854775807 85070591730234615865843651857942052864 = 0
-quot 9223372036854775807 85070591730234615847396907784232501249 = 0
-rem 0 1 = 0
-rem 0 -1 = 0
-rem 0 2 = 0
-rem 0 -2 = 0
-rem 0 -9223372036854775808 = 0
-rem 0 9223372036854775807 = 0
-rem 0 -9223372036854775809 = 0
-rem 0 9223372036854775808 = 0
-rem 0 -18446744073709551616 = 0
-rem 0 18446744073709551614 = 0
-rem 0 85070591730234615865843651857942052864 = 0
-rem 0 85070591730234615847396907784232501249 = 0
-rem 1 1 = 0
-rem 1 -1 = 0
-rem 1 2 = 1
-rem 1 -2 = 1
-rem 1 -9223372036854775808 = 1
-rem 1 9223372036854775807 = 1
-rem 1 -9223372036854775809 = 1
-rem 1 9223372036854775808 = 1
-rem 1 -18446744073709551616 = 1
-rem 1 18446744073709551614 = 1
-rem 1 85070591730234615865843651857942052864 = 1
-rem 1 85070591730234615847396907784232501249 = 1
-rem -1 1 = 0
-rem -1 -1 = 0
-rem -1 2 = -1
-rem -1 -2 = -1
-rem -1 -9223372036854775808 = -1
-rem -1 9223372036854775807 = -1
-rem -1 -9223372036854775809 = -1
-rem -1 9223372036854775808 = -1
-rem -1 -18446744073709551616 = -1
-rem -1 18446744073709551614 = -1
-rem -1 85070591730234615865843651857942052864 = -1
-rem -1 85070591730234615847396907784232501249 = -1
-rem 2 1 = 0
-rem 2 -1 = 0
-rem 2 2 = 0
-rem 2 -2 = 0
-rem 2 -9223372036854775808 = 2
-rem 2 9223372036854775807 = 2
-rem 2 -9223372036854775809 = 2
-rem 2 9223372036854775808 = 2
-rem 2 -18446744073709551616 = 2
-rem 2 18446744073709551614 = 2
-rem 2 85070591730234615865843651857942052864 = 2
-rem 2 85070591730234615847396907784232501249 = 2
-rem -2 1 = 0
-rem -2 -1 = 0
-rem -2 2 = 0
-rem -2 -2 = 0
-rem -2 -9223372036854775808 = -2
-rem -2 9223372036854775807 = -2
-rem -2 -9223372036854775809 = -2
-rem -2 9223372036854775808 = -2
-rem -2 -18446744073709551616 = -2
-rem -2 18446744073709551614 = -2
-rem -2 85070591730234615865843651857942052864 = -2
-rem -2 85070591730234615847396907784232501249 = -2
-rem -9223372036854775808 1 = 0
-rem -9223372036854775808 -1 = 0
-rem -9223372036854775808 2 = 0
-rem -9223372036854775808 -2 = 0
-rem -9223372036854775808 -9223372036854775808 = 0
-rem -9223372036854775808 9223372036854775807 = -1
-rem -9223372036854775808 -9223372036854775809 = -9223372036854775808
-rem -9223372036854775808 9223372036854775808 = 0
-rem -9223372036854775808 -18446744073709551616 = -9223372036854775808
-rem -9223372036854775808 18446744073709551614 = -9223372036854775808
-rem -9223372036854775808 85070591730234615865843651857942052864 = -9223372036854775808
-rem -9223372036854775808 85070591730234615847396907784232501249 = -9223372036854775808
-rem 9223372036854775807 1 = 0
-rem 9223372036854775807 -1 = 0
-rem 9223372036854775807 2 = 1
-rem 9223372036854775807 -2 = 1
-rem 9223372036854775807 -9223372036854775808 = 9223372036854775807
-rem 9223372036854775807 9223372036854775807 = 0
-rem 9223372036854775807 -9223372036854775809 = 9223372036854775807
-rem 9223372036854775807 9223372036854775808 = 9223372036854775807
-rem 9223372036854775807 -18446744073709551616 = 9223372036854775807
-rem 9223372036854775807 18446744073709551614 = 9223372036854775807
-rem 9223372036854775807 85070591730234615865843651857942052864 = 9223372036854775807
-rem 9223372036854775807 85070591730234615847396907784232501249 = 9223372036854775807
-gcd 0 1 = 1
-gcd 0 -1 = 1
-gcd 0 2 = 2
-gcd 0 -2 = 2
-gcd 0 -9223372036854775808 = 9223372036854775808
-gcd 0 9223372036854775807 = 9223372036854775807
-gcd 1 0 = 1
-gcd 1 1 = 1
-gcd 1 -1 = 1
-gcd 1 2 = 1
-gcd 1 -2 = 1
-gcd 1 -9223372036854775808 = 1
-gcd 1 9223372036854775807 = 1
-gcd -1 0 = 1
-gcd -1 1 = 1
-gcd -1 -1 = 1
-gcd -1 2 = 1
-gcd -1 -2 = 1
-gcd -1 -9223372036854775808 = 1
-gcd -1 9223372036854775807 = 1
-gcd 2 0 = 2
-gcd 2 1 = 1
-gcd 2 -1 = 1
-gcd 2 2 = 2
-gcd 2 -2 = 2
-gcd 2 -9223372036854775808 = 2
-gcd 2 9223372036854775807 = 1
-gcd -2 0 = 2
-gcd -2 1 = 1
-gcd -2 -1 = 1
-gcd -2 2 = 2
-gcd -2 -2 = 2
-gcd -2 -9223372036854775808 = 2
-gcd -2 9223372036854775807 = 1
-gcd -9223372036854775808 0 = 9223372036854775808
-gcd -9223372036854775808 1 = 1
-gcd -9223372036854775808 -1 = 1
-gcd -9223372036854775808 2 = 2
-gcd -9223372036854775808 -2 = 2
-gcd -9223372036854775808 -9223372036854775808 = 9223372036854775808
-gcd -9223372036854775808 9223372036854775807 = 1
-gcd 9223372036854775807 0 = 9223372036854775807
-gcd 9223372036854775807 1 = 1
-gcd 9223372036854775807 -1 = 1
-gcd 9223372036854775807 2 = 1
-gcd 9223372036854775807 -2 = 1
-gcd 9223372036854775807 -9223372036854775808 = 1
-gcd 9223372036854775807 9223372036854775807 = 9223372036854775807
-lcm 0 1 = 0
-lcm 0 -1 = 0
-lcm 0 2 = 0
-lcm 0 -2 = 0
-lcm 0 -9223372036854775808 = 0
-lcm 0 9223372036854775807 = 0
-lcm 1 0 = 0
-lcm 1 1 = 1
-lcm 1 -1 = 1
-lcm 1 2 = 2
-lcm 1 -2 = 2
-lcm 1 -9223372036854775808 = 9223372036854775808
-lcm 1 9223372036854775807 = 9223372036854775807
-lcm -1 0 = 0
-lcm -1 1 = 1
-lcm -1 -1 = 1
-lcm -1 2 = 2
-lcm -1 -2 = 2
-lcm -1 -9223372036854775808 = 9223372036854775808
-lcm -1 9223372036854775807 = 9223372036854775807
-lcm 2 0 = 0
-lcm 2 1 = 2
-lcm 2 -1 = 2
-lcm 2 2 = 2
-lcm 2 -2 = 2
-lcm 2 -9223372036854775808 = 9223372036854775808
-lcm 2 9223372036854775807 = 18446744073709551614
-lcm -2 0 = 0
-lcm -2 1 = 2
-lcm -2 -1 = 2
-lcm -2 2 = 2
-lcm -2 -2 = 2
-lcm -2 -9223372036854775808 = 9223372036854775808
-lcm -2 9223372036854775807 = 18446744073709551614
-lcm -9223372036854775808 0 = 0
-lcm -9223372036854775808 1 = 9223372036854775808
-lcm -9223372036854775808 -1 = 9223372036854775808
-lcm -9223372036854775808 2 = 9223372036854775808
-lcm -9223372036854775808 -2 = 9223372036854775808
-lcm -9223372036854775808 -9223372036854775808 = 9223372036854775808
-lcm -9223372036854775808 9223372036854775807 = 85070591730234615856620279821087277056
-lcm 9223372036854775807 0 = 0
-lcm 9223372036854775807 1 = 9223372036854775807
-lcm 9223372036854775807 -1 = 9223372036854775807
-lcm 9223372036854775807 2 = 18446744073709551614
-lcm 9223372036854775807 -2 = 18446744073709551614
-lcm 9223372036854775807 -9223372036854775808 = 85070591730234615856620279821087277056
-lcm 9223372036854775807 9223372036854775807 = 9223372036854775807
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith004.hs b/testsuite/tests/ghc-regress/numeric/should_run/arith004.hs
deleted file mode 100644
index 68e601128e..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith004.hs
+++ /dev/null
@@ -1,86 +0,0 @@
--- !!! test quot/rem/div/mod functions on Ints and Integers
---
-main
- = putStr
- (-- w/ Ints and Integers
- show (unzipWith div ints_list)
- ++ "\n"
- ++ show (unzipWith div integers_list)
- ++ "\n"
- ++ show (unzipWith rem ints_list)
- ++ "\n"
- ++ show (unzipWith rem integers_list)
- ++ "\n"
- ++ show (unzipWith quot ints_list)
- ++ "\n"
- ++ show (unzipWith quot integers_list)
- ++ "\n"
- ++ show (unzipWith mod ints_list)
- ++ "\n"
- ++ show (unzipWith mod integers_list)
- ++ "\n"
- ++ show (unzipWith law1 ints_list)
- ++ "\n"
- ++ show (unzipWith law1 integers_list)
- ++ "\n"
- ++ show (unzipWith law2 ints_list)
- ++ "\n"
- ++ show (unzipWith law2 integers_list)
- ++ "\n"
- )
- where
- ints_list :: [(Int, Int)]
- integers_list :: [(Integer, Integer)]
-
- ints_list = [
- (0, 4),
- (0, -8),
- (7, 3),
- (13, 4),
- (13, -4),
- (-13, 4),
- (-13, -4),
- (12345678, 10000),
- (12345678, -10000),
- (-12345678, 10000),
- (-12345678, -10000),
- (123456,10000),
- (1234567,20000),
- (12345678,-10000),
- (123456789,10000),
- (1234567890,-10000),
- (-12345,10000),
- (-123456789,-10000)
- ]
-
- integers_list = [
- (0, 4),
- (0, -8),
- (7, 3),
- (13, 4),
- (13, -4),
- (-13, 4),
- (-13, -4),
- (12345678, 10000),
- (12345678, -10000),
- (-12345678, 10000),
- (-12345678, -10000),
- (123456,10000),
- (1234567,20000),
- (12345678,-10000),
- (123456789,10000),
- (1234567890,-10000),
- (-12345,10000),
- (-123456789,-10000),
- (12345678900,500000000),
- (1234000000000000000000005678900,5001111111111111000000)
- ]
-
-unzipWith :: (a -> b -> c) -> [(a,b)] -> [c]
-unzipWith f [] = []
-unzipWith f ((x,y):zs) = f x y : unzipWith f zs
-
-law1, law2 :: Integral a => a -> a -> Bool
-
-law1 x y = (x `quot` y)*y + (x `rem` y) == x
-law2 x y = (x `div` y)*y + (x `mod` y) == x
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith004.stdout b/testsuite/tests/ghc-regress/numeric/should_run/arith004.stdout
deleted file mode 100644
index 0ce885eb27..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith004.stdout
+++ /dev/null
@@ -1,12 +0,0 @@
-[0,0,2,3,-4,-4,3,1234,-1235,-1235,1234,12,61,-1235,12345,-123457,-2,12345]
-[0,0,2,3,-4,-4,3,1234,-1235,-1235,1234,12,61,-1235,12345,-123457,-2,12345,24,246745167]
-[0,0,1,1,1,-1,-1,5678,5678,-5678,-5678,3456,14567,5678,6789,7890,-2345,-6789]
-[0,0,1,1,1,-1,-1,5678,5678,-5678,-5678,3456,14567,5678,6789,7890,-2345,-6789,345678900,3703333360749468678900]
-[0,0,2,3,-3,-3,3,1234,-1234,-1234,1234,12,61,-1234,12345,-123456,-1,12345]
-[0,0,2,3,-3,-3,3,1234,-1234,-1234,1234,12,61,-1234,12345,-123456,-1,12345,24,246745167]
-[0,0,1,1,-3,3,-1,5678,-4322,4322,-5678,3456,14567,-4322,6789,-2110,7655,-6789]
-[0,0,1,1,-3,3,-1,5678,-4322,4322,-5678,3456,14567,-4322,6789,-2110,7655,-6789,345678900,3703333360749468678900]
-[True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True]
-[True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True]
-[True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True]
-[True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True]
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith005.hs b/testsuite/tests/ghc-regress/numeric/should_run/arith005.hs
deleted file mode 100644
index 179d7b33dc..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith005.hs
+++ /dev/null
@@ -1,60 +0,0 @@
--- !!! test RealFrac ops (ceiling/floor/etc.) on Floats/Doubles
---
-main =
- putStr $
- unlines
- [ -- just for fun, we show the floats to
- -- exercise the code responsible.
- 'A' : show (float_list :: [Float])
- , 'B' : show (double_list :: [Double])
- -- {Float,Double} inputs, {Int,Integer} outputs
- , 'C' : show ((map ceiling small_float_list) :: [Int])
- , 'D' : show ((map ceiling float_list) :: [Integer])
- , 'E' : show ((map ceiling small_double_list) :: [Int])
- , 'F' : show ((map ceiling double_list) :: [Integer])
- , 'G' : show ((map floor small_float_list) :: [Int])
- , 'H' : show ((map floor float_list) :: [Integer])
- , 'I' : show ((map floor small_double_list) :: [Int])
- , 'J' : show ((map floor double_list) :: [Integer])
- , 'K' : show ((map truncate small_float_list) :: [Int])
- , 'L' : show ((map truncate float_list) :: [Integer])
- , 'M' : show ((map truncate small_double_list) :: [Int])
- , 'N' : show ((map truncate double_list) :: [Integer])
- , 'n' : show ((map round small_float_list) :: [Int])
- , 'O' : show ((map round float_list) :: [Integer])
- , 'P' : show ((map round small_double_list) :: [Int])
- , 'Q' : show ((map round double_list) :: [Integer])
- , 'R' : show ((map properFraction small_float_list) :: [(Int,Float)])
- , 'S' : show ((map properFraction float_list) :: [(Integer,Float)])
- , 'T' : show ((map properFraction small_double_list) :: [(Int,Double)])
- , 'U' : show ((map properFraction double_list) :: [(Integer,Double)])
- ]
- where
- -- these fit into an Int when truncated. Truncation when the
- -- result does not fit into the target is undefined - not explicitly
- -- so in Haskell 98, but that's the interpretation we've taken in GHC.
- -- See bug #1254
- small_float_list :: [Float]
- small_float_list = [
- 0.0, -0.0, 1.1, 2.8, 3.5, 4.5, -1.0000000001, -2.9999995,
- -3.50000000001, -4.49999999999, 1000012.0, 123.456, 100.25,
- 102.5, 0.0012, -0.00000012, 1.7e4, -1.7e-4, 0.15e-6, pi
- ]
-
- float_list :: [Float]
- float_list = small_float_list ++ [
- 1.18088e+11, 1.2111e+14
- ]
-
- -- these fit into an Int
- small_double_list :: [Double]
- small_double_list = [
- 0.0, -0.0, 1.1, 2.8, 3.5, 4.5, -1.0000000001, -2.9999995,
- -3.50000000001, -4.49999999999, 1000012.0, 123.456, 100.25,
- 102.5, 0.0012, -0.00000012, 1.7e4, -1.7e-4, 0.15e-6, pi
- ]
-
- double_list :: [Double]
- double_list = small_double_list ++ [
- 1.18088e+11, 1.2111e+14
- ]
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith005.stdout b/testsuite/tests/ghc-regress/numeric/should_run/arith005.stdout
deleted file mode 100644
index 8881543412..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith005.stdout
+++ /dev/null
@@ -1,22 +0,0 @@
-A[0.0,-0.0,1.1,2.8,3.5,4.5,-1.0,-2.9999995,-3.5,-4.5,1000012.0,123.456,100.25,102.5,1.2e-3,-1.2e-7,17000.0,-1.7e-4,1.5e-7,3.1415927,1.18088e11,1.2111e14]
-B[0.0,-0.0,1.1,2.8,3.5,4.5,-1.0000000001,-2.9999995,-3.50000000001,-4.49999999999,1000012.0,123.456,100.25,102.5,1.2e-3,-1.2e-7,17000.0,-1.7e-4,1.5e-7,3.141592653589793,1.18088e11,1.2111e14]
-C[0,0,2,3,4,5,-1,-2,-3,-4,1000012,124,101,103,1,0,17000,0,1,4]
-D[0,0,2,3,4,5,-1,-2,-3,-4,1000012,124,101,103,1,0,17000,0,1,4,118087999488,121109999517696]
-E[0,0,2,3,4,5,-1,-2,-3,-4,1000012,124,101,103,1,0,17000,0,1,4]
-F[0,0,2,3,4,5,-1,-2,-3,-4,1000012,124,101,103,1,0,17000,0,1,4,118088000000,121110000000000]
-G[0,0,1,2,3,4,-1,-3,-4,-5,1000012,123,100,102,0,-1,17000,-1,0,3]
-H[0,0,1,2,3,4,-1,-3,-4,-5,1000012,123,100,102,0,-1,17000,-1,0,3,118087999488,121109999517696]
-I[0,0,1,2,3,4,-2,-3,-4,-5,1000012,123,100,102,0,-1,17000,-1,0,3]
-J[0,0,1,2,3,4,-2,-3,-4,-5,1000012,123,100,102,0,-1,17000,-1,0,3,118088000000,121110000000000]
-K[0,0,1,2,3,4,-1,-2,-3,-4,1000012,123,100,102,0,0,17000,0,0,3]
-L[0,0,1,2,3,4,-1,-2,-3,-4,1000012,123,100,102,0,0,17000,0,0,3,118087999488,121109999517696]
-M[0,0,1,2,3,4,-1,-2,-3,-4,1000012,123,100,102,0,0,17000,0,0,3]
-N[0,0,1,2,3,4,-1,-2,-3,-4,1000012,123,100,102,0,0,17000,0,0,3,118088000000,121110000000000]
-n[0,0,1,3,4,4,-1,-3,-4,-4,1000012,123,100,102,0,0,17000,0,0,3]
-O[0,0,1,3,4,4,-1,-3,-4,-4,1000012,123,100,102,0,0,17000,0,0,3,118087999488,121109999517696]
-P[0,0,1,3,4,4,-1,-3,-4,-4,1000012,123,100,102,0,0,17000,0,0,3]
-Q[0,0,1,3,4,4,-1,-3,-4,-4,1000012,123,100,102,0,0,17000,0,0,3,118088000000,121110000000000]
-R[(0,0.0),(0,0.0),(1,0.100000024),(2,0.79999995),(3,0.5),(4,0.5),(-1,0.0),(-2,-0.9999995),(-3,-0.5),(-4,-0.5),(1000012,0.0),(123,0.45600128),(100,0.25),(102,0.5),(0,1.2e-3),(0,-1.2e-7),(17000,0.0),(0,-1.7e-4),(0,1.5e-7),(3,0.14159274)]
-S[(0,0.0),(0,0.0),(1,0.100000024),(2,0.79999995),(3,0.5),(4,0.5),(-1,0.0),(-2,-0.9999995),(-3,-0.5),(-4,-0.5),(1000012,0.0),(123,0.45600128),(100,0.25),(102,0.5),(0,1.2e-3),(0,-1.2e-7),(17000,0.0),(0,-1.7e-4),(0,1.5e-7),(3,0.14159274),(118087999488,0.0),(121109999517696,0.0)]
-T[(0,0.0),(0,0.0),(1,0.10000000000000009),(2,0.7999999999999998),(3,0.5),(4,0.5),(-1,-1.000000082740371e-10),(-2,-0.9999994999999999),(-3,-0.50000000001),(-4,-0.49999999999),(1000012,0.0),(123,0.45600000000000307),(100,0.25),(102,0.5),(0,1.2e-3),(0,-1.2e-7),(17000,0.0),(0,-1.7e-4),(0,1.5e-7),(3,0.14159265358979312)]
-U[(0,0.0),(0,0.0),(1,0.10000000000000009),(2,0.7999999999999998),(3,0.5),(4,0.5),(-1,-1.000000082740371e-10),(-2,-0.9999994999999999),(-3,-0.50000000001),(-4,-0.49999999999),(1000012,0.0),(123,0.45600000000000307),(100,0.25),(102,0.5),(0,1.2e-3),(0,-1.2e-7),(17000,0.0),(0,-1.7e-4),(0,1.5e-7),(3,0.14159265358979312),(118088000000,0.0),(121110000000000,0.0)]
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith005.stdout-ws-64 b/testsuite/tests/ghc-regress/numeric/should_run/arith005.stdout-ws-64
deleted file mode 100644
index 8881543412..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith005.stdout-ws-64
+++ /dev/null
@@ -1,22 +0,0 @@
-A[0.0,-0.0,1.1,2.8,3.5,4.5,-1.0,-2.9999995,-3.5,-4.5,1000012.0,123.456,100.25,102.5,1.2e-3,-1.2e-7,17000.0,-1.7e-4,1.5e-7,3.1415927,1.18088e11,1.2111e14]
-B[0.0,-0.0,1.1,2.8,3.5,4.5,-1.0000000001,-2.9999995,-3.50000000001,-4.49999999999,1000012.0,123.456,100.25,102.5,1.2e-3,-1.2e-7,17000.0,-1.7e-4,1.5e-7,3.141592653589793,1.18088e11,1.2111e14]
-C[0,0,2,3,4,5,-1,-2,-3,-4,1000012,124,101,103,1,0,17000,0,1,4]
-D[0,0,2,3,4,5,-1,-2,-3,-4,1000012,124,101,103,1,0,17000,0,1,4,118087999488,121109999517696]
-E[0,0,2,3,4,5,-1,-2,-3,-4,1000012,124,101,103,1,0,17000,0,1,4]
-F[0,0,2,3,4,5,-1,-2,-3,-4,1000012,124,101,103,1,0,17000,0,1,4,118088000000,121110000000000]
-G[0,0,1,2,3,4,-1,-3,-4,-5,1000012,123,100,102,0,-1,17000,-1,0,3]
-H[0,0,1,2,3,4,-1,-3,-4,-5,1000012,123,100,102,0,-1,17000,-1,0,3,118087999488,121109999517696]
-I[0,0,1,2,3,4,-2,-3,-4,-5,1000012,123,100,102,0,-1,17000,-1,0,3]
-J[0,0,1,2,3,4,-2,-3,-4,-5,1000012,123,100,102,0,-1,17000,-1,0,3,118088000000,121110000000000]
-K[0,0,1,2,3,4,-1,-2,-3,-4,1000012,123,100,102,0,0,17000,0,0,3]
-L[0,0,1,2,3,4,-1,-2,-3,-4,1000012,123,100,102,0,0,17000,0,0,3,118087999488,121109999517696]
-M[0,0,1,2,3,4,-1,-2,-3,-4,1000012,123,100,102,0,0,17000,0,0,3]
-N[0,0,1,2,3,4,-1,-2,-3,-4,1000012,123,100,102,0,0,17000,0,0,3,118088000000,121110000000000]
-n[0,0,1,3,4,4,-1,-3,-4,-4,1000012,123,100,102,0,0,17000,0,0,3]
-O[0,0,1,3,4,4,-1,-3,-4,-4,1000012,123,100,102,0,0,17000,0,0,3,118087999488,121109999517696]
-P[0,0,1,3,4,4,-1,-3,-4,-4,1000012,123,100,102,0,0,17000,0,0,3]
-Q[0,0,1,3,4,4,-1,-3,-4,-4,1000012,123,100,102,0,0,17000,0,0,3,118088000000,121110000000000]
-R[(0,0.0),(0,0.0),(1,0.100000024),(2,0.79999995),(3,0.5),(4,0.5),(-1,0.0),(-2,-0.9999995),(-3,-0.5),(-4,-0.5),(1000012,0.0),(123,0.45600128),(100,0.25),(102,0.5),(0,1.2e-3),(0,-1.2e-7),(17000,0.0),(0,-1.7e-4),(0,1.5e-7),(3,0.14159274)]
-S[(0,0.0),(0,0.0),(1,0.100000024),(2,0.79999995),(3,0.5),(4,0.5),(-1,0.0),(-2,-0.9999995),(-3,-0.5),(-4,-0.5),(1000012,0.0),(123,0.45600128),(100,0.25),(102,0.5),(0,1.2e-3),(0,-1.2e-7),(17000,0.0),(0,-1.7e-4),(0,1.5e-7),(3,0.14159274),(118087999488,0.0),(121109999517696,0.0)]
-T[(0,0.0),(0,0.0),(1,0.10000000000000009),(2,0.7999999999999998),(3,0.5),(4,0.5),(-1,-1.000000082740371e-10),(-2,-0.9999994999999999),(-3,-0.50000000001),(-4,-0.49999999999),(1000012,0.0),(123,0.45600000000000307),(100,0.25),(102,0.5),(0,1.2e-3),(0,-1.2e-7),(17000,0.0),(0,-1.7e-4),(0,1.5e-7),(3,0.14159265358979312)]
-U[(0,0.0),(0,0.0),(1,0.10000000000000009),(2,0.7999999999999998),(3,0.5),(4,0.5),(-1,-1.000000082740371e-10),(-2,-0.9999994999999999),(-3,-0.50000000001),(-4,-0.49999999999),(1000012,0.0),(123,0.45600000000000307),(100,0.25),(102,0.5),(0,1.2e-3),(0,-1.2e-7),(17000,0.0),(0,-1.7e-4),(0,1.5e-7),(3,0.14159265358979312),(118088000000,0.0),(121110000000000,0.0)]
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith006.hs b/testsuite/tests/ghc-regress/numeric/should_run/arith006.hs
deleted file mode 100644
index b837692dae..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith006.hs
+++ /dev/null
@@ -1,4 +0,0 @@
--- !!! printing Floats; was a bug in hbc (reported by andy)
---
-
-main = print ((fromIntegral (42 :: Int)) :: Float)
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith006.stdout b/testsuite/tests/ghc-regress/numeric/should_run/arith006.stdout
deleted file mode 100644
index 713c2229f5..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith006.stdout
+++ /dev/null
@@ -1 +0,0 @@
-42.0
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith007.hs b/testsuite/tests/ghc-regress/numeric/should_run/arith007.hs
deleted file mode 100644
index 3d42d1fb10..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith007.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- !!! test simple Integer things
---
-
-f x y z = x y z
-
-main = do
- putStr (shows integer_list "\n")
- where
- int_list :: [Int]
- integer_list :: [Integer]
-
- int_list = (map fromInteger integer_list)
-
- integer_list = (map (* 2)
- [1,3,5,7,9,
- 11111111111111111111111111111,
- 2222222222222222222222222222222222222,
- 3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333,
- -11111111111111111111111111111,
- -2222222222222222222222222222222222222,
- -3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
- ])
-
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith007.stdout b/testsuite/tests/ghc-regress/numeric/should_run/arith007.stdout
deleted file mode 100644
index 1d7c97d108..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith007.stdout
+++ /dev/null
@@ -1 +0,0 @@
-[2,6,10,14,18,22222222222222222222222222222,4444444444444444444444444444444444444,6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666,-22222222222222222222222222222,-4444444444444444444444444444444444444,-6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666]
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith008.hs b/testsuite/tests/ghc-regress/numeric/should_run/arith008.hs
deleted file mode 100644
index 15a3903a0e..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith008.hs
+++ /dev/null
@@ -1,24 +0,0 @@
--- !!! a random test from Nick North
--- (got this in mid-1993; don't remember why. WDP 95/02)
---
-
-random_numbers :: (Int, Int, Int) -> [Float]
-random_numbers (s1,s2,s3)
- = map (snd . properFraction . combine) (iterate f (s1,s2,s3))
- where
- combine :: (Int,Int,Int) -> Float
- combine (a,b,c) =
- fromIntegral(a)/30269 + fromIntegral(b)/30307
- + fromIntegral(c)/30323
- f (a,b,c) =
- ((171*a) `mod` 30269, (172*b) `mod` 30307, (170*c) `mod` 30323)
-
--- partain: changed to cvt spaces into newlines (easier to see bugs)
--- sof: define approp. version of showList to do this.
-main = putStr (showL (showsPrec 0) (take 1000 (random_numbers (9807, 65, 32975))) "\n")
-
-showL showx [] = showString "[]"
-showL showx (x:xs) = showChar '[' . showx x . showl xs
- where
- showl [] = showChar ']'
- showl (x:xs) = showString ",\n" . showx x . showl xs
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith008.stdout b/testsuite/tests/ghc-regress/numeric/should_run/arith008.stdout
deleted file mode 100644
index 6a6007c745..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith008.stdout
+++ /dev/null
@@ -1,1000 +0,0 @@
-[0.41359794,
-0.6399324,
-0.92941284,
-0.8322308,
-0.6558542,
-0.27844667,
-0.48358274,
-0.21114683,
-0.7582127,
-0.12166107,
-0.981663,
-0.79931486,
-0.8722358,
-0.45195377,
-3.4911394e-2,
-0.7246227,
-0.24528801,
-0.6998143,
-0.9876834,
-0.42533565,
-0.59525573,
-0.38930762,
-0.119990826,
-0.9083969,
-0.26239872,
-2.744031e-2,
-0.7286656,
-0.92476606,
-0.8718927,
-0.1687454,
-0.13774204,
-0.28789735,
-0.9548291,
-0.41255307,
-0.8564267,
-8.4107876e-2,
-0.48756683,
-0.11202359,
-0.51587105,
-0.5511048,
-0.93413484,
-0.6428783,
-0.87145376,
-0.67891765,
-0.23348927,
-0.3780495,
-0.87735546,
-0.85223985,
-0.19405353,
-0.3535874,
-0.72997916,
-0.23668802,
-0.61755717,
-0.9253086,
-0.7007494,
-0.98090434,
-0.23180747,
-0.8951179,
-0.18330741,
-0.30362415,
-0.57720375,
-0.8465313,
-0.31598616,
-0.20875359,
-0.18506193,
-0.56406593,
-0.87965286,
-2.7450562e-2,
-0.14676762,
-0.74345183,
-0.92644644,
-1.5535355e-3,
-0.8126061,
-0.6636951,
-0.15379143,
-0.16009843,
-0.29956555,
-0.71643496,
-0.65267706,
-1.2942791e-2,
-0.15469885,
-0.70281076,
-0.49925303,
-0.9001132,
-0.55416614,
-0.2577113,
-0.28545964,
-0.26130748,
-0.91633797,
-0.2018559,
-0.88357884,
-0.6068319,
-0.41902173,
-0.80342615,
-0.5469477,
-0.5351703,
-0.36879182,
-0.85823405,
-0.18722737,
-0.20447707,
-0.5052972,
-0.41609886,
-0.13425875,
-0.8554218,
-0.37205708,
-9.450865e-2,
-0.97575045,
-0.8755969,
-0.7150241,
-0.6752708,
-0.6860019,
-0.21408677,
-0.30702153,
-0.3567884,
-0.6356261,
-0.84917825,
-0.13312805,
-0.1351955,
-0.2726475,
-0.77746105,
-0.39467335,
-0.42776418,
-0.15337801,
-0.1592257,
-0.28089368,
-0.6215863,
-0.15158892,
-0.62589145,
-0.9849372,
-0.47261155,
-0.13879633,
-0.53436935,
-0.8684354,
-0.49009013,
-0.8487663,
-0.415954,
-0.49733603,
-0.81666195,
-0.50797117,
-0.19971132,
-0.5820248,
-0.9983189,
-0.27208292,
-0.67335844,
-0.27931952,
-0.42391694,
-0.9081789,
-7.466531e-2,
-5.3013563e-2,
-0.2840109,
-0.4830655,
-0.1756686,
-0.62167895,
-0.89717495,
-0.19109178,
-0.78958845,
-1.543045e-2,
-5.0975323e-2,
-0.21466875,
-0.4129461,
-0.289948,
-0.7271167,
-0.99582183,
-6.0527444e-2,
-0.75902903,
-0.6639817,
-0.8994356,
-2.9090405e-2,
-0.3309772,
-0.8311074,
-0.27760005,
-1.6489744e-2,
-4.7184825e-2,
-6.268692e-2,
-0.37376666,
-0.9638035,
-0.80776775,
-0.690861,
-0.6061044,
-0.6701783,
-0.8412647,
-0.5805452,
-0.41863844,
-0.5514518,
-0.5801554,
-9.124398e-2,
-0.737221,
-0.24314034,
-0.74114823,
-0.32066846,
-1.3154507e-2,
-0.50678635,
-0.5137007,
-0.551865,
-0.69038117,
-0.61931777,
-0.70399594,
-0.9727828,
-0.20246375,
-0.85520244,
-5.0735712e-2,
-0.9930371,
-0.30815053,
-0.22076559,
-0.32370973,
-0.17521977,
-0.43994308,
-0.9906125,
-0.5326147,
-0.66132426,
-7.4525714e-2,
-1.51029825e-2,
-3.151095e-2,
-0.8795854,
-0.1700325,
-0.2575338,
-0.75477123,
-0.8775394,
-0.53388363,
-0.7104862,
-0.13311696,
-0.73177624,
-0.19375706,
-0.88381815,
-0.75322676,
-0.6076188,
-0.48591495,
-0.53411245,
-0.7115935,
-0.48955488,
-0.59558845,
-0.9807129,
-0.8284396,
-0.95038444,
-0.59036994,
-0.52881944,
-0.9948325,
-0.49523282,
-0.7008028,
-0.78729224,
-0.9902679,
-0.5339551,
-4.0822983e-2,
-0.37561977,
-0.5063989,
-0.28711128,
-0.32709387,
-0.8450576,
-0.64256006,
-0.906507,
-4.6909094e-2,
-0.637144,
-0.16923797,
-0.7377299,
-0.30585575,
-0.3570485,
-0.98593795,
-0.5611129,
-7.524538e-2,
-0.8517368,
-0.74607563,
-0.4913547,
-0.83715105,
-0.59740007,
-0.9108657,
-0.14394355,
-8.5148096e-2,
-0.582165,
-2.120018e-3,
-0.705053,
-0.97463274,
-0.58965266,
-0.6484089,
-0.79429245,
-0.7779026,
-0.3388164,
-0.35976696,
-9.1204405e-2,
-0.6134187,
-0.8495743,
-0.9256909,
-0.8651266,
-0.19850588,
-0.7568064,
-0.44688892,
-0.89375556,
-0.28960586,
-0.5118885,
-0.39481246,
-0.23119497,
-0.99098516,
-0.6882521,
-2.3570538e-2,
-0.46816385,
-0.43301296,
-5.7090998e-2,
-0.7131885,
-0.49999893,
-0.8016077,
-0.6981158,
-0.7528713,
-0.50114954,
-0.86821973,
-0.88443303,
-0.4772892,
-0.80758643,
-0.38138628,
-8.940506e-2,
-0.6924608,
-0.52786016,
-0.802331,
-0.98923236,
-0.17653704,
-0.68997073,
-0.1820991,
-0.64604473,
-0.38469362,
-0.8968754,
-0.15813422,
-0.868925,
-4.019952e-2,
-0.25560212,
-0.3128089,
-0.41993904,
-0.948833,
-0.826739,
-0.10151219,
-0.787004,
-0.9594268,
-0.14901423,
-0.1414566,
-0.24321175,
-9.9901915e-2,
-0.8921989,
-0.32741654,
-0.6458428,
-0.16487455,
-0.12096548,
-0.48751688,
-5.245471e-2,
-0.71360433,
-0.94619334,
-0.2514913,
-0.31235778,
-0.3618456,
-0.57202005,
-8.347988e-3,
-0.1945982,
-0.6956324,
-0.9895966,
-0.87327766,
-0.26017582,
-0.47406793,
-0.9971419,
-0.5826107,
-0.17589438,
-0.89086056,
-0.18030643,
-0.4091003,
-0.39576983,
-0.38442576,
-0.13684058,
-8.986688e-2,
-0.17313194,
-0.7679503,
-0.36211073,
-0.82255757,
-0.9100534,
-0.6802888,
-0.11309266,
-0.47404623,
-0.8113966,
-0.42064667,
-0.42901254,
-0.14277196,
-0.1055603,
-0.57029915,
-0.5498085,
-0.71666944,
-0.13909936,
-6.697273e-2,
-0.30388212,
-0.84999645,
-0.61905026,
-0.80875367,
-0.7628211,
-0.7617794,
-0.24128532,
-0.8171586,
-0.7165446,
-0.29046047,
-5.484104e-3,
-0.29707146,
-0.45159855,
-0.8470775,
-0.9105661,
-0.6157371,
-0.24743724,
-0.26728547,
-0.3399787,
-0.30999124,
-0.27707434,
-0.26195288,
-0.57788026,
-0.98340875,
-0.7114443,
-0.10142648,
-0.8840177,
-0.3299948,
-0.27686334,
-0.66194046,
-0.5837232,
-0.34851027,
-0.61612344,
-0.60064816,
-2.1667004e-2,
-0.51634264,
-0.5840348,
-0.54137635,
-0.93811476,
-0.88630515,
-0.35464,
-0.659227,
-0.74290437,
-0.6366904,
-0.12916958,
-0.19237244,
-4.462242e-3,
-8.1073284e-2,
-0.847996,
-0.8305576,
-9.401786e-2,
-0.17688239,
-0.36067092,
-0.56400156,
-0.4449073,
-0.80550474,
-0.94339013,
-0.2624426,
-0.43337846,
-0.79860497,
-0.9083978,
-7.7695847e-3,
-0.28432655,
-0.8844242,
-0.43196678,
-0.5022042,
-0.71939504,
-0.87787163,
-2.2063255e-2,
-0.5932679,
-0.88764143,
-0.6470535,
-2.7034998e-2,
-0.72032475,
-0.19539523,
-0.77757996,
-0.37001276,
-0.84153897,
-0.6239723,
-0.3756181,
-6.846321e-2,
-0.8378935,
-0.59974074,
-0.68847823,
-0.7352172,
-1.07290745e-2,
-0.5101199,
-0.85353947,
-0.14964247,
-0.5860499,
-0.17709386,
-0.89342284,
-0.17894697,
-0.5400078,
-0.4210199,
-0.23370409,
-0.5818304,
-0.68282104,
-5.1081896e-2,
-0.9042077,
-0.3783505,
-0.44932246,
-0.6200993,
-0.18954074,
-0.4474795,
-0.31125343,
-0.8426063,
-6.332576e-2,
-0.8104075,
-0.8648635,
-0.44148827,
-0.84095,
-0.79439354,
-0.5551748,
-0.687835,
-0.118896365,
-0.4412912,
-0.57976437,
-0.6679896,
-0.30952072,
-0.35373104,
-0.18037248,
-9.540319e-3,
-0.48488736,
-0.1673789,
-0.73954326,
-0.56652427,
-0.49777925,
-0.5246444,
-0.6702163,
-0.87621975,
-0.359416,
-0.832193,
-0.18441534,
-0.20517778,
-0.32071996,
-0.65496826,
-3.7642956e-2,
-0.5331861,
-0.29038882,
-0.35165787,
-0.655563,
-0.7891048,
-0.14961207,
-1.6696453e-3,
-0.47526348,
-0.82897127,
-4.0933132e-2,
-0.24862742,
-0.44936025,
-0.2355707,
-0.13713741,
-0.7814115,
-0.80927956,
-0.583858,
-0.7193563,
-0.19353557,
-0.36663485,
-0.107114315,
-0.72664094,
-0.121150136,
-0.6676494,
-0.3600223,
-0.90352046,
-0.9873058,
-0.8213589,
-0.4037695,
-0.42661357,
-0.8075288,
-0.49739814,
-0.708357,
-0.89534307,
-2.7906299e-2,
-0.5197699,
-0.5873811,
-0.37502038,
-0.25809133,
-0.41655612,
-0.35278225,
-0.16273963,
-0.66940236,
-0.97849786,
-0.28304625,
-0.6673634,
-0.19332111,
-0.7478994,
-0.59783196,
-7.6501966e-2,
-0.32878637,
-0.5024115,
-0.7220932,
-0.8336895,
-0.56268775,
-0.89503884,
-0.9931685,
-0.3670969,
-0.6999072,
-0.77585983,
-0.31907177,
-0.76584256,
-4.325044e-2,
-0.29987824,
-0.89478886,
-0.21245062,
-0.2749796,
-0.27403784,
-0.12384033,
-8.77223e-2,
-0.6968431,
-0.41428828,
-0.86889815,
-0.93862987,
-0.28137636,
-0.4471743,
-0.2681458,
-0.16012955,
-0.62948954,
-0.7444658,
-0.57012916,
-0.10132849,
-0.8278511,
-0.19847322,
-0.50814533,
-0.62132853,
-0.18225956,
-0.16162908,
-0.43761563,
-0.10031223,
-0.75076735,
-0.75551176,
-0.5453377,
-0.5066473,
-0.42767167,
-0.5992305,
-0.9446988,
-0.41565955,
-0.9331987,
-0.9897334,
-0.89694524,
-0.6788764,
-0.85561335,
-0.6666684,
-0.80166984,
-0.40720224,
-0.86944854,
-0.92634535,
-0.27878547,
-0.8053527,
-0.6522385,
-0.5152416,
-0.17939234,
-0.24954629,
-0.6818764,
-0.7267182,
-0.36313987,
-9.25622e-2,
-0.84685767,
-0.4344505,
-0.692098,
-0.34008884,
-5.9524536e-2,
-3.827691e-2,
-0.9333053,
-0.2090958,
-0.5924697,
-0.61903036,
-0.30183077,
-0.4231342,
-0.49257803,
-0.83910036,
-0.43436274,
-0.9565089,
-0.2666788,
-4.047084e-2,
-0.41260076,
-0.84976804,
-0.9851905,
-0.62259483,
-0.8959986,
-0.31737566,
-0.3398435,
-0.27567053,
-0.9734041,
-0.77031887,
-0.8473544,
-0.3174919,
-0.58769834,
-0.34807217,
-0.5406821,
-0.8544055,
-0.62600684,
-0.33839083,
-0.9849396,
-1.2942314e-2,
-0.1475277,
-0.4787073,
-0.54596233,
-0.1752423,
-0.77059823,
-9.041047e-2,
-0.2985853,
-0.23247159,
-0.23486897,
-0.23700523,
-0.47728157,
-0.49480152,
-0.72553325,
-0.19682777,
-0.88427216,
-6.551409e-2,
-0.6175699,
-0.8277023,
-0.2039113,
-0.9962605,
-0.9707756,
-9.154308e-2,
-0.123990774,
-0.41500008,
-0.45899975,
-0.7904736,
-0.64120626,
-0.29223895,
-0.48712683,
-0.16071367,
-0.7799654,
-0.7871841,
-0.34515953,
-0.24462819,
-0.7682588,
-0.45865273,
-0.97019315,
-0.52276766,
-1.2032986e-3,
-0.2552061,
-0.35652947,
-1.6108036e-2,
-0.22363806,
-6.0125113e-2,
-0.6667728,
-0.13875532,
-0.48999977,
-0.21847558,
-0.12436485,
-0.6117995,
-0.96883655,
-0.7170677,
-0.7637136,
-0.50507927,
-0.88803625,
-0.6205857,
-0.22137904,
-0.97533226,
-0.9804591,
-0.97967625,
-7.506108e-2,
-0.27170992,
-0.8107689,
-0.76826,
-0.8306192,
-0.77724457,
-0.80831075,
-0.76732874,
-8.157933e-2,
-0.3223102,
-0.8257649,
-0.973259,
-7.5988054e-2,
-0.5415702,
-0.25776172,
-0.76154125,
-0.91835296,
-0.837816,
-0.68698716,
-0.99165297,
-0.36068523,
-0.53661215,
-0.94795275,
-0.24835014,
-0.53556097,
-0.7917472,
-0.17282593,
-0.44980502,
-0.8159183,
-0.2109356,
-8.1673145e-2,
-0.9069164,
-0.8804593,
-0.38818514,
-0.42148066,
-0.84182596,
-0.85033655,
-0.11290777,
-0.9591603,
-0.9008815,
-0.12636256,
-0.62351793,
-0.5625932,
-0.40783405,
-0.9398462,
-0.9048507,
-0.70350707,
-0.5732843,
-0.9578413,
-0.471671,
-0.80402017,
-0.23877287,
-2.8808951e-2,
-0.79105496,
-0.39669204,
-0.5252528,
-5.068612e-2,
-0.17306566,
-0.33026814,
-0.8069451,
-0.774801,
-0.29274237,
-0.9410742,
-0.24736834,
-0.45892864,
-0.32286835,
-9.423089e-2,
-0.23926187,
-0.938661,
-0.11605501,
-0.7519337,
-0.44994712,
-0.8859633,
-0.79223514,
-0.7983874,
-7.165241e-2,
-0.9462296,
-0.8046231,
-0.9736757,
-0.9235935,
-0.85922825,
-0.14425218,
-0.96055603,
-0.4746909,
-0.3689847,
-0.3266207,
-0.6575446,
-0.90298265,
-0.612165,
-0.94542164,
-4.7265768e-2,
-0.9178722,
-0.7290449,
-0.7926531,
-0.8426634,
-0.79898036,
-1.8381119e-2,
-5.914831e-2,
-0.5302744,
-0.3689797,
-0.4085008,
-8.593702e-2,
-0.8765965,
-2.9750824e-2,
-0.23264515,
-0.15577197,
-0.21319818,
-0.21833336,
-0.3431382,
-0.6172347,
-0.5659256,
-0.9447398,
-0.7262399,
-0.7598543,
-0.56384385,
-0.845103,
-0.4162705,
-0.13864326,
-0.7863791,
-0.13542509,
-0.6184137,
-0.2607739,
-0.15591526,
-0.77601504,
-0.76669025,
-0.56118643,
-1.807928e-2,
-0.31010872,
-0.8704659,
-0.98514426,
-0.40933478,
-0.1785686,
-0.48007095,
-8.039451e-2,
-3.796923e-2,
-0.8610754,
-0.9595243,
-0.9287634,
-7.802105e-2,
-0.8274702,
-0.6773733,
-0.97041106,
-0.2371938,
-0.7191273,
-0.36731863,
-0.6625139,
-0.3092258,
-0.47899795,
-2.6395798e-2,
-4.1056633e-2,
-0.7962029,
-0.5768552,
-0.5356126,
-1.3688564e-2,
-0.41969243,
-0.8178707,
-0.5881722,
-0.4442004,
-0.42637897,
-0.76563597,
-8.336306e-3,
-3.3709526e-2,
-0.53669834,
-0.53756106,
-0.31038988,
-0.41079557,
-0.39238024,
-0.24557912,
-9.8520994e-2,
-0.6807518,
-0.12773252,
-0.67073166,
-0.34699106,
-0.9979162,
-0.42680383,
-0.9087982,
-0.6900128,
-0.94652975,
-0.17221642,
-0.33502197,
-0.30609477,
-0.70375323,
-0.41938114,
-0.8668362,
-0.77143216,
-8.8229895e-2,
-0.18202114,
-0.21520734,
-0.10074675,
-0.38907886,
-5.9812307e-2,
-0.62150526,
-0.99084735,
-0.31110406,
-0.7914846,
-0.8661854,
-0.518523,
-0.6151075,
-0.9395801,
-0.4002422,
-0.35337317,
-0.40262416,
-0.7039368,
-0.935411,
-1.2230396e-2,
-0.6683055,
-0.11150932,
-5.5537343e-2,
-8.355498e-2,
-0.6007279,
-0.4403205,
-0.5811975,
-0.86318696,
-5.6501627e-2,
-0.23753202,
-0.9949539,
-0.64893156,
-0.90060663,
-0.14257383,
-0.8300431,
-0.37252688,
-0.18130136,
-0.20323014,
-0.4809363,
-0.8961161,
-0.23287201,
-0.43141174,
-0.3489914,
-0.51495457,
-0.8010473,
-0.23635447,
-0.54324985,
-0.69954085,
-0.48034823,
-0.68947554,
-0.77823305,
-0.7533914,
-0.24090028,
-0.8162971,
-0.46965337,
-0.59434736,
-0.1630373,
-0.6848186,
-1.57516e-2,
-0.8775939,
-0.99723464,
-0.4292655,
-0.47325504,
-0.8548535,
-0.4219792,
-0.7294735,
-0.77217937,
-0.8508531,
-0.117975116,
-0.36563516,
-0.37111998,
-0.3301561,
-6.940341e-2,
-0.5864358,
-0.113250256,
-0.67253065,
-0.8080728,
-0.44792616,
-0.34973896,
-0.25323582]
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith009.hs b/testsuite/tests/ghc-regress/numeric/should_run/arith009.hs
deleted file mode 100644
index 43fe1b2923..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith009.hs
+++ /dev/null
@@ -1,6 +0,0 @@
--- a prefix minus precedence test
-
-f :: Int -> Int -> Int -> Int
-f x y z = - x * y ^ z
-
-main = putStr (shows (f 5 2 3) "\n")
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith009.stdout b/testsuite/tests/ghc-regress/numeric/should_run/arith009.stdout
deleted file mode 100644
index 949a11b741..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith009.stdout
+++ /dev/null
@@ -1 +0,0 @@
--40
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith010.hs b/testsuite/tests/ghc-regress/numeric/should_run/arith010.hs
deleted file mode 100644
index 846f76e4d1..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith010.hs
+++ /dev/null
@@ -1,11 +0,0 @@
--- Tests enumerations
-
-main = do
- print [1..10]
- print [10..1] -- []
- print [1,3..10]
- print [10,8..1]
- print ['a'..'f']
- print ['f'..'a'] -- []
- print ['a','c'..'m']
- print ['m','l'..'a']
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith010.stdout b/testsuite/tests/ghc-regress/numeric/should_run/arith010.stdout
deleted file mode 100644
index e6a2b37721..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith010.stdout
+++ /dev/null
@@ -1,8 +0,0 @@
-[1,2,3,4,5,6,7,8,9,10]
-[]
-[1,3,5,7,9]
-[10,8,6,4,2]
-"abcdef"
-""
-"acegikm"
-"mlkjihgfedcba"
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith011.hs b/testsuite/tests/ghc-regress/numeric/should_run/arith011.hs
deleted file mode 100644
index 308cc824a6..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith011.hs
+++ /dev/null
@@ -1,174 +0,0 @@
--- !!! Testing Int and Word
-module Main(main) where
-import Data.Int
-import Data.Word
-import Data.Bits
-import Data.Ix -- added SOF
-import Control.Exception
-
-main :: IO ()
-main = test
-
-test :: IO ()
-test = do
- testIntlike "Int" (0::Int)
- testIntlike "Int8" (0::Int8)
- testIntlike "Int16" (0::Int16)
- testIntlike "Int32" (0::Int32)
- testIntlike "Int64" (0::Int64)
- testIntlike "Word8" (0::Word8)
- testIntlike "Word16" (0::Word16)
- testIntlike "Word32" (0::Word32)
- testIntlike "Word64" (0::Word64)
- testInteger
-
-testIntlike :: (Bounded a, Integral a, Ix a, Read a, Bits a) => String -> a -> IO ()
-testIntlike name zero = do
- putStrLn $ "--------------------------------"
- putStrLn $ "--Testing " ++ name
- putStrLn $ "--------------------------------"
- testBounded zero
- testEnum zero
- testReadShow zero
- testEq zero
- testOrd zero
- testNum zero
- testReal zero
- testIntegral zero
- testConversions zero
- testBits zero True
-
-testInteger = do
- let zero = 0 :: Integer
- putStrLn $ "--------------------------------"
- putStrLn $ "--Testing Integer"
- putStrLn $ "--------------------------------"
- testEnum zero
- testReadShow zero
- testEq zero
- testOrd zero
- testNum zero
- testReal zero
- testIntegral zero
- testBits zero False
-
--- In all these tests, zero is a dummy element used to get
--- the overloading to work
-
-testBounded zero = do
- putStrLn "testBounded"
- print $ (minBound-1, minBound, minBound+1) `asTypeOf` (zero,zero,zero)
- print $ (maxBound-1, maxBound, maxBound+1) `asTypeOf` (zero,zero,zero)
-
-testEnum zero = do
- putStrLn "testEnum"
- print $ take 10 [zero .. ] -- enumFrom
- print $ take 10 [zero, toEnum 2 .. ] -- enumFromThen
- print [zero .. toEnum 20] -- enumFromTo
- print [zero, toEnum 2 .. toEnum 20] -- enumFromThenTo
-
-testConversions zero = do
- putStrLn "testConversions"
- putStr "Integer : " >> print (map fromIntegral numbers :: [Integer])
- putStr "Int : " >> print (map fromIntegral numbers :: [Int])
- putStr "Int8 : " >> print (map fromIntegral numbers :: [Int8])
- putStr "Int16 : " >> print (map fromIntegral numbers :: [Int16])
- putStr "Int32 : " >> print (map fromIntegral numbers :: [Int32])
- putStr "Int64 : " >> print (map fromIntegral numbers :: [Int64])
- putStr "Word8 : " >> print (map fromIntegral numbers :: [Word8])
- putStr "Word16 : " >> print (map fromIntegral numbers :: [Word16])
- putStr "Word32 : " >> print (map fromIntegral numbers :: [Word32])
- putStr "Word64 : " >> print (map fromIntegral numbers :: [Word64])
- where numbers = [minBound, 0, maxBound] `asTypeOf` [zero]
-
-samples :: (Num a) => a -> [a]
-samples zero = map fromInteger ([-3 .. -1]++[0 .. 3])
-
-table1 :: (Show a, Show b) => String -> (a -> b) -> [a] -> IO ()
-table1 nm f xs = do
- sequence [ f' x | x <- xs ]
- putStrLn "#"
- where
- f' x = putStrLn (nm ++ " " ++ show x ++ " = " ++ show (f x))
-
-table2 :: (Show a, Show b, Show c) => String -> (a -> b -> c) -> [a] -> [b] -> IO ()
-table2 nm op xs ys = do
- sequence [ sequence [ op' x y | y <- ys ] >> putStrLn " "
- | x <- xs
- ]
- putStrLn "#"
- where
- op' x y = do s <- Control.Exception.catch
- (evaluate (show (op x y)))
- (\e -> return (show (e :: SomeException)))
- putStrLn (show x ++ " " ++ nm ++ " " ++ show y ++ " = " ++ s)
-
-testReadShow zero = do
- putStrLn "testReadShow"
- print xs
- print (map read_show xs)
- where
- xs = samples zero
- read_show x = (read (show x) `asTypeOf` zero)
-
-testEq zero = do
- putStrLn "testEq"
- table2 "==" (==) xs xs
- table2 "/=" (/=) xs xs
- where
- xs = samples zero
-
-testOrd zero = do
- putStrLn "testOrd"
- table2 "<=" (<=) xs xs
- table2 "< " (<) xs xs
- table2 "> " (>) xs xs
- table2 ">=" (>=) xs xs
- table2 "`compare`" compare xs xs
- where
- xs = samples zero
-
-testNum zero = do
- putStrLn "testNum"
- table2 "+" (+) xs xs
- table2 "-" (-) xs xs
- table2 "*" (*) xs xs
- table1 "negate" negate xs
- where
- xs = samples zero
-
-testReal zero = do
- putStrLn "testReal"
- table1 "toRational" toRational xs
- where
- xs = samples zero
-
-testIntegral zero = do
- putStrLn "testIntegral"
- table2 "`divMod` " divMod xs xs
- table2 "`div` " div xs xs
- table2 "`mod` " mod xs xs
- table2 "`quotRem`" quotRem xs xs
- table2 "`quot` " quot xs xs
- table2 "`rem` " rem xs xs
- where
- xs = samples zero
-
-testBits zero do_bitsize = do
- putStrLn "testBits"
- table2 ".&. " (.&.) xs xs
- table2 ".|. " (.|.) xs xs
- table2 "`xor`" xor xs xs
- table1 "complement" complement xs
- table2 "`shiftL`" shiftL xs ([0..3] ++ [32,64])
- table2 "`shiftR`" shiftR xs ([0..3] ++ [32,64])
- table2 "`rotate`" rotate xs ([-3..3] ++ [-64,-32,32,64])
- table1 "bit" (\ x -> (bit x) `asTypeOf` zero) [(0::Int)..3]
- table2 "`setBit`" setBit xs ([0..3] ++ [32,64])
- table2 "`clearBit`" clearBit xs ([0..3] ++ [32,64])
- table2 "`complementBit`" complementBit xs ([0..3] ++ [32,64])
- table2 "`testBit`" testBit xs ([0..3] ++ [32,64])
- if do_bitsize then table1 "bitSize" bitSize xs else return ()
- table1 "isSigned" isSigned xs
- where
- xs = samples zero
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith011.stdout b/testsuite/tests/ghc-regress/numeric/should_run/arith011.stdout
deleted file mode 100644
index 7404c4b353..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith011.stdout
+++ /dev/null
@@ -1,15418 +0,0 @@
---------------------------------
---Testing Int
---------------------------------
-testBounded
-(2147483647,-2147483648,-2147483647)
-(2147483646,2147483647,-2147483648)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 0 = divide by zero
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 0 = divide by zero
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 0 = divide by zero
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 0 = divide by zero
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 0 = divide by zero
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 0 = divide by zero
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 0 = divide by zero
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 0 = divide by zero
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 0 = divide by zero
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 0 = divide by zero
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 0 = divide by zero
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 0 = divide by zero
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 0 = divide by zero
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 0 = divide by zero
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 0 = divide by zero
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 0 = divide by zero
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 0 = divide by zero
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 0 = divide by zero
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [-2147483648,0,2147483647]
-Int : [-2147483648,0,2147483647]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [-2147483648,0,2147483647]
-Int64 : [-2147483648,0,2147483647]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [2147483648,0,2147483647]
-Word64 : [18446744071562067968,0,2147483647]
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 0 = 0
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 0 = 0
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 0 = 0
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 0 = -3
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 0 = -2
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 0 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 0 = -3
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 0 = -2
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 0 = -1
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = 0
--3 `shiftL` 64 = 0
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = 0
--2 `shiftL` 64 = 0
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = 0
--1 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -1073741825
--3 `rotate` -2 = 2147483647
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -5
--3 `rotate` 2 = -9
--3 `rotate` 3 = -17
--3 `rotate` -64 = -3
--3 `rotate` -32 = -3
--3 `rotate` 32 = -3
--3 `rotate` 64 = -3
-
--2 `rotate` -3 = -536870913
--2 `rotate` -2 = -1073741825
--2 `rotate` -1 = 2147483647
--2 `rotate` 0 = -2
--2 `rotate` 1 = -3
--2 `rotate` 2 = -5
--2 `rotate` 3 = -9
--2 `rotate` -64 = -2
--2 `rotate` -32 = -2
--2 `rotate` 32 = -2
--2 `rotate` 64 = -2
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -1
--1 `rotate` 2 = -1
--1 `rotate` 3 = -1
--1 `rotate` -64 = -1
--1 `rotate` -32 = -1
--1 `rotate` 32 = -1
--1 `rotate` 64 = -1
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-0 `rotate` -64 = 0
-0 `rotate` -32 = 0
-0 `rotate` 32 = 0
-0 `rotate` 64 = 0
-
-1 `rotate` -3 = 536870912
-1 `rotate` -2 = 1073741824
-1 `rotate` -1 = -2147483648
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-1 `rotate` -64 = 1
-1 `rotate` -32 = 1
-1 `rotate` 32 = 1
-1 `rotate` 64 = 1
-
-2 `rotate` -3 = 1073741824
-2 `rotate` -2 = -2147483648
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-2 `rotate` -64 = 2
-2 `rotate` -32 = 2
-2 `rotate` 32 = 2
-2 `rotate` 64 = 2
-
-3 `rotate` -3 = 1610612736
-3 `rotate` -2 = -1073741824
-3 `rotate` -1 = -2147483647
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-3 `rotate` -64 = 3
-3 `rotate` -32 = 3
-3 `rotate` 32 = 3
-3 `rotate` 64 = 3
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -3
--3 `clearBit` 64 = -3
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -2
--2 `clearBit` 64 = -2
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -1
--1 `clearBit` 64 = -1
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -3
--3 `complementBit` 64 = -3
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -2
--2 `complementBit` 64 = -2
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -1
--1 `complementBit` 64 = -1
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = False
--3 `testBit` 64 = False
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = False
--2 `testBit` 64 = False
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = False
--1 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize -3 = 32
-bitSize -2 = 32
-bitSize -1 = 32
-bitSize 0 = 32
-bitSize 1 = 32
-bitSize 2 = 32
-bitSize 3 = 32
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
---------------------------------
---Testing Int8
---------------------------------
-testBounded
-(127,-128,-127)
-(126,127,-128)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 0 = divide by zero
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 0 = divide by zero
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 0 = divide by zero
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 0 = divide by zero
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 0 = divide by zero
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 0 = divide by zero
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 0 = divide by zero
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 0 = divide by zero
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 0 = divide by zero
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 0 = divide by zero
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 0 = divide by zero
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 0 = divide by zero
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 0 = divide by zero
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 0 = divide by zero
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 0 = divide by zero
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 0 = divide by zero
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 0 = divide by zero
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 0 = divide by zero
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [-128,0,127]
-Int : [-128,0,127]
-Int8 : [-128,0,127]
-Int16 : [-128,0,127]
-Int32 : [-128,0,127]
-Int64 : [-128,0,127]
-Word8 : [128,0,127]
-Word16 : [65408,0,127]
-Word32 : [4294967168,0,127]
-Word64 : [18446744073709551488,0,127]
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 0 = 0
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 0 = 0
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 0 = 0
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 0 = -3
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 0 = -2
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 0 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 0 = -3
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 0 = -2
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 0 = -1
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = 0
--3 `shiftL` 64 = 0
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = 0
--2 `shiftL` 64 = 0
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = 0
--1 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -65
--3 `rotate` -2 = 127
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -5
--3 `rotate` 2 = -9
--3 `rotate` 3 = -17
--3 `rotate` -64 = -3
--3 `rotate` -32 = -3
--3 `rotate` 32 = -3
--3 `rotate` 64 = -3
-
--2 `rotate` -3 = -33
--2 `rotate` -2 = -65
--2 `rotate` -1 = 127
--2 `rotate` 0 = -2
--2 `rotate` 1 = -3
--2 `rotate` 2 = -5
--2 `rotate` 3 = -9
--2 `rotate` -64 = -2
--2 `rotate` -32 = -2
--2 `rotate` 32 = -2
--2 `rotate` 64 = -2
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -1
--1 `rotate` 2 = -1
--1 `rotate` 3 = -1
--1 `rotate` -64 = -1
--1 `rotate` -32 = -1
--1 `rotate` 32 = -1
--1 `rotate` 64 = -1
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-0 `rotate` -64 = 0
-0 `rotate` -32 = 0
-0 `rotate` 32 = 0
-0 `rotate` 64 = 0
-
-1 `rotate` -3 = 32
-1 `rotate` -2 = 64
-1 `rotate` -1 = -128
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-1 `rotate` -64 = 1
-1 `rotate` -32 = 1
-1 `rotate` 32 = 1
-1 `rotate` 64 = 1
-
-2 `rotate` -3 = 64
-2 `rotate` -2 = -128
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-2 `rotate` -64 = 2
-2 `rotate` -32 = 2
-2 `rotate` 32 = 2
-2 `rotate` 64 = 2
-
-3 `rotate` -3 = 96
-3 `rotate` -2 = -64
-3 `rotate` -1 = -127
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-3 `rotate` -64 = 3
-3 `rotate` -32 = 3
-3 `rotate` 32 = 3
-3 `rotate` 64 = 3
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -3
--3 `clearBit` 64 = -3
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -2
--2 `clearBit` 64 = -2
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -1
--1 `clearBit` 64 = -1
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -3
--3 `complementBit` 64 = -3
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -2
--2 `complementBit` 64 = -2
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -1
--1 `complementBit` 64 = -1
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = False
--3 `testBit` 64 = False
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = False
--2 `testBit` 64 = False
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = False
--1 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize -3 = 8
-bitSize -2 = 8
-bitSize -1 = 8
-bitSize 0 = 8
-bitSize 1 = 8
-bitSize 2 = 8
-bitSize 3 = 8
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
---------------------------------
---Testing Int16
---------------------------------
-testBounded
-(32767,-32768,-32767)
-(32766,32767,-32768)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 0 = divide by zero
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 0 = divide by zero
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 0 = divide by zero
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 0 = divide by zero
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 0 = divide by zero
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 0 = divide by zero
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 0 = divide by zero
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 0 = divide by zero
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 0 = divide by zero
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 0 = divide by zero
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 0 = divide by zero
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 0 = divide by zero
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 0 = divide by zero
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 0 = divide by zero
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 0 = divide by zero
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 0 = divide by zero
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 0 = divide by zero
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 0 = divide by zero
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [-32768,0,32767]
-Int : [-32768,0,32767]
-Int8 : [0,0,-1]
-Int16 : [-32768,0,32767]
-Int32 : [-32768,0,32767]
-Int64 : [-32768,0,32767]
-Word8 : [0,0,255]
-Word16 : [32768,0,32767]
-Word32 : [4294934528,0,32767]
-Word64 : [18446744073709518848,0,32767]
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 0 = 0
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 0 = 0
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 0 = 0
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 0 = -3
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 0 = -2
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 0 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 0 = -3
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 0 = -2
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 0 = -1
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = 0
--3 `shiftL` 64 = 0
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = 0
--2 `shiftL` 64 = 0
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = 0
--1 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -16385
--3 `rotate` -2 = 32767
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -5
--3 `rotate` 2 = -9
--3 `rotate` 3 = -17
--3 `rotate` -64 = -3
--3 `rotate` -32 = -3
--3 `rotate` 32 = -3
--3 `rotate` 64 = -3
-
--2 `rotate` -3 = -8193
--2 `rotate` -2 = -16385
--2 `rotate` -1 = 32767
--2 `rotate` 0 = -2
--2 `rotate` 1 = -3
--2 `rotate` 2 = -5
--2 `rotate` 3 = -9
--2 `rotate` -64 = -2
--2 `rotate` -32 = -2
--2 `rotate` 32 = -2
--2 `rotate` 64 = -2
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -1
--1 `rotate` 2 = -1
--1 `rotate` 3 = -1
--1 `rotate` -64 = -1
--1 `rotate` -32 = -1
--1 `rotate` 32 = -1
--1 `rotate` 64 = -1
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-0 `rotate` -64 = 0
-0 `rotate` -32 = 0
-0 `rotate` 32 = 0
-0 `rotate` 64 = 0
-
-1 `rotate` -3 = 8192
-1 `rotate` -2 = 16384
-1 `rotate` -1 = -32768
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-1 `rotate` -64 = 1
-1 `rotate` -32 = 1
-1 `rotate` 32 = 1
-1 `rotate` 64 = 1
-
-2 `rotate` -3 = 16384
-2 `rotate` -2 = -32768
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-2 `rotate` -64 = 2
-2 `rotate` -32 = 2
-2 `rotate` 32 = 2
-2 `rotate` 64 = 2
-
-3 `rotate` -3 = 24576
-3 `rotate` -2 = -16384
-3 `rotate` -1 = -32767
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-3 `rotate` -64 = 3
-3 `rotate` -32 = 3
-3 `rotate` 32 = 3
-3 `rotate` 64 = 3
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -3
--3 `clearBit` 64 = -3
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -2
--2 `clearBit` 64 = -2
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -1
--1 `clearBit` 64 = -1
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -3
--3 `complementBit` 64 = -3
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -2
--2 `complementBit` 64 = -2
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -1
--1 `complementBit` 64 = -1
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = False
--3 `testBit` 64 = False
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = False
--2 `testBit` 64 = False
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = False
--1 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize -3 = 16
-bitSize -2 = 16
-bitSize -1 = 16
-bitSize 0 = 16
-bitSize 1 = 16
-bitSize 2 = 16
-bitSize 3 = 16
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
---------------------------------
---Testing Int32
---------------------------------
-testBounded
-(2147483647,-2147483648,-2147483647)
-(2147483646,2147483647,-2147483648)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 0 = divide by zero
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 0 = divide by zero
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 0 = divide by zero
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 0 = divide by zero
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 0 = divide by zero
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 0 = divide by zero
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 0 = divide by zero
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 0 = divide by zero
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 0 = divide by zero
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 0 = divide by zero
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 0 = divide by zero
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 0 = divide by zero
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 0 = divide by zero
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 0 = divide by zero
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 0 = divide by zero
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 0 = divide by zero
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 0 = divide by zero
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 0 = divide by zero
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [-2147483648,0,2147483647]
-Int : [-2147483648,0,2147483647]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [-2147483648,0,2147483647]
-Int64 : [-2147483648,0,2147483647]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [2147483648,0,2147483647]
-Word64 : [18446744071562067968,0,2147483647]
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 0 = 0
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 0 = 0
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 0 = 0
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 0 = -3
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 0 = -2
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 0 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 0 = -3
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 0 = -2
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 0 = -1
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = 0
--3 `shiftL` 64 = 0
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = 0
--2 `shiftL` 64 = 0
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = 0
--1 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -1073741825
--3 `rotate` -2 = 2147483647
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -5
--3 `rotate` 2 = -9
--3 `rotate` 3 = -17
--3 `rotate` -64 = -3
--3 `rotate` -32 = -3
--3 `rotate` 32 = -3
--3 `rotate` 64 = -3
-
--2 `rotate` -3 = -536870913
--2 `rotate` -2 = -1073741825
--2 `rotate` -1 = 2147483647
--2 `rotate` 0 = -2
--2 `rotate` 1 = -3
--2 `rotate` 2 = -5
--2 `rotate` 3 = -9
--2 `rotate` -64 = -2
--2 `rotate` -32 = -2
--2 `rotate` 32 = -2
--2 `rotate` 64 = -2
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -1
--1 `rotate` 2 = -1
--1 `rotate` 3 = -1
--1 `rotate` -64 = -1
--1 `rotate` -32 = -1
--1 `rotate` 32 = -1
--1 `rotate` 64 = -1
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-0 `rotate` -64 = 0
-0 `rotate` -32 = 0
-0 `rotate` 32 = 0
-0 `rotate` 64 = 0
-
-1 `rotate` -3 = 536870912
-1 `rotate` -2 = 1073741824
-1 `rotate` -1 = -2147483648
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-1 `rotate` -64 = 1
-1 `rotate` -32 = 1
-1 `rotate` 32 = 1
-1 `rotate` 64 = 1
-
-2 `rotate` -3 = 1073741824
-2 `rotate` -2 = -2147483648
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-2 `rotate` -64 = 2
-2 `rotate` -32 = 2
-2 `rotate` 32 = 2
-2 `rotate` 64 = 2
-
-3 `rotate` -3 = 1610612736
-3 `rotate` -2 = -1073741824
-3 `rotate` -1 = -2147483647
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-3 `rotate` -64 = 3
-3 `rotate` -32 = 3
-3 `rotate` 32 = 3
-3 `rotate` 64 = 3
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -3
--3 `clearBit` 64 = -3
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -2
--2 `clearBit` 64 = -2
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -1
--1 `clearBit` 64 = -1
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -3
--3 `complementBit` 64 = -3
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -2
--2 `complementBit` 64 = -2
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -1
--1 `complementBit` 64 = -1
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = False
--3 `testBit` 64 = False
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = False
--2 `testBit` 64 = False
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = False
--1 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize -3 = 32
-bitSize -2 = 32
-bitSize -1 = 32
-bitSize 0 = 32
-bitSize 1 = 32
-bitSize 2 = 32
-bitSize 3 = 32
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
---------------------------------
---Testing Int64
---------------------------------
-testBounded
-(9223372036854775807,-9223372036854775808,-9223372036854775807)
-(9223372036854775806,9223372036854775807,-9223372036854775808)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 0 = divide by zero
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 0 = divide by zero
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 0 = divide by zero
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 0 = divide by zero
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 0 = divide by zero
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 0 = divide by zero
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 0 = divide by zero
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 0 = divide by zero
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 0 = divide by zero
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 0 = divide by zero
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 0 = divide by zero
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 0 = divide by zero
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 0 = divide by zero
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 0 = divide by zero
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 0 = divide by zero
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 0 = divide by zero
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 0 = divide by zero
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 0 = divide by zero
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [-9223372036854775808,0,9223372036854775807]
-Int : [0,0,-1]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [0,0,-1]
-Int64 : [-9223372036854775808,0,9223372036854775807]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [0,0,4294967295]
-Word64 : [9223372036854775808,0,9223372036854775807]
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 0 = 0
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 0 = 0
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 0 = 0
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 0 = -3
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 0 = -2
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 0 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 0 = -3
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 0 = -2
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 0 = -1
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = -12884901888
--3 `shiftL` 64 = 0
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = -8589934592
--2 `shiftL` 64 = 0
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = -4294967296
--1 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 4294967296
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 8589934592
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 12884901888
-3 `shiftL` 64 = 0
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -4611686018427387905
--3 `rotate` -2 = 9223372036854775807
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -5
--3 `rotate` 2 = -9
--3 `rotate` 3 = -17
--3 `rotate` -64 = -3
--3 `rotate` -32 = -8589934593
--3 `rotate` 32 = -8589934593
--3 `rotate` 64 = -3
-
--2 `rotate` -3 = -2305843009213693953
--2 `rotate` -2 = -4611686018427387905
--2 `rotate` -1 = 9223372036854775807
--2 `rotate` 0 = -2
--2 `rotate` 1 = -3
--2 `rotate` 2 = -5
--2 `rotate` 3 = -9
--2 `rotate` -64 = -2
--2 `rotate` -32 = -4294967297
--2 `rotate` 32 = -4294967297
--2 `rotate` 64 = -2
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -1
--1 `rotate` 2 = -1
--1 `rotate` 3 = -1
--1 `rotate` -64 = -1
--1 `rotate` -32 = -1
--1 `rotate` 32 = -1
--1 `rotate` 64 = -1
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-0 `rotate` -64 = 0
-0 `rotate` -32 = 0
-0 `rotate` 32 = 0
-0 `rotate` 64 = 0
-
-1 `rotate` -3 = 2305843009213693952
-1 `rotate` -2 = 4611686018427387904
-1 `rotate` -1 = -9223372036854775808
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-1 `rotate` -64 = 1
-1 `rotate` -32 = 4294967296
-1 `rotate` 32 = 4294967296
-1 `rotate` 64 = 1
-
-2 `rotate` -3 = 4611686018427387904
-2 `rotate` -2 = -9223372036854775808
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-2 `rotate` -64 = 2
-2 `rotate` -32 = 8589934592
-2 `rotate` 32 = 8589934592
-2 `rotate` 64 = 2
-
-3 `rotate` -3 = 6917529027641081856
-3 `rotate` -2 = -4611686018427387904
-3 `rotate` -1 = -9223372036854775807
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-3 `rotate` -64 = 3
-3 `rotate` -32 = 12884901888
-3 `rotate` 32 = 12884901888
-3 `rotate` 64 = 3
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 4294967296
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 4294967297
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 4294967298
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 4294967299
-3 `setBit` 64 = 3
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -4294967299
--3 `clearBit` 64 = -3
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -4294967298
--2 `clearBit` 64 = -2
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -4294967297
--1 `clearBit` 64 = -1
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -4294967299
--3 `complementBit` 64 = -3
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -4294967298
--2 `complementBit` 64 = -2
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -4294967297
--1 `complementBit` 64 = -1
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 4294967296
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 4294967297
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 4294967298
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 4294967299
-3 `complementBit` 64 = 3
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = True
--3 `testBit` 64 = False
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = True
--2 `testBit` 64 = False
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = True
--1 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize -3 = 64
-bitSize -2 = 64
-bitSize -1 = 64
-bitSize 0 = 64
-bitSize 1 = 64
-bitSize 2 = 64
-bitSize 3 = 64
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
---------------------------------
---Testing Word8
---------------------------------
-testBounded
-(255,0,1)
-(254,255,0)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[253,254,255,0,1,2,3]
-[253,254,255,0,1,2,3]
-testEq
-253 == 253 = True
-253 == 254 = False
-253 == 255 = False
-253 == 0 = False
-253 == 1 = False
-253 == 2 = False
-253 == 3 = False
-
-254 == 253 = False
-254 == 254 = True
-254 == 255 = False
-254 == 0 = False
-254 == 1 = False
-254 == 2 = False
-254 == 3 = False
-
-255 == 253 = False
-255 == 254 = False
-255 == 255 = True
-255 == 0 = False
-255 == 1 = False
-255 == 2 = False
-255 == 3 = False
-
-0 == 253 = False
-0 == 254 = False
-0 == 255 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == 253 = False
-1 == 254 = False
-1 == 255 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == 253 = False
-2 == 254 = False
-2 == 255 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == 253 = False
-3 == 254 = False
-3 == 255 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
-253 /= 253 = False
-253 /= 254 = True
-253 /= 255 = True
-253 /= 0 = True
-253 /= 1 = True
-253 /= 2 = True
-253 /= 3 = True
-
-254 /= 253 = True
-254 /= 254 = False
-254 /= 255 = True
-254 /= 0 = True
-254 /= 1 = True
-254 /= 2 = True
-254 /= 3 = True
-
-255 /= 253 = True
-255 /= 254 = True
-255 /= 255 = False
-255 /= 0 = True
-255 /= 1 = True
-255 /= 2 = True
-255 /= 3 = True
-
-0 /= 253 = True
-0 /= 254 = True
-0 /= 255 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= 253 = True
-1 /= 254 = True
-1 /= 255 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= 253 = True
-2 /= 254 = True
-2 /= 255 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= 253 = True
-3 /= 254 = True
-3 /= 255 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
-253 <= 253 = True
-253 <= 254 = True
-253 <= 255 = True
-253 <= 0 = False
-253 <= 1 = False
-253 <= 2 = False
-253 <= 3 = False
-
-254 <= 253 = False
-254 <= 254 = True
-254 <= 255 = True
-254 <= 0 = False
-254 <= 1 = False
-254 <= 2 = False
-254 <= 3 = False
-
-255 <= 253 = False
-255 <= 254 = False
-255 <= 255 = True
-255 <= 0 = False
-255 <= 1 = False
-255 <= 2 = False
-255 <= 3 = False
-
-0 <= 253 = True
-0 <= 254 = True
-0 <= 255 = True
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= 253 = True
-1 <= 254 = True
-1 <= 255 = True
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= 253 = True
-2 <= 254 = True
-2 <= 255 = True
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= 253 = True
-3 <= 254 = True
-3 <= 255 = True
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
-253 < 253 = False
-253 < 254 = True
-253 < 255 = True
-253 < 0 = False
-253 < 1 = False
-253 < 2 = False
-253 < 3 = False
-
-254 < 253 = False
-254 < 254 = False
-254 < 255 = True
-254 < 0 = False
-254 < 1 = False
-254 < 2 = False
-254 < 3 = False
-
-255 < 253 = False
-255 < 254 = False
-255 < 255 = False
-255 < 0 = False
-255 < 1 = False
-255 < 2 = False
-255 < 3 = False
-
-0 < 253 = True
-0 < 254 = True
-0 < 255 = True
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < 253 = True
-1 < 254 = True
-1 < 255 = True
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < 253 = True
-2 < 254 = True
-2 < 255 = True
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < 253 = True
-3 < 254 = True
-3 < 255 = True
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
-253 > 253 = False
-253 > 254 = False
-253 > 255 = False
-253 > 0 = True
-253 > 1 = True
-253 > 2 = True
-253 > 3 = True
-
-254 > 253 = True
-254 > 254 = False
-254 > 255 = False
-254 > 0 = True
-254 > 1 = True
-254 > 2 = True
-254 > 3 = True
-
-255 > 253 = True
-255 > 254 = True
-255 > 255 = False
-255 > 0 = True
-255 > 1 = True
-255 > 2 = True
-255 > 3 = True
-
-0 > 253 = False
-0 > 254 = False
-0 > 255 = False
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > 253 = False
-1 > 254 = False
-1 > 255 = False
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > 253 = False
-2 > 254 = False
-2 > 255 = False
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > 253 = False
-3 > 254 = False
-3 > 255 = False
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
-253 >= 253 = True
-253 >= 254 = False
-253 >= 255 = False
-253 >= 0 = True
-253 >= 1 = True
-253 >= 2 = True
-253 >= 3 = True
-
-254 >= 253 = True
-254 >= 254 = True
-254 >= 255 = False
-254 >= 0 = True
-254 >= 1 = True
-254 >= 2 = True
-254 >= 3 = True
-
-255 >= 253 = True
-255 >= 254 = True
-255 >= 255 = True
-255 >= 0 = True
-255 >= 1 = True
-255 >= 2 = True
-255 >= 3 = True
-
-0 >= 253 = False
-0 >= 254 = False
-0 >= 255 = False
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= 253 = False
-1 >= 254 = False
-1 >= 255 = False
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= 253 = False
-2 >= 254 = False
-2 >= 255 = False
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= 253 = False
-3 >= 254 = False
-3 >= 255 = False
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
-253 `compare` 253 = EQ
-253 `compare` 254 = LT
-253 `compare` 255 = LT
-253 `compare` 0 = GT
-253 `compare` 1 = GT
-253 `compare` 2 = GT
-253 `compare` 3 = GT
-
-254 `compare` 253 = GT
-254 `compare` 254 = EQ
-254 `compare` 255 = LT
-254 `compare` 0 = GT
-254 `compare` 1 = GT
-254 `compare` 2 = GT
-254 `compare` 3 = GT
-
-255 `compare` 253 = GT
-255 `compare` 254 = GT
-255 `compare` 255 = EQ
-255 `compare` 0 = GT
-255 `compare` 1 = GT
-255 `compare` 2 = GT
-255 `compare` 3 = GT
-
-0 `compare` 253 = LT
-0 `compare` 254 = LT
-0 `compare` 255 = LT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` 253 = LT
-1 `compare` 254 = LT
-1 `compare` 255 = LT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` 253 = LT
-2 `compare` 254 = LT
-2 `compare` 255 = LT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` 253 = LT
-3 `compare` 254 = LT
-3 `compare` 255 = LT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
-253 + 253 = 250
-253 + 254 = 251
-253 + 255 = 252
-253 + 0 = 253
-253 + 1 = 254
-253 + 2 = 255
-253 + 3 = 0
-
-254 + 253 = 251
-254 + 254 = 252
-254 + 255 = 253
-254 + 0 = 254
-254 + 1 = 255
-254 + 2 = 0
-254 + 3 = 1
-
-255 + 253 = 252
-255 + 254 = 253
-255 + 255 = 254
-255 + 0 = 255
-255 + 1 = 0
-255 + 2 = 1
-255 + 3 = 2
-
-0 + 253 = 253
-0 + 254 = 254
-0 + 255 = 255
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + 253 = 254
-1 + 254 = 255
-1 + 255 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + 253 = 255
-2 + 254 = 0
-2 + 255 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + 253 = 0
-3 + 254 = 1
-3 + 255 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
-253 - 253 = 0
-253 - 254 = 255
-253 - 255 = 254
-253 - 0 = 253
-253 - 1 = 252
-253 - 2 = 251
-253 - 3 = 250
-
-254 - 253 = 1
-254 - 254 = 0
-254 - 255 = 255
-254 - 0 = 254
-254 - 1 = 253
-254 - 2 = 252
-254 - 3 = 251
-
-255 - 253 = 2
-255 - 254 = 1
-255 - 255 = 0
-255 - 0 = 255
-255 - 1 = 254
-255 - 2 = 253
-255 - 3 = 252
-
-0 - 253 = 3
-0 - 254 = 2
-0 - 255 = 1
-0 - 0 = 0
-0 - 1 = 255
-0 - 2 = 254
-0 - 3 = 253
-
-1 - 253 = 4
-1 - 254 = 3
-1 - 255 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = 255
-1 - 3 = 254
-
-2 - 253 = 5
-2 - 254 = 4
-2 - 255 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = 255
-
-3 - 253 = 6
-3 - 254 = 5
-3 - 255 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
-253 * 253 = 9
-253 * 254 = 6
-253 * 255 = 3
-253 * 0 = 0
-253 * 1 = 253
-253 * 2 = 250
-253 * 3 = 247
-
-254 * 253 = 6
-254 * 254 = 4
-254 * 255 = 2
-254 * 0 = 0
-254 * 1 = 254
-254 * 2 = 252
-254 * 3 = 250
-
-255 * 253 = 3
-255 * 254 = 2
-255 * 255 = 1
-255 * 0 = 0
-255 * 1 = 255
-255 * 2 = 254
-255 * 3 = 253
-
-0 * 253 = 0
-0 * 254 = 0
-0 * 255 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * 253 = 253
-1 * 254 = 254
-1 * 255 = 255
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * 253 = 250
-2 * 254 = 252
-2 * 255 = 254
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * 253 = 247
-3 * 254 = 250
-3 * 255 = 253
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate 253 = 3
-negate 254 = 2
-negate 255 = 1
-negate 0 = 0
-negate 1 = 255
-negate 2 = 254
-negate 3 = 253
-#
-testReal
-toRational 253 = 253 % 1
-toRational 254 = 254 % 1
-toRational 255 = 255 % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
-253 `divMod` 253 = (1,0)
-253 `divMod` 254 = (0,253)
-253 `divMod` 255 = (0,253)
-253 `divMod` 0 = divide by zero
-253 `divMod` 1 = (253,0)
-253 `divMod` 2 = (126,1)
-253 `divMod` 3 = (84,1)
-
-254 `divMod` 253 = (1,1)
-254 `divMod` 254 = (1,0)
-254 `divMod` 255 = (0,254)
-254 `divMod` 0 = divide by zero
-254 `divMod` 1 = (254,0)
-254 `divMod` 2 = (127,0)
-254 `divMod` 3 = (84,2)
-
-255 `divMod` 253 = (1,2)
-255 `divMod` 254 = (1,1)
-255 `divMod` 255 = (1,0)
-255 `divMod` 0 = divide by zero
-255 `divMod` 1 = (255,0)
-255 `divMod` 2 = (127,1)
-255 `divMod` 3 = (85,0)
-
-0 `divMod` 253 = (0,0)
-0 `divMod` 254 = (0,0)
-0 `divMod` 255 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` 253 = (0,1)
-1 `divMod` 254 = (0,1)
-1 `divMod` 255 = (0,1)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` 253 = (0,2)
-2 `divMod` 254 = (0,2)
-2 `divMod` 255 = (0,2)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` 253 = (0,3)
-3 `divMod` 254 = (0,3)
-3 `divMod` 255 = (0,3)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
-253 `div` 253 = 1
-253 `div` 254 = 0
-253 `div` 255 = 0
-253 `div` 0 = divide by zero
-253 `div` 1 = 253
-253 `div` 2 = 126
-253 `div` 3 = 84
-
-254 `div` 253 = 1
-254 `div` 254 = 1
-254 `div` 255 = 0
-254 `div` 0 = divide by zero
-254 `div` 1 = 254
-254 `div` 2 = 127
-254 `div` 3 = 84
-
-255 `div` 253 = 1
-255 `div` 254 = 1
-255 `div` 255 = 1
-255 `div` 0 = divide by zero
-255 `div` 1 = 255
-255 `div` 2 = 127
-255 `div` 3 = 85
-
-0 `div` 253 = 0
-0 `div` 254 = 0
-0 `div` 255 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` 253 = 0
-1 `div` 254 = 0
-1 `div` 255 = 0
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` 253 = 0
-2 `div` 254 = 0
-2 `div` 255 = 0
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` 253 = 0
-3 `div` 254 = 0
-3 `div` 255 = 0
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
-253 `mod` 253 = 0
-253 `mod` 254 = 253
-253 `mod` 255 = 253
-253 `mod` 0 = divide by zero
-253 `mod` 1 = 0
-253 `mod` 2 = 1
-253 `mod` 3 = 1
-
-254 `mod` 253 = 1
-254 `mod` 254 = 0
-254 `mod` 255 = 254
-254 `mod` 0 = divide by zero
-254 `mod` 1 = 0
-254 `mod` 2 = 0
-254 `mod` 3 = 2
-
-255 `mod` 253 = 2
-255 `mod` 254 = 1
-255 `mod` 255 = 0
-255 `mod` 0 = divide by zero
-255 `mod` 1 = 0
-255 `mod` 2 = 1
-255 `mod` 3 = 0
-
-0 `mod` 253 = 0
-0 `mod` 254 = 0
-0 `mod` 255 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` 253 = 1
-1 `mod` 254 = 1
-1 `mod` 255 = 1
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` 253 = 2
-2 `mod` 254 = 2
-2 `mod` 255 = 2
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` 253 = 3
-3 `mod` 254 = 3
-3 `mod` 255 = 3
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
-253 `quotRem` 253 = (1,0)
-253 `quotRem` 254 = (0,253)
-253 `quotRem` 255 = (0,253)
-253 `quotRem` 0 = divide by zero
-253 `quotRem` 1 = (253,0)
-253 `quotRem` 2 = (126,1)
-253 `quotRem` 3 = (84,1)
-
-254 `quotRem` 253 = (1,1)
-254 `quotRem` 254 = (1,0)
-254 `quotRem` 255 = (0,254)
-254 `quotRem` 0 = divide by zero
-254 `quotRem` 1 = (254,0)
-254 `quotRem` 2 = (127,0)
-254 `quotRem` 3 = (84,2)
-
-255 `quotRem` 253 = (1,2)
-255 `quotRem` 254 = (1,1)
-255 `quotRem` 255 = (1,0)
-255 `quotRem` 0 = divide by zero
-255 `quotRem` 1 = (255,0)
-255 `quotRem` 2 = (127,1)
-255 `quotRem` 3 = (85,0)
-
-0 `quotRem` 253 = (0,0)
-0 `quotRem` 254 = (0,0)
-0 `quotRem` 255 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` 253 = (0,1)
-1 `quotRem` 254 = (0,1)
-1 `quotRem` 255 = (0,1)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` 253 = (0,2)
-2 `quotRem` 254 = (0,2)
-2 `quotRem` 255 = (0,2)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` 253 = (0,3)
-3 `quotRem` 254 = (0,3)
-3 `quotRem` 255 = (0,3)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
-253 `quot` 253 = 1
-253 `quot` 254 = 0
-253 `quot` 255 = 0
-253 `quot` 0 = divide by zero
-253 `quot` 1 = 253
-253 `quot` 2 = 126
-253 `quot` 3 = 84
-
-254 `quot` 253 = 1
-254 `quot` 254 = 1
-254 `quot` 255 = 0
-254 `quot` 0 = divide by zero
-254 `quot` 1 = 254
-254 `quot` 2 = 127
-254 `quot` 3 = 84
-
-255 `quot` 253 = 1
-255 `quot` 254 = 1
-255 `quot` 255 = 1
-255 `quot` 0 = divide by zero
-255 `quot` 1 = 255
-255 `quot` 2 = 127
-255 `quot` 3 = 85
-
-0 `quot` 253 = 0
-0 `quot` 254 = 0
-0 `quot` 255 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` 253 = 0
-1 `quot` 254 = 0
-1 `quot` 255 = 0
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` 253 = 0
-2 `quot` 254 = 0
-2 `quot` 255 = 0
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` 253 = 0
-3 `quot` 254 = 0
-3 `quot` 255 = 0
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
-253 `rem` 253 = 0
-253 `rem` 254 = 253
-253 `rem` 255 = 253
-253 `rem` 0 = divide by zero
-253 `rem` 1 = 0
-253 `rem` 2 = 1
-253 `rem` 3 = 1
-
-254 `rem` 253 = 1
-254 `rem` 254 = 0
-254 `rem` 255 = 254
-254 `rem` 0 = divide by zero
-254 `rem` 1 = 0
-254 `rem` 2 = 0
-254 `rem` 3 = 2
-
-255 `rem` 253 = 2
-255 `rem` 254 = 1
-255 `rem` 255 = 0
-255 `rem` 0 = divide by zero
-255 `rem` 1 = 0
-255 `rem` 2 = 1
-255 `rem` 3 = 0
-
-0 `rem` 253 = 0
-0 `rem` 254 = 0
-0 `rem` 255 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` 253 = 1
-1 `rem` 254 = 1
-1 `rem` 255 = 1
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` 253 = 2
-2 `rem` 254 = 2
-2 `rem` 255 = 2
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` 253 = 3
-3 `rem` 254 = 3
-3 `rem` 255 = 3
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [0,0,255]
-Int : [0,0,255]
-Int8 : [0,0,-1]
-Int16 : [0,0,255]
-Int32 : [0,0,255]
-Int64 : [0,0,255]
-Word8 : [0,0,255]
-Word16 : [0,0,255]
-Word32 : [0,0,255]
-Word64 : [0,0,255]
-testBits
-253 .&. 253 = 253
-253 .&. 254 = 252
-253 .&. 255 = 253
-253 .&. 0 = 0
-253 .&. 1 = 1
-253 .&. 2 = 0
-253 .&. 3 = 1
-
-254 .&. 253 = 252
-254 .&. 254 = 254
-254 .&. 255 = 254
-254 .&. 0 = 0
-254 .&. 1 = 0
-254 .&. 2 = 2
-254 .&. 3 = 2
-
-255 .&. 253 = 253
-255 .&. 254 = 254
-255 .&. 255 = 255
-255 .&. 0 = 0
-255 .&. 1 = 1
-255 .&. 2 = 2
-255 .&. 3 = 3
-
-0 .&. 253 = 0
-0 .&. 254 = 0
-0 .&. 255 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. 253 = 1
-1 .&. 254 = 0
-1 .&. 255 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. 253 = 0
-2 .&. 254 = 2
-2 .&. 255 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. 253 = 1
-3 .&. 254 = 2
-3 .&. 255 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
-253 .|. 253 = 253
-253 .|. 254 = 255
-253 .|. 255 = 255
-253 .|. 0 = 253
-253 .|. 1 = 253
-253 .|. 2 = 255
-253 .|. 3 = 255
-
-254 .|. 253 = 255
-254 .|. 254 = 254
-254 .|. 255 = 255
-254 .|. 0 = 254
-254 .|. 1 = 255
-254 .|. 2 = 254
-254 .|. 3 = 255
-
-255 .|. 253 = 255
-255 .|. 254 = 255
-255 .|. 255 = 255
-255 .|. 0 = 255
-255 .|. 1 = 255
-255 .|. 2 = 255
-255 .|. 3 = 255
-
-0 .|. 253 = 253
-0 .|. 254 = 254
-0 .|. 255 = 255
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. 253 = 253
-1 .|. 254 = 255
-1 .|. 255 = 255
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. 253 = 255
-2 .|. 254 = 254
-2 .|. 255 = 255
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. 253 = 255
-3 .|. 254 = 255
-3 .|. 255 = 255
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
-253 `xor` 253 = 0
-253 `xor` 254 = 3
-253 `xor` 255 = 2
-253 `xor` 0 = 253
-253 `xor` 1 = 252
-253 `xor` 2 = 255
-253 `xor` 3 = 254
-
-254 `xor` 253 = 3
-254 `xor` 254 = 0
-254 `xor` 255 = 1
-254 `xor` 0 = 254
-254 `xor` 1 = 255
-254 `xor` 2 = 252
-254 `xor` 3 = 253
-
-255 `xor` 253 = 2
-255 `xor` 254 = 1
-255 `xor` 255 = 0
-255 `xor` 0 = 255
-255 `xor` 1 = 254
-255 `xor` 2 = 253
-255 `xor` 3 = 252
-
-0 `xor` 253 = 253
-0 `xor` 254 = 254
-0 `xor` 255 = 255
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` 253 = 252
-1 `xor` 254 = 255
-1 `xor` 255 = 254
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` 253 = 255
-2 `xor` 254 = 252
-2 `xor` 255 = 253
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` 253 = 254
-3 `xor` 254 = 253
-3 `xor` 255 = 252
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement 253 = 2
-complement 254 = 1
-complement 255 = 0
-complement 0 = 255
-complement 1 = 254
-complement 2 = 253
-complement 3 = 252
-#
-253 `shiftL` 0 = 253
-253 `shiftL` 1 = 250
-253 `shiftL` 2 = 244
-253 `shiftL` 3 = 232
-253 `shiftL` 32 = 0
-253 `shiftL` 64 = 0
-
-254 `shiftL` 0 = 254
-254 `shiftL` 1 = 252
-254 `shiftL` 2 = 248
-254 `shiftL` 3 = 240
-254 `shiftL` 32 = 0
-254 `shiftL` 64 = 0
-
-255 `shiftL` 0 = 255
-255 `shiftL` 1 = 254
-255 `shiftL` 2 = 252
-255 `shiftL` 3 = 248
-255 `shiftL` 32 = 0
-255 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
-253 `shiftR` 0 = 253
-253 `shiftR` 1 = 126
-253 `shiftR` 2 = 63
-253 `shiftR` 3 = 31
-253 `shiftR` 32 = 0
-253 `shiftR` 64 = 0
-
-254 `shiftR` 0 = 254
-254 `shiftR` 1 = 127
-254 `shiftR` 2 = 63
-254 `shiftR` 3 = 31
-254 `shiftR` 32 = 0
-254 `shiftR` 64 = 0
-
-255 `shiftR` 0 = 255
-255 `shiftR` 1 = 127
-255 `shiftR` 2 = 63
-255 `shiftR` 3 = 31
-255 `shiftR` 32 = 0
-255 `shiftR` 64 = 0
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
-253 `rotate` -3 = 191
-253 `rotate` -2 = 127
-253 `rotate` -1 = 254
-253 `rotate` 0 = 253
-253 `rotate` 1 = 251
-253 `rotate` 2 = 247
-253 `rotate` 3 = 239
-253 `rotate` -64 = 253
-253 `rotate` -32 = 253
-253 `rotate` 32 = 253
-253 `rotate` 64 = 253
-
-254 `rotate` -3 = 223
-254 `rotate` -2 = 191
-254 `rotate` -1 = 127
-254 `rotate` 0 = 254
-254 `rotate` 1 = 253
-254 `rotate` 2 = 251
-254 `rotate` 3 = 247
-254 `rotate` -64 = 254
-254 `rotate` -32 = 254
-254 `rotate` 32 = 254
-254 `rotate` 64 = 254
-
-255 `rotate` -3 = 255
-255 `rotate` -2 = 255
-255 `rotate` -1 = 255
-255 `rotate` 0 = 255
-255 `rotate` 1 = 255
-255 `rotate` 2 = 255
-255 `rotate` 3 = 255
-255 `rotate` -64 = 255
-255 `rotate` -32 = 255
-255 `rotate` 32 = 255
-255 `rotate` 64 = 255
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-0 `rotate` -64 = 0
-0 `rotate` -32 = 0
-0 `rotate` 32 = 0
-0 `rotate` 64 = 0
-
-1 `rotate` -3 = 32
-1 `rotate` -2 = 64
-1 `rotate` -1 = 128
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-1 `rotate` -64 = 1
-1 `rotate` -32 = 1
-1 `rotate` 32 = 1
-1 `rotate` 64 = 1
-
-2 `rotate` -3 = 64
-2 `rotate` -2 = 128
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-2 `rotate` -64 = 2
-2 `rotate` -32 = 2
-2 `rotate` 32 = 2
-2 `rotate` 64 = 2
-
-3 `rotate` -3 = 96
-3 `rotate` -2 = 192
-3 `rotate` -1 = 129
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-3 `rotate` -64 = 3
-3 `rotate` -32 = 3
-3 `rotate` 32 = 3
-3 `rotate` 64 = 3
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
-253 `setBit` 0 = 253
-253 `setBit` 1 = 255
-253 `setBit` 2 = 253
-253 `setBit` 3 = 253
-253 `setBit` 32 = 253
-253 `setBit` 64 = 253
-
-254 `setBit` 0 = 255
-254 `setBit` 1 = 254
-254 `setBit` 2 = 254
-254 `setBit` 3 = 254
-254 `setBit` 32 = 254
-254 `setBit` 64 = 254
-
-255 `setBit` 0 = 255
-255 `setBit` 1 = 255
-255 `setBit` 2 = 255
-255 `setBit` 3 = 255
-255 `setBit` 32 = 255
-255 `setBit` 64 = 255
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
-253 `clearBit` 0 = 252
-253 `clearBit` 1 = 253
-253 `clearBit` 2 = 249
-253 `clearBit` 3 = 245
-253 `clearBit` 32 = 253
-253 `clearBit` 64 = 253
-
-254 `clearBit` 0 = 254
-254 `clearBit` 1 = 252
-254 `clearBit` 2 = 250
-254 `clearBit` 3 = 246
-254 `clearBit` 32 = 254
-254 `clearBit` 64 = 254
-
-255 `clearBit` 0 = 254
-255 `clearBit` 1 = 253
-255 `clearBit` 2 = 251
-255 `clearBit` 3 = 247
-255 `clearBit` 32 = 255
-255 `clearBit` 64 = 255
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
-253 `complementBit` 0 = 252
-253 `complementBit` 1 = 255
-253 `complementBit` 2 = 249
-253 `complementBit` 3 = 245
-253 `complementBit` 32 = 253
-253 `complementBit` 64 = 253
-
-254 `complementBit` 0 = 255
-254 `complementBit` 1 = 252
-254 `complementBit` 2 = 250
-254 `complementBit` 3 = 246
-254 `complementBit` 32 = 254
-254 `complementBit` 64 = 254
-
-255 `complementBit` 0 = 254
-255 `complementBit` 1 = 253
-255 `complementBit` 2 = 251
-255 `complementBit` 3 = 247
-255 `complementBit` 32 = 255
-255 `complementBit` 64 = 255
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
-253 `testBit` 0 = True
-253 `testBit` 1 = False
-253 `testBit` 2 = True
-253 `testBit` 3 = True
-253 `testBit` 32 = False
-253 `testBit` 64 = False
-
-254 `testBit` 0 = False
-254 `testBit` 1 = True
-254 `testBit` 2 = True
-254 `testBit` 3 = True
-254 `testBit` 32 = False
-254 `testBit` 64 = False
-
-255 `testBit` 0 = True
-255 `testBit` 1 = True
-255 `testBit` 2 = True
-255 `testBit` 3 = True
-255 `testBit` 32 = False
-255 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize 253 = 8
-bitSize 254 = 8
-bitSize 255 = 8
-bitSize 0 = 8
-bitSize 1 = 8
-bitSize 2 = 8
-bitSize 3 = 8
-#
-isSigned 253 = False
-isSigned 254 = False
-isSigned 255 = False
-isSigned 0 = False
-isSigned 1 = False
-isSigned 2 = False
-isSigned 3 = False
-#
---------------------------------
---Testing Word16
---------------------------------
-testBounded
-(65535,0,1)
-(65534,65535,0)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[65533,65534,65535,0,1,2,3]
-[65533,65534,65535,0,1,2,3]
-testEq
-65533 == 65533 = True
-65533 == 65534 = False
-65533 == 65535 = False
-65533 == 0 = False
-65533 == 1 = False
-65533 == 2 = False
-65533 == 3 = False
-
-65534 == 65533 = False
-65534 == 65534 = True
-65534 == 65535 = False
-65534 == 0 = False
-65534 == 1 = False
-65534 == 2 = False
-65534 == 3 = False
-
-65535 == 65533 = False
-65535 == 65534 = False
-65535 == 65535 = True
-65535 == 0 = False
-65535 == 1 = False
-65535 == 2 = False
-65535 == 3 = False
-
-0 == 65533 = False
-0 == 65534 = False
-0 == 65535 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == 65533 = False
-1 == 65534 = False
-1 == 65535 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == 65533 = False
-2 == 65534 = False
-2 == 65535 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == 65533 = False
-3 == 65534 = False
-3 == 65535 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
-65533 /= 65533 = False
-65533 /= 65534 = True
-65533 /= 65535 = True
-65533 /= 0 = True
-65533 /= 1 = True
-65533 /= 2 = True
-65533 /= 3 = True
-
-65534 /= 65533 = True
-65534 /= 65534 = False
-65534 /= 65535 = True
-65534 /= 0 = True
-65534 /= 1 = True
-65534 /= 2 = True
-65534 /= 3 = True
-
-65535 /= 65533 = True
-65535 /= 65534 = True
-65535 /= 65535 = False
-65535 /= 0 = True
-65535 /= 1 = True
-65535 /= 2 = True
-65535 /= 3 = True
-
-0 /= 65533 = True
-0 /= 65534 = True
-0 /= 65535 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= 65533 = True
-1 /= 65534 = True
-1 /= 65535 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= 65533 = True
-2 /= 65534 = True
-2 /= 65535 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= 65533 = True
-3 /= 65534 = True
-3 /= 65535 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
-65533 <= 65533 = True
-65533 <= 65534 = True
-65533 <= 65535 = True
-65533 <= 0 = False
-65533 <= 1 = False
-65533 <= 2 = False
-65533 <= 3 = False
-
-65534 <= 65533 = False
-65534 <= 65534 = True
-65534 <= 65535 = True
-65534 <= 0 = False
-65534 <= 1 = False
-65534 <= 2 = False
-65534 <= 3 = False
-
-65535 <= 65533 = False
-65535 <= 65534 = False
-65535 <= 65535 = True
-65535 <= 0 = False
-65535 <= 1 = False
-65535 <= 2 = False
-65535 <= 3 = False
-
-0 <= 65533 = True
-0 <= 65534 = True
-0 <= 65535 = True
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= 65533 = True
-1 <= 65534 = True
-1 <= 65535 = True
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= 65533 = True
-2 <= 65534 = True
-2 <= 65535 = True
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= 65533 = True
-3 <= 65534 = True
-3 <= 65535 = True
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
-65533 < 65533 = False
-65533 < 65534 = True
-65533 < 65535 = True
-65533 < 0 = False
-65533 < 1 = False
-65533 < 2 = False
-65533 < 3 = False
-
-65534 < 65533 = False
-65534 < 65534 = False
-65534 < 65535 = True
-65534 < 0 = False
-65534 < 1 = False
-65534 < 2 = False
-65534 < 3 = False
-
-65535 < 65533 = False
-65535 < 65534 = False
-65535 < 65535 = False
-65535 < 0 = False
-65535 < 1 = False
-65535 < 2 = False
-65535 < 3 = False
-
-0 < 65533 = True
-0 < 65534 = True
-0 < 65535 = True
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < 65533 = True
-1 < 65534 = True
-1 < 65535 = True
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < 65533 = True
-2 < 65534 = True
-2 < 65535 = True
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < 65533 = True
-3 < 65534 = True
-3 < 65535 = True
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
-65533 > 65533 = False
-65533 > 65534 = False
-65533 > 65535 = False
-65533 > 0 = True
-65533 > 1 = True
-65533 > 2 = True
-65533 > 3 = True
-
-65534 > 65533 = True
-65534 > 65534 = False
-65534 > 65535 = False
-65534 > 0 = True
-65534 > 1 = True
-65534 > 2 = True
-65534 > 3 = True
-
-65535 > 65533 = True
-65535 > 65534 = True
-65535 > 65535 = False
-65535 > 0 = True
-65535 > 1 = True
-65535 > 2 = True
-65535 > 3 = True
-
-0 > 65533 = False
-0 > 65534 = False
-0 > 65535 = False
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > 65533 = False
-1 > 65534 = False
-1 > 65535 = False
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > 65533 = False
-2 > 65534 = False
-2 > 65535 = False
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > 65533 = False
-3 > 65534 = False
-3 > 65535 = False
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
-65533 >= 65533 = True
-65533 >= 65534 = False
-65533 >= 65535 = False
-65533 >= 0 = True
-65533 >= 1 = True
-65533 >= 2 = True
-65533 >= 3 = True
-
-65534 >= 65533 = True
-65534 >= 65534 = True
-65534 >= 65535 = False
-65534 >= 0 = True
-65534 >= 1 = True
-65534 >= 2 = True
-65534 >= 3 = True
-
-65535 >= 65533 = True
-65535 >= 65534 = True
-65535 >= 65535 = True
-65535 >= 0 = True
-65535 >= 1 = True
-65535 >= 2 = True
-65535 >= 3 = True
-
-0 >= 65533 = False
-0 >= 65534 = False
-0 >= 65535 = False
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= 65533 = False
-1 >= 65534 = False
-1 >= 65535 = False
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= 65533 = False
-2 >= 65534 = False
-2 >= 65535 = False
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= 65533 = False
-3 >= 65534 = False
-3 >= 65535 = False
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
-65533 `compare` 65533 = EQ
-65533 `compare` 65534 = LT
-65533 `compare` 65535 = LT
-65533 `compare` 0 = GT
-65533 `compare` 1 = GT
-65533 `compare` 2 = GT
-65533 `compare` 3 = GT
-
-65534 `compare` 65533 = GT
-65534 `compare` 65534 = EQ
-65534 `compare` 65535 = LT
-65534 `compare` 0 = GT
-65534 `compare` 1 = GT
-65534 `compare` 2 = GT
-65534 `compare` 3 = GT
-
-65535 `compare` 65533 = GT
-65535 `compare` 65534 = GT
-65535 `compare` 65535 = EQ
-65535 `compare` 0 = GT
-65535 `compare` 1 = GT
-65535 `compare` 2 = GT
-65535 `compare` 3 = GT
-
-0 `compare` 65533 = LT
-0 `compare` 65534 = LT
-0 `compare` 65535 = LT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` 65533 = LT
-1 `compare` 65534 = LT
-1 `compare` 65535 = LT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` 65533 = LT
-2 `compare` 65534 = LT
-2 `compare` 65535 = LT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` 65533 = LT
-3 `compare` 65534 = LT
-3 `compare` 65535 = LT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
-65533 + 65533 = 65530
-65533 + 65534 = 65531
-65533 + 65535 = 65532
-65533 + 0 = 65533
-65533 + 1 = 65534
-65533 + 2 = 65535
-65533 + 3 = 0
-
-65534 + 65533 = 65531
-65534 + 65534 = 65532
-65534 + 65535 = 65533
-65534 + 0 = 65534
-65534 + 1 = 65535
-65534 + 2 = 0
-65534 + 3 = 1
-
-65535 + 65533 = 65532
-65535 + 65534 = 65533
-65535 + 65535 = 65534
-65535 + 0 = 65535
-65535 + 1 = 0
-65535 + 2 = 1
-65535 + 3 = 2
-
-0 + 65533 = 65533
-0 + 65534 = 65534
-0 + 65535 = 65535
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + 65533 = 65534
-1 + 65534 = 65535
-1 + 65535 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + 65533 = 65535
-2 + 65534 = 0
-2 + 65535 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + 65533 = 0
-3 + 65534 = 1
-3 + 65535 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
-65533 - 65533 = 0
-65533 - 65534 = 65535
-65533 - 65535 = 65534
-65533 - 0 = 65533
-65533 - 1 = 65532
-65533 - 2 = 65531
-65533 - 3 = 65530
-
-65534 - 65533 = 1
-65534 - 65534 = 0
-65534 - 65535 = 65535
-65534 - 0 = 65534
-65534 - 1 = 65533
-65534 - 2 = 65532
-65534 - 3 = 65531
-
-65535 - 65533 = 2
-65535 - 65534 = 1
-65535 - 65535 = 0
-65535 - 0 = 65535
-65535 - 1 = 65534
-65535 - 2 = 65533
-65535 - 3 = 65532
-
-0 - 65533 = 3
-0 - 65534 = 2
-0 - 65535 = 1
-0 - 0 = 0
-0 - 1 = 65535
-0 - 2 = 65534
-0 - 3 = 65533
-
-1 - 65533 = 4
-1 - 65534 = 3
-1 - 65535 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = 65535
-1 - 3 = 65534
-
-2 - 65533 = 5
-2 - 65534 = 4
-2 - 65535 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = 65535
-
-3 - 65533 = 6
-3 - 65534 = 5
-3 - 65535 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
-65533 * 65533 = 9
-65533 * 65534 = 6
-65533 * 65535 = 3
-65533 * 0 = 0
-65533 * 1 = 65533
-65533 * 2 = 65530
-65533 * 3 = 65527
-
-65534 * 65533 = 6
-65534 * 65534 = 4
-65534 * 65535 = 2
-65534 * 0 = 0
-65534 * 1 = 65534
-65534 * 2 = 65532
-65534 * 3 = 65530
-
-65535 * 65533 = 3
-65535 * 65534 = 2
-65535 * 65535 = 1
-65535 * 0 = 0
-65535 * 1 = 65535
-65535 * 2 = 65534
-65535 * 3 = 65533
-
-0 * 65533 = 0
-0 * 65534 = 0
-0 * 65535 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * 65533 = 65533
-1 * 65534 = 65534
-1 * 65535 = 65535
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * 65533 = 65530
-2 * 65534 = 65532
-2 * 65535 = 65534
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * 65533 = 65527
-3 * 65534 = 65530
-3 * 65535 = 65533
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate 65533 = 3
-negate 65534 = 2
-negate 65535 = 1
-negate 0 = 0
-negate 1 = 65535
-negate 2 = 65534
-negate 3 = 65533
-#
-testReal
-toRational 65533 = 65533 % 1
-toRational 65534 = 65534 % 1
-toRational 65535 = 65535 % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
-65533 `divMod` 65533 = (1,0)
-65533 `divMod` 65534 = (0,65533)
-65533 `divMod` 65535 = (0,65533)
-65533 `divMod` 0 = divide by zero
-65533 `divMod` 1 = (65533,0)
-65533 `divMod` 2 = (32766,1)
-65533 `divMod` 3 = (21844,1)
-
-65534 `divMod` 65533 = (1,1)
-65534 `divMod` 65534 = (1,0)
-65534 `divMod` 65535 = (0,65534)
-65534 `divMod` 0 = divide by zero
-65534 `divMod` 1 = (65534,0)
-65534 `divMod` 2 = (32767,0)
-65534 `divMod` 3 = (21844,2)
-
-65535 `divMod` 65533 = (1,2)
-65535 `divMod` 65534 = (1,1)
-65535 `divMod` 65535 = (1,0)
-65535 `divMod` 0 = divide by zero
-65535 `divMod` 1 = (65535,0)
-65535 `divMod` 2 = (32767,1)
-65535 `divMod` 3 = (21845,0)
-
-0 `divMod` 65533 = (0,0)
-0 `divMod` 65534 = (0,0)
-0 `divMod` 65535 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` 65533 = (0,1)
-1 `divMod` 65534 = (0,1)
-1 `divMod` 65535 = (0,1)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` 65533 = (0,2)
-2 `divMod` 65534 = (0,2)
-2 `divMod` 65535 = (0,2)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` 65533 = (0,3)
-3 `divMod` 65534 = (0,3)
-3 `divMod` 65535 = (0,3)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
-65533 `div` 65533 = 1
-65533 `div` 65534 = 0
-65533 `div` 65535 = 0
-65533 `div` 0 = divide by zero
-65533 `div` 1 = 65533
-65533 `div` 2 = 32766
-65533 `div` 3 = 21844
-
-65534 `div` 65533 = 1
-65534 `div` 65534 = 1
-65534 `div` 65535 = 0
-65534 `div` 0 = divide by zero
-65534 `div` 1 = 65534
-65534 `div` 2 = 32767
-65534 `div` 3 = 21844
-
-65535 `div` 65533 = 1
-65535 `div` 65534 = 1
-65535 `div` 65535 = 1
-65535 `div` 0 = divide by zero
-65535 `div` 1 = 65535
-65535 `div` 2 = 32767
-65535 `div` 3 = 21845
-
-0 `div` 65533 = 0
-0 `div` 65534 = 0
-0 `div` 65535 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` 65533 = 0
-1 `div` 65534 = 0
-1 `div` 65535 = 0
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` 65533 = 0
-2 `div` 65534 = 0
-2 `div` 65535 = 0
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` 65533 = 0
-3 `div` 65534 = 0
-3 `div` 65535 = 0
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
-65533 `mod` 65533 = 0
-65533 `mod` 65534 = 65533
-65533 `mod` 65535 = 65533
-65533 `mod` 0 = divide by zero
-65533 `mod` 1 = 0
-65533 `mod` 2 = 1
-65533 `mod` 3 = 1
-
-65534 `mod` 65533 = 1
-65534 `mod` 65534 = 0
-65534 `mod` 65535 = 65534
-65534 `mod` 0 = divide by zero
-65534 `mod` 1 = 0
-65534 `mod` 2 = 0
-65534 `mod` 3 = 2
-
-65535 `mod` 65533 = 2
-65535 `mod` 65534 = 1
-65535 `mod` 65535 = 0
-65535 `mod` 0 = divide by zero
-65535 `mod` 1 = 0
-65535 `mod` 2 = 1
-65535 `mod` 3 = 0
-
-0 `mod` 65533 = 0
-0 `mod` 65534 = 0
-0 `mod` 65535 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` 65533 = 1
-1 `mod` 65534 = 1
-1 `mod` 65535 = 1
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` 65533 = 2
-2 `mod` 65534 = 2
-2 `mod` 65535 = 2
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` 65533 = 3
-3 `mod` 65534 = 3
-3 `mod` 65535 = 3
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
-65533 `quotRem` 65533 = (1,0)
-65533 `quotRem` 65534 = (0,65533)
-65533 `quotRem` 65535 = (0,65533)
-65533 `quotRem` 0 = divide by zero
-65533 `quotRem` 1 = (65533,0)
-65533 `quotRem` 2 = (32766,1)
-65533 `quotRem` 3 = (21844,1)
-
-65534 `quotRem` 65533 = (1,1)
-65534 `quotRem` 65534 = (1,0)
-65534 `quotRem` 65535 = (0,65534)
-65534 `quotRem` 0 = divide by zero
-65534 `quotRem` 1 = (65534,0)
-65534 `quotRem` 2 = (32767,0)
-65534 `quotRem` 3 = (21844,2)
-
-65535 `quotRem` 65533 = (1,2)
-65535 `quotRem` 65534 = (1,1)
-65535 `quotRem` 65535 = (1,0)
-65535 `quotRem` 0 = divide by zero
-65535 `quotRem` 1 = (65535,0)
-65535 `quotRem` 2 = (32767,1)
-65535 `quotRem` 3 = (21845,0)
-
-0 `quotRem` 65533 = (0,0)
-0 `quotRem` 65534 = (0,0)
-0 `quotRem` 65535 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` 65533 = (0,1)
-1 `quotRem` 65534 = (0,1)
-1 `quotRem` 65535 = (0,1)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` 65533 = (0,2)
-2 `quotRem` 65534 = (0,2)
-2 `quotRem` 65535 = (0,2)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` 65533 = (0,3)
-3 `quotRem` 65534 = (0,3)
-3 `quotRem` 65535 = (0,3)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
-65533 `quot` 65533 = 1
-65533 `quot` 65534 = 0
-65533 `quot` 65535 = 0
-65533 `quot` 0 = divide by zero
-65533 `quot` 1 = 65533
-65533 `quot` 2 = 32766
-65533 `quot` 3 = 21844
-
-65534 `quot` 65533 = 1
-65534 `quot` 65534 = 1
-65534 `quot` 65535 = 0
-65534 `quot` 0 = divide by zero
-65534 `quot` 1 = 65534
-65534 `quot` 2 = 32767
-65534 `quot` 3 = 21844
-
-65535 `quot` 65533 = 1
-65535 `quot` 65534 = 1
-65535 `quot` 65535 = 1
-65535 `quot` 0 = divide by zero
-65535 `quot` 1 = 65535
-65535 `quot` 2 = 32767
-65535 `quot` 3 = 21845
-
-0 `quot` 65533 = 0
-0 `quot` 65534 = 0
-0 `quot` 65535 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` 65533 = 0
-1 `quot` 65534 = 0
-1 `quot` 65535 = 0
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` 65533 = 0
-2 `quot` 65534 = 0
-2 `quot` 65535 = 0
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` 65533 = 0
-3 `quot` 65534 = 0
-3 `quot` 65535 = 0
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
-65533 `rem` 65533 = 0
-65533 `rem` 65534 = 65533
-65533 `rem` 65535 = 65533
-65533 `rem` 0 = divide by zero
-65533 `rem` 1 = 0
-65533 `rem` 2 = 1
-65533 `rem` 3 = 1
-
-65534 `rem` 65533 = 1
-65534 `rem` 65534 = 0
-65534 `rem` 65535 = 65534
-65534 `rem` 0 = divide by zero
-65534 `rem` 1 = 0
-65534 `rem` 2 = 0
-65534 `rem` 3 = 2
-
-65535 `rem` 65533 = 2
-65535 `rem` 65534 = 1
-65535 `rem` 65535 = 0
-65535 `rem` 0 = divide by zero
-65535 `rem` 1 = 0
-65535 `rem` 2 = 1
-65535 `rem` 3 = 0
-
-0 `rem` 65533 = 0
-0 `rem` 65534 = 0
-0 `rem` 65535 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` 65533 = 1
-1 `rem` 65534 = 1
-1 `rem` 65535 = 1
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` 65533 = 2
-2 `rem` 65534 = 2
-2 `rem` 65535 = 2
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` 65533 = 3
-3 `rem` 65534 = 3
-3 `rem` 65535 = 3
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [0,0,65535]
-Int : [0,0,65535]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [0,0,65535]
-Int64 : [0,0,65535]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [0,0,65535]
-Word64 : [0,0,65535]
-testBits
-65533 .&. 65533 = 65533
-65533 .&. 65534 = 65532
-65533 .&. 65535 = 65533
-65533 .&. 0 = 0
-65533 .&. 1 = 1
-65533 .&. 2 = 0
-65533 .&. 3 = 1
-
-65534 .&. 65533 = 65532
-65534 .&. 65534 = 65534
-65534 .&. 65535 = 65534
-65534 .&. 0 = 0
-65534 .&. 1 = 0
-65534 .&. 2 = 2
-65534 .&. 3 = 2
-
-65535 .&. 65533 = 65533
-65535 .&. 65534 = 65534
-65535 .&. 65535 = 65535
-65535 .&. 0 = 0
-65535 .&. 1 = 1
-65535 .&. 2 = 2
-65535 .&. 3 = 3
-
-0 .&. 65533 = 0
-0 .&. 65534 = 0
-0 .&. 65535 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. 65533 = 1
-1 .&. 65534 = 0
-1 .&. 65535 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. 65533 = 0
-2 .&. 65534 = 2
-2 .&. 65535 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. 65533 = 1
-3 .&. 65534 = 2
-3 .&. 65535 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
-65533 .|. 65533 = 65533
-65533 .|. 65534 = 65535
-65533 .|. 65535 = 65535
-65533 .|. 0 = 65533
-65533 .|. 1 = 65533
-65533 .|. 2 = 65535
-65533 .|. 3 = 65535
-
-65534 .|. 65533 = 65535
-65534 .|. 65534 = 65534
-65534 .|. 65535 = 65535
-65534 .|. 0 = 65534
-65534 .|. 1 = 65535
-65534 .|. 2 = 65534
-65534 .|. 3 = 65535
-
-65535 .|. 65533 = 65535
-65535 .|. 65534 = 65535
-65535 .|. 65535 = 65535
-65535 .|. 0 = 65535
-65535 .|. 1 = 65535
-65535 .|. 2 = 65535
-65535 .|. 3 = 65535
-
-0 .|. 65533 = 65533
-0 .|. 65534 = 65534
-0 .|. 65535 = 65535
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. 65533 = 65533
-1 .|. 65534 = 65535
-1 .|. 65535 = 65535
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. 65533 = 65535
-2 .|. 65534 = 65534
-2 .|. 65535 = 65535
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. 65533 = 65535
-3 .|. 65534 = 65535
-3 .|. 65535 = 65535
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
-65533 `xor` 65533 = 0
-65533 `xor` 65534 = 3
-65533 `xor` 65535 = 2
-65533 `xor` 0 = 65533
-65533 `xor` 1 = 65532
-65533 `xor` 2 = 65535
-65533 `xor` 3 = 65534
-
-65534 `xor` 65533 = 3
-65534 `xor` 65534 = 0
-65534 `xor` 65535 = 1
-65534 `xor` 0 = 65534
-65534 `xor` 1 = 65535
-65534 `xor` 2 = 65532
-65534 `xor` 3 = 65533
-
-65535 `xor` 65533 = 2
-65535 `xor` 65534 = 1
-65535 `xor` 65535 = 0
-65535 `xor` 0 = 65535
-65535 `xor` 1 = 65534
-65535 `xor` 2 = 65533
-65535 `xor` 3 = 65532
-
-0 `xor` 65533 = 65533
-0 `xor` 65534 = 65534
-0 `xor` 65535 = 65535
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` 65533 = 65532
-1 `xor` 65534 = 65535
-1 `xor` 65535 = 65534
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` 65533 = 65535
-2 `xor` 65534 = 65532
-2 `xor` 65535 = 65533
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` 65533 = 65534
-3 `xor` 65534 = 65533
-3 `xor` 65535 = 65532
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement 65533 = 2
-complement 65534 = 1
-complement 65535 = 0
-complement 0 = 65535
-complement 1 = 65534
-complement 2 = 65533
-complement 3 = 65532
-#
-65533 `shiftL` 0 = 65533
-65533 `shiftL` 1 = 65530
-65533 `shiftL` 2 = 65524
-65533 `shiftL` 3 = 65512
-65533 `shiftL` 32 = 0
-65533 `shiftL` 64 = 0
-
-65534 `shiftL` 0 = 65534
-65534 `shiftL` 1 = 65532
-65534 `shiftL` 2 = 65528
-65534 `shiftL` 3 = 65520
-65534 `shiftL` 32 = 0
-65534 `shiftL` 64 = 0
-
-65535 `shiftL` 0 = 65535
-65535 `shiftL` 1 = 65534
-65535 `shiftL` 2 = 65532
-65535 `shiftL` 3 = 65528
-65535 `shiftL` 32 = 0
-65535 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
-65533 `shiftR` 0 = 65533
-65533 `shiftR` 1 = 32766
-65533 `shiftR` 2 = 16383
-65533 `shiftR` 3 = 8191
-65533 `shiftR` 32 = 0
-65533 `shiftR` 64 = 0
-
-65534 `shiftR` 0 = 65534
-65534 `shiftR` 1 = 32767
-65534 `shiftR` 2 = 16383
-65534 `shiftR` 3 = 8191
-65534 `shiftR` 32 = 0
-65534 `shiftR` 64 = 0
-
-65535 `shiftR` 0 = 65535
-65535 `shiftR` 1 = 32767
-65535 `shiftR` 2 = 16383
-65535 `shiftR` 3 = 8191
-65535 `shiftR` 32 = 0
-65535 `shiftR` 64 = 0
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
-65533 `rotate` -3 = 49151
-65533 `rotate` -2 = 32767
-65533 `rotate` -1 = 65534
-65533 `rotate` 0 = 65533
-65533 `rotate` 1 = 65531
-65533 `rotate` 2 = 65527
-65533 `rotate` 3 = 65519
-65533 `rotate` -64 = 65533
-65533 `rotate` -32 = 65533
-65533 `rotate` 32 = 65533
-65533 `rotate` 64 = 65533
-
-65534 `rotate` -3 = 57343
-65534 `rotate` -2 = 49151
-65534 `rotate` -1 = 32767
-65534 `rotate` 0 = 65534
-65534 `rotate` 1 = 65533
-65534 `rotate` 2 = 65531
-65534 `rotate` 3 = 65527
-65534 `rotate` -64 = 65534
-65534 `rotate` -32 = 65534
-65534 `rotate` 32 = 65534
-65534 `rotate` 64 = 65534
-
-65535 `rotate` -3 = 65535
-65535 `rotate` -2 = 65535
-65535 `rotate` -1 = 65535
-65535 `rotate` 0 = 65535
-65535 `rotate` 1 = 65535
-65535 `rotate` 2 = 65535
-65535 `rotate` 3 = 65535
-65535 `rotate` -64 = 65535
-65535 `rotate` -32 = 65535
-65535 `rotate` 32 = 65535
-65535 `rotate` 64 = 65535
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-0 `rotate` -64 = 0
-0 `rotate` -32 = 0
-0 `rotate` 32 = 0
-0 `rotate` 64 = 0
-
-1 `rotate` -3 = 8192
-1 `rotate` -2 = 16384
-1 `rotate` -1 = 32768
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-1 `rotate` -64 = 1
-1 `rotate` -32 = 1
-1 `rotate` 32 = 1
-1 `rotate` 64 = 1
-
-2 `rotate` -3 = 16384
-2 `rotate` -2 = 32768
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-2 `rotate` -64 = 2
-2 `rotate` -32 = 2
-2 `rotate` 32 = 2
-2 `rotate` 64 = 2
-
-3 `rotate` -3 = 24576
-3 `rotate` -2 = 49152
-3 `rotate` -1 = 32769
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-3 `rotate` -64 = 3
-3 `rotate` -32 = 3
-3 `rotate` 32 = 3
-3 `rotate` 64 = 3
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
-65533 `setBit` 0 = 65533
-65533 `setBit` 1 = 65535
-65533 `setBit` 2 = 65533
-65533 `setBit` 3 = 65533
-65533 `setBit` 32 = 65533
-65533 `setBit` 64 = 65533
-
-65534 `setBit` 0 = 65535
-65534 `setBit` 1 = 65534
-65534 `setBit` 2 = 65534
-65534 `setBit` 3 = 65534
-65534 `setBit` 32 = 65534
-65534 `setBit` 64 = 65534
-
-65535 `setBit` 0 = 65535
-65535 `setBit` 1 = 65535
-65535 `setBit` 2 = 65535
-65535 `setBit` 3 = 65535
-65535 `setBit` 32 = 65535
-65535 `setBit` 64 = 65535
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
-65533 `clearBit` 0 = 65532
-65533 `clearBit` 1 = 65533
-65533 `clearBit` 2 = 65529
-65533 `clearBit` 3 = 65525
-65533 `clearBit` 32 = 65533
-65533 `clearBit` 64 = 65533
-
-65534 `clearBit` 0 = 65534
-65534 `clearBit` 1 = 65532
-65534 `clearBit` 2 = 65530
-65534 `clearBit` 3 = 65526
-65534 `clearBit` 32 = 65534
-65534 `clearBit` 64 = 65534
-
-65535 `clearBit` 0 = 65534
-65535 `clearBit` 1 = 65533
-65535 `clearBit` 2 = 65531
-65535 `clearBit` 3 = 65527
-65535 `clearBit` 32 = 65535
-65535 `clearBit` 64 = 65535
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
-65533 `complementBit` 0 = 65532
-65533 `complementBit` 1 = 65535
-65533 `complementBit` 2 = 65529
-65533 `complementBit` 3 = 65525
-65533 `complementBit` 32 = 65533
-65533 `complementBit` 64 = 65533
-
-65534 `complementBit` 0 = 65535
-65534 `complementBit` 1 = 65532
-65534 `complementBit` 2 = 65530
-65534 `complementBit` 3 = 65526
-65534 `complementBit` 32 = 65534
-65534 `complementBit` 64 = 65534
-
-65535 `complementBit` 0 = 65534
-65535 `complementBit` 1 = 65533
-65535 `complementBit` 2 = 65531
-65535 `complementBit` 3 = 65527
-65535 `complementBit` 32 = 65535
-65535 `complementBit` 64 = 65535
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
-65533 `testBit` 0 = True
-65533 `testBit` 1 = False
-65533 `testBit` 2 = True
-65533 `testBit` 3 = True
-65533 `testBit` 32 = False
-65533 `testBit` 64 = False
-
-65534 `testBit` 0 = False
-65534 `testBit` 1 = True
-65534 `testBit` 2 = True
-65534 `testBit` 3 = True
-65534 `testBit` 32 = False
-65534 `testBit` 64 = False
-
-65535 `testBit` 0 = True
-65535 `testBit` 1 = True
-65535 `testBit` 2 = True
-65535 `testBit` 3 = True
-65535 `testBit` 32 = False
-65535 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize 65533 = 16
-bitSize 65534 = 16
-bitSize 65535 = 16
-bitSize 0 = 16
-bitSize 1 = 16
-bitSize 2 = 16
-bitSize 3 = 16
-#
-isSigned 65533 = False
-isSigned 65534 = False
-isSigned 65535 = False
-isSigned 0 = False
-isSigned 1 = False
-isSigned 2 = False
-isSigned 3 = False
-#
---------------------------------
---Testing Word32
---------------------------------
-testBounded
-(4294967295,0,1)
-(4294967294,4294967295,0)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[4294967293,4294967294,4294967295,0,1,2,3]
-[4294967293,4294967294,4294967295,0,1,2,3]
-testEq
-4294967293 == 4294967293 = True
-4294967293 == 4294967294 = False
-4294967293 == 4294967295 = False
-4294967293 == 0 = False
-4294967293 == 1 = False
-4294967293 == 2 = False
-4294967293 == 3 = False
-
-4294967294 == 4294967293 = False
-4294967294 == 4294967294 = True
-4294967294 == 4294967295 = False
-4294967294 == 0 = False
-4294967294 == 1 = False
-4294967294 == 2 = False
-4294967294 == 3 = False
-
-4294967295 == 4294967293 = False
-4294967295 == 4294967294 = False
-4294967295 == 4294967295 = True
-4294967295 == 0 = False
-4294967295 == 1 = False
-4294967295 == 2 = False
-4294967295 == 3 = False
-
-0 == 4294967293 = False
-0 == 4294967294 = False
-0 == 4294967295 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == 4294967293 = False
-1 == 4294967294 = False
-1 == 4294967295 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == 4294967293 = False
-2 == 4294967294 = False
-2 == 4294967295 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == 4294967293 = False
-3 == 4294967294 = False
-3 == 4294967295 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
-4294967293 /= 4294967293 = False
-4294967293 /= 4294967294 = True
-4294967293 /= 4294967295 = True
-4294967293 /= 0 = True
-4294967293 /= 1 = True
-4294967293 /= 2 = True
-4294967293 /= 3 = True
-
-4294967294 /= 4294967293 = True
-4294967294 /= 4294967294 = False
-4294967294 /= 4294967295 = True
-4294967294 /= 0 = True
-4294967294 /= 1 = True
-4294967294 /= 2 = True
-4294967294 /= 3 = True
-
-4294967295 /= 4294967293 = True
-4294967295 /= 4294967294 = True
-4294967295 /= 4294967295 = False
-4294967295 /= 0 = True
-4294967295 /= 1 = True
-4294967295 /= 2 = True
-4294967295 /= 3 = True
-
-0 /= 4294967293 = True
-0 /= 4294967294 = True
-0 /= 4294967295 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= 4294967293 = True
-1 /= 4294967294 = True
-1 /= 4294967295 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= 4294967293 = True
-2 /= 4294967294 = True
-2 /= 4294967295 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= 4294967293 = True
-3 /= 4294967294 = True
-3 /= 4294967295 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
-4294967293 <= 4294967293 = True
-4294967293 <= 4294967294 = True
-4294967293 <= 4294967295 = True
-4294967293 <= 0 = False
-4294967293 <= 1 = False
-4294967293 <= 2 = False
-4294967293 <= 3 = False
-
-4294967294 <= 4294967293 = False
-4294967294 <= 4294967294 = True
-4294967294 <= 4294967295 = True
-4294967294 <= 0 = False
-4294967294 <= 1 = False
-4294967294 <= 2 = False
-4294967294 <= 3 = False
-
-4294967295 <= 4294967293 = False
-4294967295 <= 4294967294 = False
-4294967295 <= 4294967295 = True
-4294967295 <= 0 = False
-4294967295 <= 1 = False
-4294967295 <= 2 = False
-4294967295 <= 3 = False
-
-0 <= 4294967293 = True
-0 <= 4294967294 = True
-0 <= 4294967295 = True
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= 4294967293 = True
-1 <= 4294967294 = True
-1 <= 4294967295 = True
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= 4294967293 = True
-2 <= 4294967294 = True
-2 <= 4294967295 = True
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= 4294967293 = True
-3 <= 4294967294 = True
-3 <= 4294967295 = True
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
-4294967293 < 4294967293 = False
-4294967293 < 4294967294 = True
-4294967293 < 4294967295 = True
-4294967293 < 0 = False
-4294967293 < 1 = False
-4294967293 < 2 = False
-4294967293 < 3 = False
-
-4294967294 < 4294967293 = False
-4294967294 < 4294967294 = False
-4294967294 < 4294967295 = True
-4294967294 < 0 = False
-4294967294 < 1 = False
-4294967294 < 2 = False
-4294967294 < 3 = False
-
-4294967295 < 4294967293 = False
-4294967295 < 4294967294 = False
-4294967295 < 4294967295 = False
-4294967295 < 0 = False
-4294967295 < 1 = False
-4294967295 < 2 = False
-4294967295 < 3 = False
-
-0 < 4294967293 = True
-0 < 4294967294 = True
-0 < 4294967295 = True
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < 4294967293 = True
-1 < 4294967294 = True
-1 < 4294967295 = True
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < 4294967293 = True
-2 < 4294967294 = True
-2 < 4294967295 = True
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < 4294967293 = True
-3 < 4294967294 = True
-3 < 4294967295 = True
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
-4294967293 > 4294967293 = False
-4294967293 > 4294967294 = False
-4294967293 > 4294967295 = False
-4294967293 > 0 = True
-4294967293 > 1 = True
-4294967293 > 2 = True
-4294967293 > 3 = True
-
-4294967294 > 4294967293 = True
-4294967294 > 4294967294 = False
-4294967294 > 4294967295 = False
-4294967294 > 0 = True
-4294967294 > 1 = True
-4294967294 > 2 = True
-4294967294 > 3 = True
-
-4294967295 > 4294967293 = True
-4294967295 > 4294967294 = True
-4294967295 > 4294967295 = False
-4294967295 > 0 = True
-4294967295 > 1 = True
-4294967295 > 2 = True
-4294967295 > 3 = True
-
-0 > 4294967293 = False
-0 > 4294967294 = False
-0 > 4294967295 = False
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > 4294967293 = False
-1 > 4294967294 = False
-1 > 4294967295 = False
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > 4294967293 = False
-2 > 4294967294 = False
-2 > 4294967295 = False
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > 4294967293 = False
-3 > 4294967294 = False
-3 > 4294967295 = False
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
-4294967293 >= 4294967293 = True
-4294967293 >= 4294967294 = False
-4294967293 >= 4294967295 = False
-4294967293 >= 0 = True
-4294967293 >= 1 = True
-4294967293 >= 2 = True
-4294967293 >= 3 = True
-
-4294967294 >= 4294967293 = True
-4294967294 >= 4294967294 = True
-4294967294 >= 4294967295 = False
-4294967294 >= 0 = True
-4294967294 >= 1 = True
-4294967294 >= 2 = True
-4294967294 >= 3 = True
-
-4294967295 >= 4294967293 = True
-4294967295 >= 4294967294 = True
-4294967295 >= 4294967295 = True
-4294967295 >= 0 = True
-4294967295 >= 1 = True
-4294967295 >= 2 = True
-4294967295 >= 3 = True
-
-0 >= 4294967293 = False
-0 >= 4294967294 = False
-0 >= 4294967295 = False
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= 4294967293 = False
-1 >= 4294967294 = False
-1 >= 4294967295 = False
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= 4294967293 = False
-2 >= 4294967294 = False
-2 >= 4294967295 = False
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= 4294967293 = False
-3 >= 4294967294 = False
-3 >= 4294967295 = False
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
-4294967293 `compare` 4294967293 = EQ
-4294967293 `compare` 4294967294 = LT
-4294967293 `compare` 4294967295 = LT
-4294967293 `compare` 0 = GT
-4294967293 `compare` 1 = GT
-4294967293 `compare` 2 = GT
-4294967293 `compare` 3 = GT
-
-4294967294 `compare` 4294967293 = GT
-4294967294 `compare` 4294967294 = EQ
-4294967294 `compare` 4294967295 = LT
-4294967294 `compare` 0 = GT
-4294967294 `compare` 1 = GT
-4294967294 `compare` 2 = GT
-4294967294 `compare` 3 = GT
-
-4294967295 `compare` 4294967293 = GT
-4294967295 `compare` 4294967294 = GT
-4294967295 `compare` 4294967295 = EQ
-4294967295 `compare` 0 = GT
-4294967295 `compare` 1 = GT
-4294967295 `compare` 2 = GT
-4294967295 `compare` 3 = GT
-
-0 `compare` 4294967293 = LT
-0 `compare` 4294967294 = LT
-0 `compare` 4294967295 = LT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` 4294967293 = LT
-1 `compare` 4294967294 = LT
-1 `compare` 4294967295 = LT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` 4294967293 = LT
-2 `compare` 4294967294 = LT
-2 `compare` 4294967295 = LT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` 4294967293 = LT
-3 `compare` 4294967294 = LT
-3 `compare` 4294967295 = LT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
-4294967293 + 4294967293 = 4294967290
-4294967293 + 4294967294 = 4294967291
-4294967293 + 4294967295 = 4294967292
-4294967293 + 0 = 4294967293
-4294967293 + 1 = 4294967294
-4294967293 + 2 = 4294967295
-4294967293 + 3 = 0
-
-4294967294 + 4294967293 = 4294967291
-4294967294 + 4294967294 = 4294967292
-4294967294 + 4294967295 = 4294967293
-4294967294 + 0 = 4294967294
-4294967294 + 1 = 4294967295
-4294967294 + 2 = 0
-4294967294 + 3 = 1
-
-4294967295 + 4294967293 = 4294967292
-4294967295 + 4294967294 = 4294967293
-4294967295 + 4294967295 = 4294967294
-4294967295 + 0 = 4294967295
-4294967295 + 1 = 0
-4294967295 + 2 = 1
-4294967295 + 3 = 2
-
-0 + 4294967293 = 4294967293
-0 + 4294967294 = 4294967294
-0 + 4294967295 = 4294967295
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + 4294967293 = 4294967294
-1 + 4294967294 = 4294967295
-1 + 4294967295 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + 4294967293 = 4294967295
-2 + 4294967294 = 0
-2 + 4294967295 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + 4294967293 = 0
-3 + 4294967294 = 1
-3 + 4294967295 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
-4294967293 - 4294967293 = 0
-4294967293 - 4294967294 = 4294967295
-4294967293 - 4294967295 = 4294967294
-4294967293 - 0 = 4294967293
-4294967293 - 1 = 4294967292
-4294967293 - 2 = 4294967291
-4294967293 - 3 = 4294967290
-
-4294967294 - 4294967293 = 1
-4294967294 - 4294967294 = 0
-4294967294 - 4294967295 = 4294967295
-4294967294 - 0 = 4294967294
-4294967294 - 1 = 4294967293
-4294967294 - 2 = 4294967292
-4294967294 - 3 = 4294967291
-
-4294967295 - 4294967293 = 2
-4294967295 - 4294967294 = 1
-4294967295 - 4294967295 = 0
-4294967295 - 0 = 4294967295
-4294967295 - 1 = 4294967294
-4294967295 - 2 = 4294967293
-4294967295 - 3 = 4294967292
-
-0 - 4294967293 = 3
-0 - 4294967294 = 2
-0 - 4294967295 = 1
-0 - 0 = 0
-0 - 1 = 4294967295
-0 - 2 = 4294967294
-0 - 3 = 4294967293
-
-1 - 4294967293 = 4
-1 - 4294967294 = 3
-1 - 4294967295 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = 4294967295
-1 - 3 = 4294967294
-
-2 - 4294967293 = 5
-2 - 4294967294 = 4
-2 - 4294967295 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = 4294967295
-
-3 - 4294967293 = 6
-3 - 4294967294 = 5
-3 - 4294967295 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
-4294967293 * 4294967293 = 9
-4294967293 * 4294967294 = 6
-4294967293 * 4294967295 = 3
-4294967293 * 0 = 0
-4294967293 * 1 = 4294967293
-4294967293 * 2 = 4294967290
-4294967293 * 3 = 4294967287
-
-4294967294 * 4294967293 = 6
-4294967294 * 4294967294 = 4
-4294967294 * 4294967295 = 2
-4294967294 * 0 = 0
-4294967294 * 1 = 4294967294
-4294967294 * 2 = 4294967292
-4294967294 * 3 = 4294967290
-
-4294967295 * 4294967293 = 3
-4294967295 * 4294967294 = 2
-4294967295 * 4294967295 = 1
-4294967295 * 0 = 0
-4294967295 * 1 = 4294967295
-4294967295 * 2 = 4294967294
-4294967295 * 3 = 4294967293
-
-0 * 4294967293 = 0
-0 * 4294967294 = 0
-0 * 4294967295 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * 4294967293 = 4294967293
-1 * 4294967294 = 4294967294
-1 * 4294967295 = 4294967295
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * 4294967293 = 4294967290
-2 * 4294967294 = 4294967292
-2 * 4294967295 = 4294967294
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * 4294967293 = 4294967287
-3 * 4294967294 = 4294967290
-3 * 4294967295 = 4294967293
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate 4294967293 = 3
-negate 4294967294 = 2
-negate 4294967295 = 1
-negate 0 = 0
-negate 1 = 4294967295
-negate 2 = 4294967294
-negate 3 = 4294967293
-#
-testReal
-toRational 4294967293 = 4294967293 % 1
-toRational 4294967294 = 4294967294 % 1
-toRational 4294967295 = 4294967295 % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
-4294967293 `divMod` 4294967293 = (1,0)
-4294967293 `divMod` 4294967294 = (0,4294967293)
-4294967293 `divMod` 4294967295 = (0,4294967293)
-4294967293 `divMod` 0 = divide by zero
-4294967293 `divMod` 1 = (4294967293,0)
-4294967293 `divMod` 2 = (2147483646,1)
-4294967293 `divMod` 3 = (1431655764,1)
-
-4294967294 `divMod` 4294967293 = (1,1)
-4294967294 `divMod` 4294967294 = (1,0)
-4294967294 `divMod` 4294967295 = (0,4294967294)
-4294967294 `divMod` 0 = divide by zero
-4294967294 `divMod` 1 = (4294967294,0)
-4294967294 `divMod` 2 = (2147483647,0)
-4294967294 `divMod` 3 = (1431655764,2)
-
-4294967295 `divMod` 4294967293 = (1,2)
-4294967295 `divMod` 4294967294 = (1,1)
-4294967295 `divMod` 4294967295 = (1,0)
-4294967295 `divMod` 0 = divide by zero
-4294967295 `divMod` 1 = (4294967295,0)
-4294967295 `divMod` 2 = (2147483647,1)
-4294967295 `divMod` 3 = (1431655765,0)
-
-0 `divMod` 4294967293 = (0,0)
-0 `divMod` 4294967294 = (0,0)
-0 `divMod` 4294967295 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` 4294967293 = (0,1)
-1 `divMod` 4294967294 = (0,1)
-1 `divMod` 4294967295 = (0,1)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` 4294967293 = (0,2)
-2 `divMod` 4294967294 = (0,2)
-2 `divMod` 4294967295 = (0,2)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` 4294967293 = (0,3)
-3 `divMod` 4294967294 = (0,3)
-3 `divMod` 4294967295 = (0,3)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
-4294967293 `div` 4294967293 = 1
-4294967293 `div` 4294967294 = 0
-4294967293 `div` 4294967295 = 0
-4294967293 `div` 0 = divide by zero
-4294967293 `div` 1 = 4294967293
-4294967293 `div` 2 = 2147483646
-4294967293 `div` 3 = 1431655764
-
-4294967294 `div` 4294967293 = 1
-4294967294 `div` 4294967294 = 1
-4294967294 `div` 4294967295 = 0
-4294967294 `div` 0 = divide by zero
-4294967294 `div` 1 = 4294967294
-4294967294 `div` 2 = 2147483647
-4294967294 `div` 3 = 1431655764
-
-4294967295 `div` 4294967293 = 1
-4294967295 `div` 4294967294 = 1
-4294967295 `div` 4294967295 = 1
-4294967295 `div` 0 = divide by zero
-4294967295 `div` 1 = 4294967295
-4294967295 `div` 2 = 2147483647
-4294967295 `div` 3 = 1431655765
-
-0 `div` 4294967293 = 0
-0 `div` 4294967294 = 0
-0 `div` 4294967295 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` 4294967293 = 0
-1 `div` 4294967294 = 0
-1 `div` 4294967295 = 0
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` 4294967293 = 0
-2 `div` 4294967294 = 0
-2 `div` 4294967295 = 0
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` 4294967293 = 0
-3 `div` 4294967294 = 0
-3 `div` 4294967295 = 0
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
-4294967293 `mod` 4294967293 = 0
-4294967293 `mod` 4294967294 = 4294967293
-4294967293 `mod` 4294967295 = 4294967293
-4294967293 `mod` 0 = divide by zero
-4294967293 `mod` 1 = 0
-4294967293 `mod` 2 = 1
-4294967293 `mod` 3 = 1
-
-4294967294 `mod` 4294967293 = 1
-4294967294 `mod` 4294967294 = 0
-4294967294 `mod` 4294967295 = 4294967294
-4294967294 `mod` 0 = divide by zero
-4294967294 `mod` 1 = 0
-4294967294 `mod` 2 = 0
-4294967294 `mod` 3 = 2
-
-4294967295 `mod` 4294967293 = 2
-4294967295 `mod` 4294967294 = 1
-4294967295 `mod` 4294967295 = 0
-4294967295 `mod` 0 = divide by zero
-4294967295 `mod` 1 = 0
-4294967295 `mod` 2 = 1
-4294967295 `mod` 3 = 0
-
-0 `mod` 4294967293 = 0
-0 `mod` 4294967294 = 0
-0 `mod` 4294967295 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` 4294967293 = 1
-1 `mod` 4294967294 = 1
-1 `mod` 4294967295 = 1
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` 4294967293 = 2
-2 `mod` 4294967294 = 2
-2 `mod` 4294967295 = 2
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` 4294967293 = 3
-3 `mod` 4294967294 = 3
-3 `mod` 4294967295 = 3
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
-4294967293 `quotRem` 4294967293 = (1,0)
-4294967293 `quotRem` 4294967294 = (0,4294967293)
-4294967293 `quotRem` 4294967295 = (0,4294967293)
-4294967293 `quotRem` 0 = divide by zero
-4294967293 `quotRem` 1 = (4294967293,0)
-4294967293 `quotRem` 2 = (2147483646,1)
-4294967293 `quotRem` 3 = (1431655764,1)
-
-4294967294 `quotRem` 4294967293 = (1,1)
-4294967294 `quotRem` 4294967294 = (1,0)
-4294967294 `quotRem` 4294967295 = (0,4294967294)
-4294967294 `quotRem` 0 = divide by zero
-4294967294 `quotRem` 1 = (4294967294,0)
-4294967294 `quotRem` 2 = (2147483647,0)
-4294967294 `quotRem` 3 = (1431655764,2)
-
-4294967295 `quotRem` 4294967293 = (1,2)
-4294967295 `quotRem` 4294967294 = (1,1)
-4294967295 `quotRem` 4294967295 = (1,0)
-4294967295 `quotRem` 0 = divide by zero
-4294967295 `quotRem` 1 = (4294967295,0)
-4294967295 `quotRem` 2 = (2147483647,1)
-4294967295 `quotRem` 3 = (1431655765,0)
-
-0 `quotRem` 4294967293 = (0,0)
-0 `quotRem` 4294967294 = (0,0)
-0 `quotRem` 4294967295 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` 4294967293 = (0,1)
-1 `quotRem` 4294967294 = (0,1)
-1 `quotRem` 4294967295 = (0,1)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` 4294967293 = (0,2)
-2 `quotRem` 4294967294 = (0,2)
-2 `quotRem` 4294967295 = (0,2)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` 4294967293 = (0,3)
-3 `quotRem` 4294967294 = (0,3)
-3 `quotRem` 4294967295 = (0,3)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
-4294967293 `quot` 4294967293 = 1
-4294967293 `quot` 4294967294 = 0
-4294967293 `quot` 4294967295 = 0
-4294967293 `quot` 0 = divide by zero
-4294967293 `quot` 1 = 4294967293
-4294967293 `quot` 2 = 2147483646
-4294967293 `quot` 3 = 1431655764
-
-4294967294 `quot` 4294967293 = 1
-4294967294 `quot` 4294967294 = 1
-4294967294 `quot` 4294967295 = 0
-4294967294 `quot` 0 = divide by zero
-4294967294 `quot` 1 = 4294967294
-4294967294 `quot` 2 = 2147483647
-4294967294 `quot` 3 = 1431655764
-
-4294967295 `quot` 4294967293 = 1
-4294967295 `quot` 4294967294 = 1
-4294967295 `quot` 4294967295 = 1
-4294967295 `quot` 0 = divide by zero
-4294967295 `quot` 1 = 4294967295
-4294967295 `quot` 2 = 2147483647
-4294967295 `quot` 3 = 1431655765
-
-0 `quot` 4294967293 = 0
-0 `quot` 4294967294 = 0
-0 `quot` 4294967295 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` 4294967293 = 0
-1 `quot` 4294967294 = 0
-1 `quot` 4294967295 = 0
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` 4294967293 = 0
-2 `quot` 4294967294 = 0
-2 `quot` 4294967295 = 0
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` 4294967293 = 0
-3 `quot` 4294967294 = 0
-3 `quot` 4294967295 = 0
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
-4294967293 `rem` 4294967293 = 0
-4294967293 `rem` 4294967294 = 4294967293
-4294967293 `rem` 4294967295 = 4294967293
-4294967293 `rem` 0 = divide by zero
-4294967293 `rem` 1 = 0
-4294967293 `rem` 2 = 1
-4294967293 `rem` 3 = 1
-
-4294967294 `rem` 4294967293 = 1
-4294967294 `rem` 4294967294 = 0
-4294967294 `rem` 4294967295 = 4294967294
-4294967294 `rem` 0 = divide by zero
-4294967294 `rem` 1 = 0
-4294967294 `rem` 2 = 0
-4294967294 `rem` 3 = 2
-
-4294967295 `rem` 4294967293 = 2
-4294967295 `rem` 4294967294 = 1
-4294967295 `rem` 4294967295 = 0
-4294967295 `rem` 0 = divide by zero
-4294967295 `rem` 1 = 0
-4294967295 `rem` 2 = 1
-4294967295 `rem` 3 = 0
-
-0 `rem` 4294967293 = 0
-0 `rem` 4294967294 = 0
-0 `rem` 4294967295 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` 4294967293 = 1
-1 `rem` 4294967294 = 1
-1 `rem` 4294967295 = 1
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` 4294967293 = 2
-2 `rem` 4294967294 = 2
-2 `rem` 4294967295 = 2
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` 4294967293 = 3
-3 `rem` 4294967294 = 3
-3 `rem` 4294967295 = 3
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [0,0,4294967295]
-Int : [0,0,-1]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [0,0,-1]
-Int64 : [0,0,4294967295]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [0,0,4294967295]
-Word64 : [0,0,4294967295]
-testBits
-4294967293 .&. 4294967293 = 4294967293
-4294967293 .&. 4294967294 = 4294967292
-4294967293 .&. 4294967295 = 4294967293
-4294967293 .&. 0 = 0
-4294967293 .&. 1 = 1
-4294967293 .&. 2 = 0
-4294967293 .&. 3 = 1
-
-4294967294 .&. 4294967293 = 4294967292
-4294967294 .&. 4294967294 = 4294967294
-4294967294 .&. 4294967295 = 4294967294
-4294967294 .&. 0 = 0
-4294967294 .&. 1 = 0
-4294967294 .&. 2 = 2
-4294967294 .&. 3 = 2
-
-4294967295 .&. 4294967293 = 4294967293
-4294967295 .&. 4294967294 = 4294967294
-4294967295 .&. 4294967295 = 4294967295
-4294967295 .&. 0 = 0
-4294967295 .&. 1 = 1
-4294967295 .&. 2 = 2
-4294967295 .&. 3 = 3
-
-0 .&. 4294967293 = 0
-0 .&. 4294967294 = 0
-0 .&. 4294967295 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. 4294967293 = 1
-1 .&. 4294967294 = 0
-1 .&. 4294967295 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. 4294967293 = 0
-2 .&. 4294967294 = 2
-2 .&. 4294967295 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. 4294967293 = 1
-3 .&. 4294967294 = 2
-3 .&. 4294967295 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
-4294967293 .|. 4294967293 = 4294967293
-4294967293 .|. 4294967294 = 4294967295
-4294967293 .|. 4294967295 = 4294967295
-4294967293 .|. 0 = 4294967293
-4294967293 .|. 1 = 4294967293
-4294967293 .|. 2 = 4294967295
-4294967293 .|. 3 = 4294967295
-
-4294967294 .|. 4294967293 = 4294967295
-4294967294 .|. 4294967294 = 4294967294
-4294967294 .|. 4294967295 = 4294967295
-4294967294 .|. 0 = 4294967294
-4294967294 .|. 1 = 4294967295
-4294967294 .|. 2 = 4294967294
-4294967294 .|. 3 = 4294967295
-
-4294967295 .|. 4294967293 = 4294967295
-4294967295 .|. 4294967294 = 4294967295
-4294967295 .|. 4294967295 = 4294967295
-4294967295 .|. 0 = 4294967295
-4294967295 .|. 1 = 4294967295
-4294967295 .|. 2 = 4294967295
-4294967295 .|. 3 = 4294967295
-
-0 .|. 4294967293 = 4294967293
-0 .|. 4294967294 = 4294967294
-0 .|. 4294967295 = 4294967295
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. 4294967293 = 4294967293
-1 .|. 4294967294 = 4294967295
-1 .|. 4294967295 = 4294967295
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. 4294967293 = 4294967295
-2 .|. 4294967294 = 4294967294
-2 .|. 4294967295 = 4294967295
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. 4294967293 = 4294967295
-3 .|. 4294967294 = 4294967295
-3 .|. 4294967295 = 4294967295
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
-4294967293 `xor` 4294967293 = 0
-4294967293 `xor` 4294967294 = 3
-4294967293 `xor` 4294967295 = 2
-4294967293 `xor` 0 = 4294967293
-4294967293 `xor` 1 = 4294967292
-4294967293 `xor` 2 = 4294967295
-4294967293 `xor` 3 = 4294967294
-
-4294967294 `xor` 4294967293 = 3
-4294967294 `xor` 4294967294 = 0
-4294967294 `xor` 4294967295 = 1
-4294967294 `xor` 0 = 4294967294
-4294967294 `xor` 1 = 4294967295
-4294967294 `xor` 2 = 4294967292
-4294967294 `xor` 3 = 4294967293
-
-4294967295 `xor` 4294967293 = 2
-4294967295 `xor` 4294967294 = 1
-4294967295 `xor` 4294967295 = 0
-4294967295 `xor` 0 = 4294967295
-4294967295 `xor` 1 = 4294967294
-4294967295 `xor` 2 = 4294967293
-4294967295 `xor` 3 = 4294967292
-
-0 `xor` 4294967293 = 4294967293
-0 `xor` 4294967294 = 4294967294
-0 `xor` 4294967295 = 4294967295
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` 4294967293 = 4294967292
-1 `xor` 4294967294 = 4294967295
-1 `xor` 4294967295 = 4294967294
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` 4294967293 = 4294967295
-2 `xor` 4294967294 = 4294967292
-2 `xor` 4294967295 = 4294967293
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` 4294967293 = 4294967294
-3 `xor` 4294967294 = 4294967293
-3 `xor` 4294967295 = 4294967292
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement 4294967293 = 2
-complement 4294967294 = 1
-complement 4294967295 = 0
-complement 0 = 4294967295
-complement 1 = 4294967294
-complement 2 = 4294967293
-complement 3 = 4294967292
-#
-4294967293 `shiftL` 0 = 4294967293
-4294967293 `shiftL` 1 = 4294967290
-4294967293 `shiftL` 2 = 4294967284
-4294967293 `shiftL` 3 = 4294967272
-4294967293 `shiftL` 32 = 0
-4294967293 `shiftL` 64 = 0
-
-4294967294 `shiftL` 0 = 4294967294
-4294967294 `shiftL` 1 = 4294967292
-4294967294 `shiftL` 2 = 4294967288
-4294967294 `shiftL` 3 = 4294967280
-4294967294 `shiftL` 32 = 0
-4294967294 `shiftL` 64 = 0
-
-4294967295 `shiftL` 0 = 4294967295
-4294967295 `shiftL` 1 = 4294967294
-4294967295 `shiftL` 2 = 4294967292
-4294967295 `shiftL` 3 = 4294967288
-4294967295 `shiftL` 32 = 0
-4294967295 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
-4294967293 `shiftR` 0 = 4294967293
-4294967293 `shiftR` 1 = 2147483646
-4294967293 `shiftR` 2 = 1073741823
-4294967293 `shiftR` 3 = 536870911
-4294967293 `shiftR` 32 = 0
-4294967293 `shiftR` 64 = 0
-
-4294967294 `shiftR` 0 = 4294967294
-4294967294 `shiftR` 1 = 2147483647
-4294967294 `shiftR` 2 = 1073741823
-4294967294 `shiftR` 3 = 536870911
-4294967294 `shiftR` 32 = 0
-4294967294 `shiftR` 64 = 0
-
-4294967295 `shiftR` 0 = 4294967295
-4294967295 `shiftR` 1 = 2147483647
-4294967295 `shiftR` 2 = 1073741823
-4294967295 `shiftR` 3 = 536870911
-4294967295 `shiftR` 32 = 0
-4294967295 `shiftR` 64 = 0
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
-4294967293 `rotate` -3 = 3221225471
-4294967293 `rotate` -2 = 2147483647
-4294967293 `rotate` -1 = 4294967294
-4294967293 `rotate` 0 = 4294967293
-4294967293 `rotate` 1 = 4294967291
-4294967293 `rotate` 2 = 4294967287
-4294967293 `rotate` 3 = 4294967279
-4294967293 `rotate` -64 = 4294967293
-4294967293 `rotate` -32 = 4294967293
-4294967293 `rotate` 32 = 4294967293
-4294967293 `rotate` 64 = 4294967293
-
-4294967294 `rotate` -3 = 3758096383
-4294967294 `rotate` -2 = 3221225471
-4294967294 `rotate` -1 = 2147483647
-4294967294 `rotate` 0 = 4294967294
-4294967294 `rotate` 1 = 4294967293
-4294967294 `rotate` 2 = 4294967291
-4294967294 `rotate` 3 = 4294967287
-4294967294 `rotate` -64 = 4294967294
-4294967294 `rotate` -32 = 4294967294
-4294967294 `rotate` 32 = 4294967294
-4294967294 `rotate` 64 = 4294967294
-
-4294967295 `rotate` -3 = 4294967295
-4294967295 `rotate` -2 = 4294967295
-4294967295 `rotate` -1 = 4294967295
-4294967295 `rotate` 0 = 4294967295
-4294967295 `rotate` 1 = 4294967295
-4294967295 `rotate` 2 = 4294967295
-4294967295 `rotate` 3 = 4294967295
-4294967295 `rotate` -64 = 4294967295
-4294967295 `rotate` -32 = 4294967295
-4294967295 `rotate` 32 = 4294967295
-4294967295 `rotate` 64 = 4294967295
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-0 `rotate` -64 = 0
-0 `rotate` -32 = 0
-0 `rotate` 32 = 0
-0 `rotate` 64 = 0
-
-1 `rotate` -3 = 536870912
-1 `rotate` -2 = 1073741824
-1 `rotate` -1 = 2147483648
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-1 `rotate` -64 = 1
-1 `rotate` -32 = 1
-1 `rotate` 32 = 1
-1 `rotate` 64 = 1
-
-2 `rotate` -3 = 1073741824
-2 `rotate` -2 = 2147483648
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-2 `rotate` -64 = 2
-2 `rotate` -32 = 2
-2 `rotate` 32 = 2
-2 `rotate` 64 = 2
-
-3 `rotate` -3 = 1610612736
-3 `rotate` -2 = 3221225472
-3 `rotate` -1 = 2147483649
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-3 `rotate` -64 = 3
-3 `rotate` -32 = 3
-3 `rotate` 32 = 3
-3 `rotate` 64 = 3
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
-4294967293 `setBit` 0 = 4294967293
-4294967293 `setBit` 1 = 4294967295
-4294967293 `setBit` 2 = 4294967293
-4294967293 `setBit` 3 = 4294967293
-4294967293 `setBit` 32 = 4294967293
-4294967293 `setBit` 64 = 4294967293
-
-4294967294 `setBit` 0 = 4294967295
-4294967294 `setBit` 1 = 4294967294
-4294967294 `setBit` 2 = 4294967294
-4294967294 `setBit` 3 = 4294967294
-4294967294 `setBit` 32 = 4294967294
-4294967294 `setBit` 64 = 4294967294
-
-4294967295 `setBit` 0 = 4294967295
-4294967295 `setBit` 1 = 4294967295
-4294967295 `setBit` 2 = 4294967295
-4294967295 `setBit` 3 = 4294967295
-4294967295 `setBit` 32 = 4294967295
-4294967295 `setBit` 64 = 4294967295
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
-4294967293 `clearBit` 0 = 4294967292
-4294967293 `clearBit` 1 = 4294967293
-4294967293 `clearBit` 2 = 4294967289
-4294967293 `clearBit` 3 = 4294967285
-4294967293 `clearBit` 32 = 4294967293
-4294967293 `clearBit` 64 = 4294967293
-
-4294967294 `clearBit` 0 = 4294967294
-4294967294 `clearBit` 1 = 4294967292
-4294967294 `clearBit` 2 = 4294967290
-4294967294 `clearBit` 3 = 4294967286
-4294967294 `clearBit` 32 = 4294967294
-4294967294 `clearBit` 64 = 4294967294
-
-4294967295 `clearBit` 0 = 4294967294
-4294967295 `clearBit` 1 = 4294967293
-4294967295 `clearBit` 2 = 4294967291
-4294967295 `clearBit` 3 = 4294967287
-4294967295 `clearBit` 32 = 4294967295
-4294967295 `clearBit` 64 = 4294967295
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
-4294967293 `complementBit` 0 = 4294967292
-4294967293 `complementBit` 1 = 4294967295
-4294967293 `complementBit` 2 = 4294967289
-4294967293 `complementBit` 3 = 4294967285
-4294967293 `complementBit` 32 = 4294967293
-4294967293 `complementBit` 64 = 4294967293
-
-4294967294 `complementBit` 0 = 4294967295
-4294967294 `complementBit` 1 = 4294967292
-4294967294 `complementBit` 2 = 4294967290
-4294967294 `complementBit` 3 = 4294967286
-4294967294 `complementBit` 32 = 4294967294
-4294967294 `complementBit` 64 = 4294967294
-
-4294967295 `complementBit` 0 = 4294967294
-4294967295 `complementBit` 1 = 4294967293
-4294967295 `complementBit` 2 = 4294967291
-4294967295 `complementBit` 3 = 4294967287
-4294967295 `complementBit` 32 = 4294967295
-4294967295 `complementBit` 64 = 4294967295
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
-4294967293 `testBit` 0 = True
-4294967293 `testBit` 1 = False
-4294967293 `testBit` 2 = True
-4294967293 `testBit` 3 = True
-4294967293 `testBit` 32 = False
-4294967293 `testBit` 64 = False
-
-4294967294 `testBit` 0 = False
-4294967294 `testBit` 1 = True
-4294967294 `testBit` 2 = True
-4294967294 `testBit` 3 = True
-4294967294 `testBit` 32 = False
-4294967294 `testBit` 64 = False
-
-4294967295 `testBit` 0 = True
-4294967295 `testBit` 1 = True
-4294967295 `testBit` 2 = True
-4294967295 `testBit` 3 = True
-4294967295 `testBit` 32 = False
-4294967295 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize 4294967293 = 32
-bitSize 4294967294 = 32
-bitSize 4294967295 = 32
-bitSize 0 = 32
-bitSize 1 = 32
-bitSize 2 = 32
-bitSize 3 = 32
-#
-isSigned 4294967293 = False
-isSigned 4294967294 = False
-isSigned 4294967295 = False
-isSigned 0 = False
-isSigned 1 = False
-isSigned 2 = False
-isSigned 3 = False
-#
---------------------------------
---Testing Word64
---------------------------------
-testBounded
-(18446744073709551615,0,1)
-(18446744073709551614,18446744073709551615,0)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[18446744073709551613,18446744073709551614,18446744073709551615,0,1,2,3]
-[18446744073709551613,18446744073709551614,18446744073709551615,0,1,2,3]
-testEq
-18446744073709551613 == 18446744073709551613 = True
-18446744073709551613 == 18446744073709551614 = False
-18446744073709551613 == 18446744073709551615 = False
-18446744073709551613 == 0 = False
-18446744073709551613 == 1 = False
-18446744073709551613 == 2 = False
-18446744073709551613 == 3 = False
-
-18446744073709551614 == 18446744073709551613 = False
-18446744073709551614 == 18446744073709551614 = True
-18446744073709551614 == 18446744073709551615 = False
-18446744073709551614 == 0 = False
-18446744073709551614 == 1 = False
-18446744073709551614 == 2 = False
-18446744073709551614 == 3 = False
-
-18446744073709551615 == 18446744073709551613 = False
-18446744073709551615 == 18446744073709551614 = False
-18446744073709551615 == 18446744073709551615 = True
-18446744073709551615 == 0 = False
-18446744073709551615 == 1 = False
-18446744073709551615 == 2 = False
-18446744073709551615 == 3 = False
-
-0 == 18446744073709551613 = False
-0 == 18446744073709551614 = False
-0 == 18446744073709551615 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == 18446744073709551613 = False
-1 == 18446744073709551614 = False
-1 == 18446744073709551615 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == 18446744073709551613 = False
-2 == 18446744073709551614 = False
-2 == 18446744073709551615 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == 18446744073709551613 = False
-3 == 18446744073709551614 = False
-3 == 18446744073709551615 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
-18446744073709551613 /= 18446744073709551613 = False
-18446744073709551613 /= 18446744073709551614 = True
-18446744073709551613 /= 18446744073709551615 = True
-18446744073709551613 /= 0 = True
-18446744073709551613 /= 1 = True
-18446744073709551613 /= 2 = True
-18446744073709551613 /= 3 = True
-
-18446744073709551614 /= 18446744073709551613 = True
-18446744073709551614 /= 18446744073709551614 = False
-18446744073709551614 /= 18446744073709551615 = True
-18446744073709551614 /= 0 = True
-18446744073709551614 /= 1 = True
-18446744073709551614 /= 2 = True
-18446744073709551614 /= 3 = True
-
-18446744073709551615 /= 18446744073709551613 = True
-18446744073709551615 /= 18446744073709551614 = True
-18446744073709551615 /= 18446744073709551615 = False
-18446744073709551615 /= 0 = True
-18446744073709551615 /= 1 = True
-18446744073709551615 /= 2 = True
-18446744073709551615 /= 3 = True
-
-0 /= 18446744073709551613 = True
-0 /= 18446744073709551614 = True
-0 /= 18446744073709551615 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= 18446744073709551613 = True
-1 /= 18446744073709551614 = True
-1 /= 18446744073709551615 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= 18446744073709551613 = True
-2 /= 18446744073709551614 = True
-2 /= 18446744073709551615 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= 18446744073709551613 = True
-3 /= 18446744073709551614 = True
-3 /= 18446744073709551615 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
-18446744073709551613 <= 18446744073709551613 = True
-18446744073709551613 <= 18446744073709551614 = True
-18446744073709551613 <= 18446744073709551615 = True
-18446744073709551613 <= 0 = False
-18446744073709551613 <= 1 = False
-18446744073709551613 <= 2 = False
-18446744073709551613 <= 3 = False
-
-18446744073709551614 <= 18446744073709551613 = False
-18446744073709551614 <= 18446744073709551614 = True
-18446744073709551614 <= 18446744073709551615 = True
-18446744073709551614 <= 0 = False
-18446744073709551614 <= 1 = False
-18446744073709551614 <= 2 = False
-18446744073709551614 <= 3 = False
-
-18446744073709551615 <= 18446744073709551613 = False
-18446744073709551615 <= 18446744073709551614 = False
-18446744073709551615 <= 18446744073709551615 = True
-18446744073709551615 <= 0 = False
-18446744073709551615 <= 1 = False
-18446744073709551615 <= 2 = False
-18446744073709551615 <= 3 = False
-
-0 <= 18446744073709551613 = True
-0 <= 18446744073709551614 = True
-0 <= 18446744073709551615 = True
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= 18446744073709551613 = True
-1 <= 18446744073709551614 = True
-1 <= 18446744073709551615 = True
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= 18446744073709551613 = True
-2 <= 18446744073709551614 = True
-2 <= 18446744073709551615 = True
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= 18446744073709551613 = True
-3 <= 18446744073709551614 = True
-3 <= 18446744073709551615 = True
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
-18446744073709551613 < 18446744073709551613 = False
-18446744073709551613 < 18446744073709551614 = True
-18446744073709551613 < 18446744073709551615 = True
-18446744073709551613 < 0 = False
-18446744073709551613 < 1 = False
-18446744073709551613 < 2 = False
-18446744073709551613 < 3 = False
-
-18446744073709551614 < 18446744073709551613 = False
-18446744073709551614 < 18446744073709551614 = False
-18446744073709551614 < 18446744073709551615 = True
-18446744073709551614 < 0 = False
-18446744073709551614 < 1 = False
-18446744073709551614 < 2 = False
-18446744073709551614 < 3 = False
-
-18446744073709551615 < 18446744073709551613 = False
-18446744073709551615 < 18446744073709551614 = False
-18446744073709551615 < 18446744073709551615 = False
-18446744073709551615 < 0 = False
-18446744073709551615 < 1 = False
-18446744073709551615 < 2 = False
-18446744073709551615 < 3 = False
-
-0 < 18446744073709551613 = True
-0 < 18446744073709551614 = True
-0 < 18446744073709551615 = True
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < 18446744073709551613 = True
-1 < 18446744073709551614 = True
-1 < 18446744073709551615 = True
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < 18446744073709551613 = True
-2 < 18446744073709551614 = True
-2 < 18446744073709551615 = True
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < 18446744073709551613 = True
-3 < 18446744073709551614 = True
-3 < 18446744073709551615 = True
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
-18446744073709551613 > 18446744073709551613 = False
-18446744073709551613 > 18446744073709551614 = False
-18446744073709551613 > 18446744073709551615 = False
-18446744073709551613 > 0 = True
-18446744073709551613 > 1 = True
-18446744073709551613 > 2 = True
-18446744073709551613 > 3 = True
-
-18446744073709551614 > 18446744073709551613 = True
-18446744073709551614 > 18446744073709551614 = False
-18446744073709551614 > 18446744073709551615 = False
-18446744073709551614 > 0 = True
-18446744073709551614 > 1 = True
-18446744073709551614 > 2 = True
-18446744073709551614 > 3 = True
-
-18446744073709551615 > 18446744073709551613 = True
-18446744073709551615 > 18446744073709551614 = True
-18446744073709551615 > 18446744073709551615 = False
-18446744073709551615 > 0 = True
-18446744073709551615 > 1 = True
-18446744073709551615 > 2 = True
-18446744073709551615 > 3 = True
-
-0 > 18446744073709551613 = False
-0 > 18446744073709551614 = False
-0 > 18446744073709551615 = False
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > 18446744073709551613 = False
-1 > 18446744073709551614 = False
-1 > 18446744073709551615 = False
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > 18446744073709551613 = False
-2 > 18446744073709551614 = False
-2 > 18446744073709551615 = False
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > 18446744073709551613 = False
-3 > 18446744073709551614 = False
-3 > 18446744073709551615 = False
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
-18446744073709551613 >= 18446744073709551613 = True
-18446744073709551613 >= 18446744073709551614 = False
-18446744073709551613 >= 18446744073709551615 = False
-18446744073709551613 >= 0 = True
-18446744073709551613 >= 1 = True
-18446744073709551613 >= 2 = True
-18446744073709551613 >= 3 = True
-
-18446744073709551614 >= 18446744073709551613 = True
-18446744073709551614 >= 18446744073709551614 = True
-18446744073709551614 >= 18446744073709551615 = False
-18446744073709551614 >= 0 = True
-18446744073709551614 >= 1 = True
-18446744073709551614 >= 2 = True
-18446744073709551614 >= 3 = True
-
-18446744073709551615 >= 18446744073709551613 = True
-18446744073709551615 >= 18446744073709551614 = True
-18446744073709551615 >= 18446744073709551615 = True
-18446744073709551615 >= 0 = True
-18446744073709551615 >= 1 = True
-18446744073709551615 >= 2 = True
-18446744073709551615 >= 3 = True
-
-0 >= 18446744073709551613 = False
-0 >= 18446744073709551614 = False
-0 >= 18446744073709551615 = False
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= 18446744073709551613 = False
-1 >= 18446744073709551614 = False
-1 >= 18446744073709551615 = False
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= 18446744073709551613 = False
-2 >= 18446744073709551614 = False
-2 >= 18446744073709551615 = False
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= 18446744073709551613 = False
-3 >= 18446744073709551614 = False
-3 >= 18446744073709551615 = False
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
-18446744073709551613 `compare` 18446744073709551613 = EQ
-18446744073709551613 `compare` 18446744073709551614 = LT
-18446744073709551613 `compare` 18446744073709551615 = LT
-18446744073709551613 `compare` 0 = GT
-18446744073709551613 `compare` 1 = GT
-18446744073709551613 `compare` 2 = GT
-18446744073709551613 `compare` 3 = GT
-
-18446744073709551614 `compare` 18446744073709551613 = GT
-18446744073709551614 `compare` 18446744073709551614 = EQ
-18446744073709551614 `compare` 18446744073709551615 = LT
-18446744073709551614 `compare` 0 = GT
-18446744073709551614 `compare` 1 = GT
-18446744073709551614 `compare` 2 = GT
-18446744073709551614 `compare` 3 = GT
-
-18446744073709551615 `compare` 18446744073709551613 = GT
-18446744073709551615 `compare` 18446744073709551614 = GT
-18446744073709551615 `compare` 18446744073709551615 = EQ
-18446744073709551615 `compare` 0 = GT
-18446744073709551615 `compare` 1 = GT
-18446744073709551615 `compare` 2 = GT
-18446744073709551615 `compare` 3 = GT
-
-0 `compare` 18446744073709551613 = LT
-0 `compare` 18446744073709551614 = LT
-0 `compare` 18446744073709551615 = LT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` 18446744073709551613 = LT
-1 `compare` 18446744073709551614 = LT
-1 `compare` 18446744073709551615 = LT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` 18446744073709551613 = LT
-2 `compare` 18446744073709551614 = LT
-2 `compare` 18446744073709551615 = LT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` 18446744073709551613 = LT
-3 `compare` 18446744073709551614 = LT
-3 `compare` 18446744073709551615 = LT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
-18446744073709551613 + 18446744073709551613 = 18446744073709551610
-18446744073709551613 + 18446744073709551614 = 18446744073709551611
-18446744073709551613 + 18446744073709551615 = 18446744073709551612
-18446744073709551613 + 0 = 18446744073709551613
-18446744073709551613 + 1 = 18446744073709551614
-18446744073709551613 + 2 = 18446744073709551615
-18446744073709551613 + 3 = 0
-
-18446744073709551614 + 18446744073709551613 = 18446744073709551611
-18446744073709551614 + 18446744073709551614 = 18446744073709551612
-18446744073709551614 + 18446744073709551615 = 18446744073709551613
-18446744073709551614 + 0 = 18446744073709551614
-18446744073709551614 + 1 = 18446744073709551615
-18446744073709551614 + 2 = 0
-18446744073709551614 + 3 = 1
-
-18446744073709551615 + 18446744073709551613 = 18446744073709551612
-18446744073709551615 + 18446744073709551614 = 18446744073709551613
-18446744073709551615 + 18446744073709551615 = 18446744073709551614
-18446744073709551615 + 0 = 18446744073709551615
-18446744073709551615 + 1 = 0
-18446744073709551615 + 2 = 1
-18446744073709551615 + 3 = 2
-
-0 + 18446744073709551613 = 18446744073709551613
-0 + 18446744073709551614 = 18446744073709551614
-0 + 18446744073709551615 = 18446744073709551615
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + 18446744073709551613 = 18446744073709551614
-1 + 18446744073709551614 = 18446744073709551615
-1 + 18446744073709551615 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + 18446744073709551613 = 18446744073709551615
-2 + 18446744073709551614 = 0
-2 + 18446744073709551615 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + 18446744073709551613 = 0
-3 + 18446744073709551614 = 1
-3 + 18446744073709551615 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
-18446744073709551613 - 18446744073709551613 = 0
-18446744073709551613 - 18446744073709551614 = 18446744073709551615
-18446744073709551613 - 18446744073709551615 = 18446744073709551614
-18446744073709551613 - 0 = 18446744073709551613
-18446744073709551613 - 1 = 18446744073709551612
-18446744073709551613 - 2 = 18446744073709551611
-18446744073709551613 - 3 = 18446744073709551610
-
-18446744073709551614 - 18446744073709551613 = 1
-18446744073709551614 - 18446744073709551614 = 0
-18446744073709551614 - 18446744073709551615 = 18446744073709551615
-18446744073709551614 - 0 = 18446744073709551614
-18446744073709551614 - 1 = 18446744073709551613
-18446744073709551614 - 2 = 18446744073709551612
-18446744073709551614 - 3 = 18446744073709551611
-
-18446744073709551615 - 18446744073709551613 = 2
-18446744073709551615 - 18446744073709551614 = 1
-18446744073709551615 - 18446744073709551615 = 0
-18446744073709551615 - 0 = 18446744073709551615
-18446744073709551615 - 1 = 18446744073709551614
-18446744073709551615 - 2 = 18446744073709551613
-18446744073709551615 - 3 = 18446744073709551612
-
-0 - 18446744073709551613 = 3
-0 - 18446744073709551614 = 2
-0 - 18446744073709551615 = 1
-0 - 0 = 0
-0 - 1 = 18446744073709551615
-0 - 2 = 18446744073709551614
-0 - 3 = 18446744073709551613
-
-1 - 18446744073709551613 = 4
-1 - 18446744073709551614 = 3
-1 - 18446744073709551615 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = 18446744073709551615
-1 - 3 = 18446744073709551614
-
-2 - 18446744073709551613 = 5
-2 - 18446744073709551614 = 4
-2 - 18446744073709551615 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = 18446744073709551615
-
-3 - 18446744073709551613 = 6
-3 - 18446744073709551614 = 5
-3 - 18446744073709551615 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
-18446744073709551613 * 18446744073709551613 = 9
-18446744073709551613 * 18446744073709551614 = 6
-18446744073709551613 * 18446744073709551615 = 3
-18446744073709551613 * 0 = 0
-18446744073709551613 * 1 = 18446744073709551613
-18446744073709551613 * 2 = 18446744073709551610
-18446744073709551613 * 3 = 18446744073709551607
-
-18446744073709551614 * 18446744073709551613 = 6
-18446744073709551614 * 18446744073709551614 = 4
-18446744073709551614 * 18446744073709551615 = 2
-18446744073709551614 * 0 = 0
-18446744073709551614 * 1 = 18446744073709551614
-18446744073709551614 * 2 = 18446744073709551612
-18446744073709551614 * 3 = 18446744073709551610
-
-18446744073709551615 * 18446744073709551613 = 3
-18446744073709551615 * 18446744073709551614 = 2
-18446744073709551615 * 18446744073709551615 = 1
-18446744073709551615 * 0 = 0
-18446744073709551615 * 1 = 18446744073709551615
-18446744073709551615 * 2 = 18446744073709551614
-18446744073709551615 * 3 = 18446744073709551613
-
-0 * 18446744073709551613 = 0
-0 * 18446744073709551614 = 0
-0 * 18446744073709551615 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * 18446744073709551613 = 18446744073709551613
-1 * 18446744073709551614 = 18446744073709551614
-1 * 18446744073709551615 = 18446744073709551615
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * 18446744073709551613 = 18446744073709551610
-2 * 18446744073709551614 = 18446744073709551612
-2 * 18446744073709551615 = 18446744073709551614
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * 18446744073709551613 = 18446744073709551607
-3 * 18446744073709551614 = 18446744073709551610
-3 * 18446744073709551615 = 18446744073709551613
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate 18446744073709551613 = 3
-negate 18446744073709551614 = 2
-negate 18446744073709551615 = 1
-negate 0 = 0
-negate 1 = 18446744073709551615
-negate 2 = 18446744073709551614
-negate 3 = 18446744073709551613
-#
-testReal
-toRational 18446744073709551613 = 18446744073709551613 % 1
-toRational 18446744073709551614 = 18446744073709551614 % 1
-toRational 18446744073709551615 = 18446744073709551615 % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
-18446744073709551613 `divMod` 18446744073709551613 = (1,0)
-18446744073709551613 `divMod` 18446744073709551614 = (0,18446744073709551613)
-18446744073709551613 `divMod` 18446744073709551615 = (0,18446744073709551613)
-18446744073709551613 `divMod` 0 = divide by zero
-18446744073709551613 `divMod` 1 = (18446744073709551613,0)
-18446744073709551613 `divMod` 2 = (9223372036854775806,1)
-18446744073709551613 `divMod` 3 = (6148914691236517204,1)
-
-18446744073709551614 `divMod` 18446744073709551613 = (1,1)
-18446744073709551614 `divMod` 18446744073709551614 = (1,0)
-18446744073709551614 `divMod` 18446744073709551615 = (0,18446744073709551614)
-18446744073709551614 `divMod` 0 = divide by zero
-18446744073709551614 `divMod` 1 = (18446744073709551614,0)
-18446744073709551614 `divMod` 2 = (9223372036854775807,0)
-18446744073709551614 `divMod` 3 = (6148914691236517204,2)
-
-18446744073709551615 `divMod` 18446744073709551613 = (1,2)
-18446744073709551615 `divMod` 18446744073709551614 = (1,1)
-18446744073709551615 `divMod` 18446744073709551615 = (1,0)
-18446744073709551615 `divMod` 0 = divide by zero
-18446744073709551615 `divMod` 1 = (18446744073709551615,0)
-18446744073709551615 `divMod` 2 = (9223372036854775807,1)
-18446744073709551615 `divMod` 3 = (6148914691236517205,0)
-
-0 `divMod` 18446744073709551613 = (0,0)
-0 `divMod` 18446744073709551614 = (0,0)
-0 `divMod` 18446744073709551615 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` 18446744073709551613 = (0,1)
-1 `divMod` 18446744073709551614 = (0,1)
-1 `divMod` 18446744073709551615 = (0,1)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` 18446744073709551613 = (0,2)
-2 `divMod` 18446744073709551614 = (0,2)
-2 `divMod` 18446744073709551615 = (0,2)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` 18446744073709551613 = (0,3)
-3 `divMod` 18446744073709551614 = (0,3)
-3 `divMod` 18446744073709551615 = (0,3)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
-18446744073709551613 `div` 18446744073709551613 = 1
-18446744073709551613 `div` 18446744073709551614 = 0
-18446744073709551613 `div` 18446744073709551615 = 0
-18446744073709551613 `div` 0 = divide by zero
-18446744073709551613 `div` 1 = 18446744073709551613
-18446744073709551613 `div` 2 = 9223372036854775806
-18446744073709551613 `div` 3 = 6148914691236517204
-
-18446744073709551614 `div` 18446744073709551613 = 1
-18446744073709551614 `div` 18446744073709551614 = 1
-18446744073709551614 `div` 18446744073709551615 = 0
-18446744073709551614 `div` 0 = divide by zero
-18446744073709551614 `div` 1 = 18446744073709551614
-18446744073709551614 `div` 2 = 9223372036854775807
-18446744073709551614 `div` 3 = 6148914691236517204
-
-18446744073709551615 `div` 18446744073709551613 = 1
-18446744073709551615 `div` 18446744073709551614 = 1
-18446744073709551615 `div` 18446744073709551615 = 1
-18446744073709551615 `div` 0 = divide by zero
-18446744073709551615 `div` 1 = 18446744073709551615
-18446744073709551615 `div` 2 = 9223372036854775807
-18446744073709551615 `div` 3 = 6148914691236517205
-
-0 `div` 18446744073709551613 = 0
-0 `div` 18446744073709551614 = 0
-0 `div` 18446744073709551615 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` 18446744073709551613 = 0
-1 `div` 18446744073709551614 = 0
-1 `div` 18446744073709551615 = 0
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` 18446744073709551613 = 0
-2 `div` 18446744073709551614 = 0
-2 `div` 18446744073709551615 = 0
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` 18446744073709551613 = 0
-3 `div` 18446744073709551614 = 0
-3 `div` 18446744073709551615 = 0
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
-18446744073709551613 `mod` 18446744073709551613 = 0
-18446744073709551613 `mod` 18446744073709551614 = 18446744073709551613
-18446744073709551613 `mod` 18446744073709551615 = 18446744073709551613
-18446744073709551613 `mod` 0 = divide by zero
-18446744073709551613 `mod` 1 = 0
-18446744073709551613 `mod` 2 = 1
-18446744073709551613 `mod` 3 = 1
-
-18446744073709551614 `mod` 18446744073709551613 = 1
-18446744073709551614 `mod` 18446744073709551614 = 0
-18446744073709551614 `mod` 18446744073709551615 = 18446744073709551614
-18446744073709551614 `mod` 0 = divide by zero
-18446744073709551614 `mod` 1 = 0
-18446744073709551614 `mod` 2 = 0
-18446744073709551614 `mod` 3 = 2
-
-18446744073709551615 `mod` 18446744073709551613 = 2
-18446744073709551615 `mod` 18446744073709551614 = 1
-18446744073709551615 `mod` 18446744073709551615 = 0
-18446744073709551615 `mod` 0 = divide by zero
-18446744073709551615 `mod` 1 = 0
-18446744073709551615 `mod` 2 = 1
-18446744073709551615 `mod` 3 = 0
-
-0 `mod` 18446744073709551613 = 0
-0 `mod` 18446744073709551614 = 0
-0 `mod` 18446744073709551615 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` 18446744073709551613 = 1
-1 `mod` 18446744073709551614 = 1
-1 `mod` 18446744073709551615 = 1
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` 18446744073709551613 = 2
-2 `mod` 18446744073709551614 = 2
-2 `mod` 18446744073709551615 = 2
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` 18446744073709551613 = 3
-3 `mod` 18446744073709551614 = 3
-3 `mod` 18446744073709551615 = 3
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
-18446744073709551613 `quotRem` 18446744073709551613 = (1,0)
-18446744073709551613 `quotRem` 18446744073709551614 = (0,18446744073709551613)
-18446744073709551613 `quotRem` 18446744073709551615 = (0,18446744073709551613)
-18446744073709551613 `quotRem` 0 = divide by zero
-18446744073709551613 `quotRem` 1 = (18446744073709551613,0)
-18446744073709551613 `quotRem` 2 = (9223372036854775806,1)
-18446744073709551613 `quotRem` 3 = (6148914691236517204,1)
-
-18446744073709551614 `quotRem` 18446744073709551613 = (1,1)
-18446744073709551614 `quotRem` 18446744073709551614 = (1,0)
-18446744073709551614 `quotRem` 18446744073709551615 = (0,18446744073709551614)
-18446744073709551614 `quotRem` 0 = divide by zero
-18446744073709551614 `quotRem` 1 = (18446744073709551614,0)
-18446744073709551614 `quotRem` 2 = (9223372036854775807,0)
-18446744073709551614 `quotRem` 3 = (6148914691236517204,2)
-
-18446744073709551615 `quotRem` 18446744073709551613 = (1,2)
-18446744073709551615 `quotRem` 18446744073709551614 = (1,1)
-18446744073709551615 `quotRem` 18446744073709551615 = (1,0)
-18446744073709551615 `quotRem` 0 = divide by zero
-18446744073709551615 `quotRem` 1 = (18446744073709551615,0)
-18446744073709551615 `quotRem` 2 = (9223372036854775807,1)
-18446744073709551615 `quotRem` 3 = (6148914691236517205,0)
-
-0 `quotRem` 18446744073709551613 = (0,0)
-0 `quotRem` 18446744073709551614 = (0,0)
-0 `quotRem` 18446744073709551615 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` 18446744073709551613 = (0,1)
-1 `quotRem` 18446744073709551614 = (0,1)
-1 `quotRem` 18446744073709551615 = (0,1)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` 18446744073709551613 = (0,2)
-2 `quotRem` 18446744073709551614 = (0,2)
-2 `quotRem` 18446744073709551615 = (0,2)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` 18446744073709551613 = (0,3)
-3 `quotRem` 18446744073709551614 = (0,3)
-3 `quotRem` 18446744073709551615 = (0,3)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
-18446744073709551613 `quot` 18446744073709551613 = 1
-18446744073709551613 `quot` 18446744073709551614 = 0
-18446744073709551613 `quot` 18446744073709551615 = 0
-18446744073709551613 `quot` 0 = divide by zero
-18446744073709551613 `quot` 1 = 18446744073709551613
-18446744073709551613 `quot` 2 = 9223372036854775806
-18446744073709551613 `quot` 3 = 6148914691236517204
-
-18446744073709551614 `quot` 18446744073709551613 = 1
-18446744073709551614 `quot` 18446744073709551614 = 1
-18446744073709551614 `quot` 18446744073709551615 = 0
-18446744073709551614 `quot` 0 = divide by zero
-18446744073709551614 `quot` 1 = 18446744073709551614
-18446744073709551614 `quot` 2 = 9223372036854775807
-18446744073709551614 `quot` 3 = 6148914691236517204
-
-18446744073709551615 `quot` 18446744073709551613 = 1
-18446744073709551615 `quot` 18446744073709551614 = 1
-18446744073709551615 `quot` 18446744073709551615 = 1
-18446744073709551615 `quot` 0 = divide by zero
-18446744073709551615 `quot` 1 = 18446744073709551615
-18446744073709551615 `quot` 2 = 9223372036854775807
-18446744073709551615 `quot` 3 = 6148914691236517205
-
-0 `quot` 18446744073709551613 = 0
-0 `quot` 18446744073709551614 = 0
-0 `quot` 18446744073709551615 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` 18446744073709551613 = 0
-1 `quot` 18446744073709551614 = 0
-1 `quot` 18446744073709551615 = 0
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` 18446744073709551613 = 0
-2 `quot` 18446744073709551614 = 0
-2 `quot` 18446744073709551615 = 0
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` 18446744073709551613 = 0
-3 `quot` 18446744073709551614 = 0
-3 `quot` 18446744073709551615 = 0
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
-18446744073709551613 `rem` 18446744073709551613 = 0
-18446744073709551613 `rem` 18446744073709551614 = 18446744073709551613
-18446744073709551613 `rem` 18446744073709551615 = 18446744073709551613
-18446744073709551613 `rem` 0 = divide by zero
-18446744073709551613 `rem` 1 = 0
-18446744073709551613 `rem` 2 = 1
-18446744073709551613 `rem` 3 = 1
-
-18446744073709551614 `rem` 18446744073709551613 = 1
-18446744073709551614 `rem` 18446744073709551614 = 0
-18446744073709551614 `rem` 18446744073709551615 = 18446744073709551614
-18446744073709551614 `rem` 0 = divide by zero
-18446744073709551614 `rem` 1 = 0
-18446744073709551614 `rem` 2 = 0
-18446744073709551614 `rem` 3 = 2
-
-18446744073709551615 `rem` 18446744073709551613 = 2
-18446744073709551615 `rem` 18446744073709551614 = 1
-18446744073709551615 `rem` 18446744073709551615 = 0
-18446744073709551615 `rem` 0 = divide by zero
-18446744073709551615 `rem` 1 = 0
-18446744073709551615 `rem` 2 = 1
-18446744073709551615 `rem` 3 = 0
-
-0 `rem` 18446744073709551613 = 0
-0 `rem` 18446744073709551614 = 0
-0 `rem` 18446744073709551615 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` 18446744073709551613 = 1
-1 `rem` 18446744073709551614 = 1
-1 `rem` 18446744073709551615 = 1
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` 18446744073709551613 = 2
-2 `rem` 18446744073709551614 = 2
-2 `rem` 18446744073709551615 = 2
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` 18446744073709551613 = 3
-3 `rem` 18446744073709551614 = 3
-3 `rem` 18446744073709551615 = 3
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [0,0,18446744073709551615]
-Int : [0,0,-1]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [0,0,-1]
-Int64 : [0,0,-1]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [0,0,4294967295]
-Word64 : [0,0,18446744073709551615]
-testBits
-18446744073709551613 .&. 18446744073709551613 = 18446744073709551613
-18446744073709551613 .&. 18446744073709551614 = 18446744073709551612
-18446744073709551613 .&. 18446744073709551615 = 18446744073709551613
-18446744073709551613 .&. 0 = 0
-18446744073709551613 .&. 1 = 1
-18446744073709551613 .&. 2 = 0
-18446744073709551613 .&. 3 = 1
-
-18446744073709551614 .&. 18446744073709551613 = 18446744073709551612
-18446744073709551614 .&. 18446744073709551614 = 18446744073709551614
-18446744073709551614 .&. 18446744073709551615 = 18446744073709551614
-18446744073709551614 .&. 0 = 0
-18446744073709551614 .&. 1 = 0
-18446744073709551614 .&. 2 = 2
-18446744073709551614 .&. 3 = 2
-
-18446744073709551615 .&. 18446744073709551613 = 18446744073709551613
-18446744073709551615 .&. 18446744073709551614 = 18446744073709551614
-18446744073709551615 .&. 18446744073709551615 = 18446744073709551615
-18446744073709551615 .&. 0 = 0
-18446744073709551615 .&. 1 = 1
-18446744073709551615 .&. 2 = 2
-18446744073709551615 .&. 3 = 3
-
-0 .&. 18446744073709551613 = 0
-0 .&. 18446744073709551614 = 0
-0 .&. 18446744073709551615 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. 18446744073709551613 = 1
-1 .&. 18446744073709551614 = 0
-1 .&. 18446744073709551615 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. 18446744073709551613 = 0
-2 .&. 18446744073709551614 = 2
-2 .&. 18446744073709551615 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. 18446744073709551613 = 1
-3 .&. 18446744073709551614 = 2
-3 .&. 18446744073709551615 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
-18446744073709551613 .|. 18446744073709551613 = 18446744073709551613
-18446744073709551613 .|. 18446744073709551614 = 18446744073709551615
-18446744073709551613 .|. 18446744073709551615 = 18446744073709551615
-18446744073709551613 .|. 0 = 18446744073709551613
-18446744073709551613 .|. 1 = 18446744073709551613
-18446744073709551613 .|. 2 = 18446744073709551615
-18446744073709551613 .|. 3 = 18446744073709551615
-
-18446744073709551614 .|. 18446744073709551613 = 18446744073709551615
-18446744073709551614 .|. 18446744073709551614 = 18446744073709551614
-18446744073709551614 .|. 18446744073709551615 = 18446744073709551615
-18446744073709551614 .|. 0 = 18446744073709551614
-18446744073709551614 .|. 1 = 18446744073709551615
-18446744073709551614 .|. 2 = 18446744073709551614
-18446744073709551614 .|. 3 = 18446744073709551615
-
-18446744073709551615 .|. 18446744073709551613 = 18446744073709551615
-18446744073709551615 .|. 18446744073709551614 = 18446744073709551615
-18446744073709551615 .|. 18446744073709551615 = 18446744073709551615
-18446744073709551615 .|. 0 = 18446744073709551615
-18446744073709551615 .|. 1 = 18446744073709551615
-18446744073709551615 .|. 2 = 18446744073709551615
-18446744073709551615 .|. 3 = 18446744073709551615
-
-0 .|. 18446744073709551613 = 18446744073709551613
-0 .|. 18446744073709551614 = 18446744073709551614
-0 .|. 18446744073709551615 = 18446744073709551615
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. 18446744073709551613 = 18446744073709551613
-1 .|. 18446744073709551614 = 18446744073709551615
-1 .|. 18446744073709551615 = 18446744073709551615
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. 18446744073709551613 = 18446744073709551615
-2 .|. 18446744073709551614 = 18446744073709551614
-2 .|. 18446744073709551615 = 18446744073709551615
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. 18446744073709551613 = 18446744073709551615
-3 .|. 18446744073709551614 = 18446744073709551615
-3 .|. 18446744073709551615 = 18446744073709551615
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
-18446744073709551613 `xor` 18446744073709551613 = 0
-18446744073709551613 `xor` 18446744073709551614 = 3
-18446744073709551613 `xor` 18446744073709551615 = 2
-18446744073709551613 `xor` 0 = 18446744073709551613
-18446744073709551613 `xor` 1 = 18446744073709551612
-18446744073709551613 `xor` 2 = 18446744073709551615
-18446744073709551613 `xor` 3 = 18446744073709551614
-
-18446744073709551614 `xor` 18446744073709551613 = 3
-18446744073709551614 `xor` 18446744073709551614 = 0
-18446744073709551614 `xor` 18446744073709551615 = 1
-18446744073709551614 `xor` 0 = 18446744073709551614
-18446744073709551614 `xor` 1 = 18446744073709551615
-18446744073709551614 `xor` 2 = 18446744073709551612
-18446744073709551614 `xor` 3 = 18446744073709551613
-
-18446744073709551615 `xor` 18446744073709551613 = 2
-18446744073709551615 `xor` 18446744073709551614 = 1
-18446744073709551615 `xor` 18446744073709551615 = 0
-18446744073709551615 `xor` 0 = 18446744073709551615
-18446744073709551615 `xor` 1 = 18446744073709551614
-18446744073709551615 `xor` 2 = 18446744073709551613
-18446744073709551615 `xor` 3 = 18446744073709551612
-
-0 `xor` 18446744073709551613 = 18446744073709551613
-0 `xor` 18446744073709551614 = 18446744073709551614
-0 `xor` 18446744073709551615 = 18446744073709551615
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` 18446744073709551613 = 18446744073709551612
-1 `xor` 18446744073709551614 = 18446744073709551615
-1 `xor` 18446744073709551615 = 18446744073709551614
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` 18446744073709551613 = 18446744073709551615
-2 `xor` 18446744073709551614 = 18446744073709551612
-2 `xor` 18446744073709551615 = 18446744073709551613
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` 18446744073709551613 = 18446744073709551614
-3 `xor` 18446744073709551614 = 18446744073709551613
-3 `xor` 18446744073709551615 = 18446744073709551612
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement 18446744073709551613 = 2
-complement 18446744073709551614 = 1
-complement 18446744073709551615 = 0
-complement 0 = 18446744073709551615
-complement 1 = 18446744073709551614
-complement 2 = 18446744073709551613
-complement 3 = 18446744073709551612
-#
-18446744073709551613 `shiftL` 0 = 18446744073709551613
-18446744073709551613 `shiftL` 1 = 18446744073709551610
-18446744073709551613 `shiftL` 2 = 18446744073709551604
-18446744073709551613 `shiftL` 3 = 18446744073709551592
-18446744073709551613 `shiftL` 32 = 18446744060824649728
-18446744073709551613 `shiftL` 64 = 0
-
-18446744073709551614 `shiftL` 0 = 18446744073709551614
-18446744073709551614 `shiftL` 1 = 18446744073709551612
-18446744073709551614 `shiftL` 2 = 18446744073709551608
-18446744073709551614 `shiftL` 3 = 18446744073709551600
-18446744073709551614 `shiftL` 32 = 18446744065119617024
-18446744073709551614 `shiftL` 64 = 0
-
-18446744073709551615 `shiftL` 0 = 18446744073709551615
-18446744073709551615 `shiftL` 1 = 18446744073709551614
-18446744073709551615 `shiftL` 2 = 18446744073709551612
-18446744073709551615 `shiftL` 3 = 18446744073709551608
-18446744073709551615 `shiftL` 32 = 18446744069414584320
-18446744073709551615 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 4294967296
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 8589934592
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 12884901888
-3 `shiftL` 64 = 0
-
-#
-18446744073709551613 `shiftR` 0 = 18446744073709551613
-18446744073709551613 `shiftR` 1 = 9223372036854775806
-18446744073709551613 `shiftR` 2 = 4611686018427387903
-18446744073709551613 `shiftR` 3 = 2305843009213693951
-18446744073709551613 `shiftR` 32 = 4294967295
-18446744073709551613 `shiftR` 64 = 0
-
-18446744073709551614 `shiftR` 0 = 18446744073709551614
-18446744073709551614 `shiftR` 1 = 9223372036854775807
-18446744073709551614 `shiftR` 2 = 4611686018427387903
-18446744073709551614 `shiftR` 3 = 2305843009213693951
-18446744073709551614 `shiftR` 32 = 4294967295
-18446744073709551614 `shiftR` 64 = 0
-
-18446744073709551615 `shiftR` 0 = 18446744073709551615
-18446744073709551615 `shiftR` 1 = 9223372036854775807
-18446744073709551615 `shiftR` 2 = 4611686018427387903
-18446744073709551615 `shiftR` 3 = 2305843009213693951
-18446744073709551615 `shiftR` 32 = 4294967295
-18446744073709551615 `shiftR` 64 = 0
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
-18446744073709551613 `rotate` -3 = 13835058055282163711
-18446744073709551613 `rotate` -2 = 9223372036854775807
-18446744073709551613 `rotate` -1 = 18446744073709551614
-18446744073709551613 `rotate` 0 = 18446744073709551613
-18446744073709551613 `rotate` 1 = 18446744073709551611
-18446744073709551613 `rotate` 2 = 18446744073709551607
-18446744073709551613 `rotate` 3 = 18446744073709551599
-18446744073709551613 `rotate` -64 = 18446744073709551613
-18446744073709551613 `rotate` -32 = 18446744065119617023
-18446744073709551613 `rotate` 32 = 18446744065119617023
-18446744073709551613 `rotate` 64 = 18446744073709551613
-
-18446744073709551614 `rotate` -3 = 16140901064495857663
-18446744073709551614 `rotate` -2 = 13835058055282163711
-18446744073709551614 `rotate` -1 = 9223372036854775807
-18446744073709551614 `rotate` 0 = 18446744073709551614
-18446744073709551614 `rotate` 1 = 18446744073709551613
-18446744073709551614 `rotate` 2 = 18446744073709551611
-18446744073709551614 `rotate` 3 = 18446744073709551607
-18446744073709551614 `rotate` -64 = 18446744073709551614
-18446744073709551614 `rotate` -32 = 18446744069414584319
-18446744073709551614 `rotate` 32 = 18446744069414584319
-18446744073709551614 `rotate` 64 = 18446744073709551614
-
-18446744073709551615 `rotate` -3 = 18446744073709551615
-18446744073709551615 `rotate` -2 = 18446744073709551615
-18446744073709551615 `rotate` -1 = 18446744073709551615
-18446744073709551615 `rotate` 0 = 18446744073709551615
-18446744073709551615 `rotate` 1 = 18446744073709551615
-18446744073709551615 `rotate` 2 = 18446744073709551615
-18446744073709551615 `rotate` 3 = 18446744073709551615
-18446744073709551615 `rotate` -64 = 18446744073709551615
-18446744073709551615 `rotate` -32 = 18446744073709551615
-18446744073709551615 `rotate` 32 = 18446744073709551615
-18446744073709551615 `rotate` 64 = 18446744073709551615
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-0 `rotate` -64 = 0
-0 `rotate` -32 = 0
-0 `rotate` 32 = 0
-0 `rotate` 64 = 0
-
-1 `rotate` -3 = 2305843009213693952
-1 `rotate` -2 = 4611686018427387904
-1 `rotate` -1 = 9223372036854775808
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-1 `rotate` -64 = 1
-1 `rotate` -32 = 4294967296
-1 `rotate` 32 = 4294967296
-1 `rotate` 64 = 1
-
-2 `rotate` -3 = 4611686018427387904
-2 `rotate` -2 = 9223372036854775808
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-2 `rotate` -64 = 2
-2 `rotate` -32 = 8589934592
-2 `rotate` 32 = 8589934592
-2 `rotate` 64 = 2
-
-3 `rotate` -3 = 6917529027641081856
-3 `rotate` -2 = 13835058055282163712
-3 `rotate` -1 = 9223372036854775809
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-3 `rotate` -64 = 3
-3 `rotate` -32 = 12884901888
-3 `rotate` 32 = 12884901888
-3 `rotate` 64 = 3
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
-18446744073709551613 `setBit` 0 = 18446744073709551613
-18446744073709551613 `setBit` 1 = 18446744073709551615
-18446744073709551613 `setBit` 2 = 18446744073709551613
-18446744073709551613 `setBit` 3 = 18446744073709551613
-18446744073709551613 `setBit` 32 = 18446744073709551613
-18446744073709551613 `setBit` 64 = 18446744073709551613
-
-18446744073709551614 `setBit` 0 = 18446744073709551615
-18446744073709551614 `setBit` 1 = 18446744073709551614
-18446744073709551614 `setBit` 2 = 18446744073709551614
-18446744073709551614 `setBit` 3 = 18446744073709551614
-18446744073709551614 `setBit` 32 = 18446744073709551614
-18446744073709551614 `setBit` 64 = 18446744073709551614
-
-18446744073709551615 `setBit` 0 = 18446744073709551615
-18446744073709551615 `setBit` 1 = 18446744073709551615
-18446744073709551615 `setBit` 2 = 18446744073709551615
-18446744073709551615 `setBit` 3 = 18446744073709551615
-18446744073709551615 `setBit` 32 = 18446744073709551615
-18446744073709551615 `setBit` 64 = 18446744073709551615
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 4294967296
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 4294967297
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 4294967298
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 4294967299
-3 `setBit` 64 = 3
-
-#
-18446744073709551613 `clearBit` 0 = 18446744073709551612
-18446744073709551613 `clearBit` 1 = 18446744073709551613
-18446744073709551613 `clearBit` 2 = 18446744073709551609
-18446744073709551613 `clearBit` 3 = 18446744073709551605
-18446744073709551613 `clearBit` 32 = 18446744069414584317
-18446744073709551613 `clearBit` 64 = 18446744073709551613
-
-18446744073709551614 `clearBit` 0 = 18446744073709551614
-18446744073709551614 `clearBit` 1 = 18446744073709551612
-18446744073709551614 `clearBit` 2 = 18446744073709551610
-18446744073709551614 `clearBit` 3 = 18446744073709551606
-18446744073709551614 `clearBit` 32 = 18446744069414584318
-18446744073709551614 `clearBit` 64 = 18446744073709551614
-
-18446744073709551615 `clearBit` 0 = 18446744073709551614
-18446744073709551615 `clearBit` 1 = 18446744073709551613
-18446744073709551615 `clearBit` 2 = 18446744073709551611
-18446744073709551615 `clearBit` 3 = 18446744073709551607
-18446744073709551615 `clearBit` 32 = 18446744069414584319
-18446744073709551615 `clearBit` 64 = 18446744073709551615
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
-18446744073709551613 `complementBit` 0 = 18446744073709551612
-18446744073709551613 `complementBit` 1 = 18446744073709551615
-18446744073709551613 `complementBit` 2 = 18446744073709551609
-18446744073709551613 `complementBit` 3 = 18446744073709551605
-18446744073709551613 `complementBit` 32 = 18446744069414584317
-18446744073709551613 `complementBit` 64 = 18446744073709551613
-
-18446744073709551614 `complementBit` 0 = 18446744073709551615
-18446744073709551614 `complementBit` 1 = 18446744073709551612
-18446744073709551614 `complementBit` 2 = 18446744073709551610
-18446744073709551614 `complementBit` 3 = 18446744073709551606
-18446744073709551614 `complementBit` 32 = 18446744069414584318
-18446744073709551614 `complementBit` 64 = 18446744073709551614
-
-18446744073709551615 `complementBit` 0 = 18446744073709551614
-18446744073709551615 `complementBit` 1 = 18446744073709551613
-18446744073709551615 `complementBit` 2 = 18446744073709551611
-18446744073709551615 `complementBit` 3 = 18446744073709551607
-18446744073709551615 `complementBit` 32 = 18446744069414584319
-18446744073709551615 `complementBit` 64 = 18446744073709551615
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 4294967296
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 4294967297
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 4294967298
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 4294967299
-3 `complementBit` 64 = 3
-
-#
-18446744073709551613 `testBit` 0 = True
-18446744073709551613 `testBit` 1 = False
-18446744073709551613 `testBit` 2 = True
-18446744073709551613 `testBit` 3 = True
-18446744073709551613 `testBit` 32 = True
-18446744073709551613 `testBit` 64 = False
-
-18446744073709551614 `testBit` 0 = False
-18446744073709551614 `testBit` 1 = True
-18446744073709551614 `testBit` 2 = True
-18446744073709551614 `testBit` 3 = True
-18446744073709551614 `testBit` 32 = True
-18446744073709551614 `testBit` 64 = False
-
-18446744073709551615 `testBit` 0 = True
-18446744073709551615 `testBit` 1 = True
-18446744073709551615 `testBit` 2 = True
-18446744073709551615 `testBit` 3 = True
-18446744073709551615 `testBit` 32 = True
-18446744073709551615 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize 18446744073709551613 = 64
-bitSize 18446744073709551614 = 64
-bitSize 18446744073709551615 = 64
-bitSize 0 = 64
-bitSize 1 = 64
-bitSize 2 = 64
-bitSize 3 = 64
-#
-isSigned 18446744073709551613 = False
-isSigned 18446744073709551614 = False
-isSigned 18446744073709551615 = False
-isSigned 0 = False
-isSigned 1 = False
-isSigned 2 = False
-isSigned 3 = False
-#
---------------------------------
---Testing Integer
---------------------------------
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 0 = divide by zero
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 0 = divide by zero
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 0 = divide by zero
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 0 = divide by zero
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 0 = divide by zero
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 0 = divide by zero
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 0 = divide by zero
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 0 = divide by zero
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 0 = divide by zero
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 0 = divide by zero
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 0 = divide by zero
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 0 = divide by zero
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 0 = divide by zero
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 0 = divide by zero
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 0 = divide by zero
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 0 = divide by zero
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 0 = divide by zero
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 0 = divide by zero
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 0 = 0
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 0 = 0
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 0 = 0
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 0 = -3
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 0 = -2
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 0 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 0 = -3
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 0 = -2
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 0 = -1
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = -12884901888
--3 `shiftL` 64 = -55340232221128654848
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = -8589934592
--2 `shiftL` 64 = -36893488147419103232
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = -4294967296
--1 `shiftL` 64 = -18446744073709551616
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 4294967296
-1 `shiftL` 64 = 18446744073709551616
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 8589934592
-2 `shiftL` 64 = 36893488147419103232
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 12884901888
-3 `shiftL` 64 = 55340232221128654848
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -1
--3 `rotate` -2 = -1
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -6
--3 `rotate` 2 = -12
--3 `rotate` 3 = -24
--3 `rotate` -64 = -1
--3 `rotate` -32 = -1
--3 `rotate` 32 = -12884901888
--3 `rotate` 64 = -55340232221128654848
-
--2 `rotate` -3 = -1
--2 `rotate` -2 = -1
--2 `rotate` -1 = -1
--2 `rotate` 0 = -2
--2 `rotate` 1 = -4
--2 `rotate` 2 = -8
--2 `rotate` 3 = -16
--2 `rotate` -64 = -1
--2 `rotate` -32 = -1
--2 `rotate` 32 = -8589934592
--2 `rotate` 64 = -36893488147419103232
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -2
--1 `rotate` 2 = -4
--1 `rotate` 3 = -8
--1 `rotate` -64 = -1
--1 `rotate` -32 = -1
--1 `rotate` 32 = -4294967296
--1 `rotate` 64 = -18446744073709551616
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-0 `rotate` -64 = 0
-0 `rotate` -32 = 0
-0 `rotate` 32 = 0
-0 `rotate` 64 = 0
-
-1 `rotate` -3 = 0
-1 `rotate` -2 = 0
-1 `rotate` -1 = 0
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-1 `rotate` -64 = 0
-1 `rotate` -32 = 0
-1 `rotate` 32 = 4294967296
-1 `rotate` 64 = 18446744073709551616
-
-2 `rotate` -3 = 0
-2 `rotate` -2 = 0
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-2 `rotate` -64 = 0
-2 `rotate` -32 = 0
-2 `rotate` 32 = 8589934592
-2 `rotate` 64 = 36893488147419103232
-
-3 `rotate` -3 = 0
-3 `rotate` -2 = 0
-3 `rotate` -1 = 1
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-3 `rotate` -64 = 0
-3 `rotate` -32 = 0
-3 `rotate` 32 = 12884901888
-3 `rotate` 64 = 55340232221128654848
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 4294967296
-0 `setBit` 64 = 18446744073709551616
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 4294967297
-1 `setBit` 64 = 18446744073709551617
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 4294967298
-2 `setBit` 64 = 18446744073709551618
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 4294967299
-3 `setBit` 64 = 18446744073709551619
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -4294967299
--3 `clearBit` 64 = -18446744073709551619
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -4294967298
--2 `clearBit` 64 = -18446744073709551618
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -4294967297
--1 `clearBit` 64 = -18446744073709551617
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -4294967299
--3 `complementBit` 64 = -18446744073709551619
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -4294967298
--2 `complementBit` 64 = -18446744073709551618
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -4294967297
--1 `complementBit` 64 = -18446744073709551617
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 4294967296
-0 `complementBit` 64 = 18446744073709551616
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 4294967297
-1 `complementBit` 64 = 18446744073709551617
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 4294967298
-2 `complementBit` 64 = 18446744073709551618
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 4294967299
-3 `complementBit` 64 = 18446744073709551619
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = True
--3 `testBit` 64 = True
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = True
--2 `testBit` 64 = True
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = True
--1 `testBit` 64 = True
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith011.stdout-alpha-dec-osf3 b/testsuite/tests/ghc-regress/numeric/should_run/arith011.stdout-alpha-dec-osf3
deleted file mode 100644
index c6c1fd04e4..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith011.stdout-alpha-dec-osf3
+++ /dev/null
@@ -1,14508 +0,0 @@
---------------------------------
---Testing Int
---------------------------------
-testBounded
-(9223372036854775807,-9223372036854775808,-9223372036854775807)
-(9223372036854775806,9223372036854775807,-9223372036854775808)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [-9223372036854775808,0,9223372036854775807]
-Int : [-9223372036854775808,0,9223372036854775807]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [0,0,-1]
-Int64 : [-9223372036854775808,0,9223372036854775807]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [0,0,4294967295]
-Word64 : [9223372036854775808,0,9223372036854775807]
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = -12884901888
--3 `shiftL` 64 = 0
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = -8589934592
--2 `shiftL` 64 = 0
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = -4294967296
--1 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 4294967296
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 8589934592
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 12884901888
-3 `shiftL` 64 = 0
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -4611686018427387905
--3 `rotate` -2 = 9223372036854775807
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -5
--3 `rotate` 2 = -9
--3 `rotate` 3 = -17
-
--2 `rotate` -3 = -2305843009213693953
--2 `rotate` -2 = -4611686018427387905
--2 `rotate` -1 = 9223372036854775807
--2 `rotate` 0 = -2
--2 `rotate` 1 = -3
--2 `rotate` 2 = -5
--2 `rotate` 3 = -9
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -1
--1 `rotate` 2 = -1
--1 `rotate` 3 = -1
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-
-1 `rotate` -3 = 2305843009213693952
-1 `rotate` -2 = 4611686018427387904
-1 `rotate` -1 = -9223372036854775808
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-
-2 `rotate` -3 = 4611686018427387904
-2 `rotate` -2 = -9223372036854775808
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-
-3 `rotate` -3 = 6917529027641081856
-3 `rotate` -2 = -4611686018427387904
-3 `rotate` -1 = -9223372036854775807
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 4294967296
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 4294967297
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 4294967298
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 4294967299
-3 `setBit` 64 = 3
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -4294967299
--3 `clearBit` 64 = -3
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -4294967298
--2 `clearBit` 64 = -2
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -4294967297
--1 `clearBit` 64 = -1
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -4294967299
--3 `complementBit` 64 = -3
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -4294967298
--2 `complementBit` 64 = -2
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -4294967297
--1 `complementBit` 64 = -1
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 4294967296
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 4294967297
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 4294967298
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 4294967299
-3 `complementBit` 64 = 3
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = True
--3 `testBit` 64 = False
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = True
--2 `testBit` 64 = False
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = True
--1 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize -3 = 64
-bitSize -2 = 64
-bitSize -1 = 64
-bitSize 0 = 64
-bitSize 1 = 64
-bitSize 2 = 64
-bitSize 3 = 64
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
---------------------------------
---Testing Int8
---------------------------------
-testBounded
-(127,-128,-127)
-(126,127,-128)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [-128,0,127]
-Int : [-128,0,127]
-Int8 : [-128,0,127]
-Int16 : [-128,0,127]
-Int32 : [-128,0,127]
-Int64 : [-128,0,127]
-Word8 : [128,0,127]
-Word16 : [65408,0,127]
-Word32 : [4294967168,0,127]
-Word64 : [18446744073709551488,0,127]
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = 0
--3 `shiftL` 64 = 0
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = 0
--2 `shiftL` 64 = 0
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = 0
--1 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -65
--3 `rotate` -2 = 127
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -5
--3 `rotate` 2 = -9
--3 `rotate` 3 = -17
-
--2 `rotate` -3 = -33
--2 `rotate` -2 = -65
--2 `rotate` -1 = 127
--2 `rotate` 0 = -2
--2 `rotate` 1 = -3
--2 `rotate` 2 = -5
--2 `rotate` 3 = -9
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -1
--1 `rotate` 2 = -1
--1 `rotate` 3 = -1
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-
-1 `rotate` -3 = 32
-1 `rotate` -2 = 64
-1 `rotate` -1 = -128
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-
-2 `rotate` -3 = 64
-2 `rotate` -2 = -128
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-
-3 `rotate` -3 = 96
-3 `rotate` -2 = -64
-3 `rotate` -1 = -127
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -3
--3 `clearBit` 64 = -3
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -2
--2 `clearBit` 64 = -2
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -1
--1 `clearBit` 64 = -1
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -3
--3 `complementBit` 64 = -3
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -2
--2 `complementBit` 64 = -2
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -1
--1 `complementBit` 64 = -1
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = False
--3 `testBit` 64 = False
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = False
--2 `testBit` 64 = False
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = False
--1 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize -3 = 8
-bitSize -2 = 8
-bitSize -1 = 8
-bitSize 0 = 8
-bitSize 1 = 8
-bitSize 2 = 8
-bitSize 3 = 8
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
---------------------------------
---Testing Int16
---------------------------------
-testBounded
-(32767,-32768,-32767)
-(32766,32767,-32768)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [-32768,0,32767]
-Int : [-32768,0,32767]
-Int8 : [0,0,-1]
-Int16 : [-32768,0,32767]
-Int32 : [-32768,0,32767]
-Int64 : [-32768,0,32767]
-Word8 : [0,0,255]
-Word16 : [32768,0,32767]
-Word32 : [4294934528,0,32767]
-Word64 : [18446744073709518848,0,32767]
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = 0
--3 `shiftL` 64 = 0
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = 0
--2 `shiftL` 64 = 0
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = 0
--1 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -16385
--3 `rotate` -2 = 32767
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -5
--3 `rotate` 2 = -9
--3 `rotate` 3 = -17
-
--2 `rotate` -3 = -8193
--2 `rotate` -2 = -16385
--2 `rotate` -1 = 32767
--2 `rotate` 0 = -2
--2 `rotate` 1 = -3
--2 `rotate` 2 = -5
--2 `rotate` 3 = -9
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -1
--1 `rotate` 2 = -1
--1 `rotate` 3 = -1
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-
-1 `rotate` -3 = 8192
-1 `rotate` -2 = 16384
-1 `rotate` -1 = -32768
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-
-2 `rotate` -3 = 16384
-2 `rotate` -2 = -32768
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-
-3 `rotate` -3 = 24576
-3 `rotate` -2 = -16384
-3 `rotate` -1 = -32767
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -3
--3 `clearBit` 64 = -3
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -2
--2 `clearBit` 64 = -2
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -1
--1 `clearBit` 64 = -1
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -3
--3 `complementBit` 64 = -3
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -2
--2 `complementBit` 64 = -2
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -1
--1 `complementBit` 64 = -1
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = False
--3 `testBit` 64 = False
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = False
--2 `testBit` 64 = False
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = False
--1 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize -3 = 16
-bitSize -2 = 16
-bitSize -1 = 16
-bitSize 0 = 16
-bitSize 1 = 16
-bitSize 2 = 16
-bitSize 3 = 16
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
---------------------------------
---Testing Int32
---------------------------------
-testBounded
-(2147483647,-2147483648,-2147483647)
-(2147483646,2147483647,-2147483648)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [-2147483648,0,2147483647]
-Int : [-2147483648,0,2147483647]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [-2147483648,0,2147483647]
-Int64 : [-2147483648,0,2147483647]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [2147483648,0,2147483647]
-Word64 : [18446744071562067968,0,2147483647]
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = 0
--3 `shiftL` 64 = 0
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = 0
--2 `shiftL` 64 = 0
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = 0
--1 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -1073741825
--3 `rotate` -2 = 2147483647
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -5
--3 `rotate` 2 = -9
--3 `rotate` 3 = -17
-
--2 `rotate` -3 = -536870913
--2 `rotate` -2 = -1073741825
--2 `rotate` -1 = 2147483647
--2 `rotate` 0 = -2
--2 `rotate` 1 = -3
--2 `rotate` 2 = -5
--2 `rotate` 3 = -9
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -1
--1 `rotate` 2 = -1
--1 `rotate` 3 = -1
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-
-1 `rotate` -3 = 536870912
-1 `rotate` -2 = 1073741824
-1 `rotate` -1 = -2147483648
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-
-2 `rotate` -3 = 1073741824
-2 `rotate` -2 = -2147483648
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-
-3 `rotate` -3 = 1610612736
-3 `rotate` -2 = -1073741824
-3 `rotate` -1 = -2147483647
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -3
--3 `clearBit` 64 = -3
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -2
--2 `clearBit` 64 = -2
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -1
--1 `clearBit` 64 = -1
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -3
--3 `complementBit` 64 = -3
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -2
--2 `complementBit` 64 = -2
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -1
--1 `complementBit` 64 = -1
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = False
--3 `testBit` 64 = False
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = False
--2 `testBit` 64 = False
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = False
--1 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize -3 = 32
-bitSize -2 = 32
-bitSize -1 = 32
-bitSize 0 = 32
-bitSize 1 = 32
-bitSize 2 = 32
-bitSize 3 = 32
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
---------------------------------
---Testing Int64
---------------------------------
-testBounded
-(9223372036854775807,-9223372036854775808,-9223372036854775807)
-(9223372036854775806,9223372036854775807,-9223372036854775808)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [-9223372036854775808,0,9223372036854775807]
-Int : [-9223372036854775808,0,9223372036854775807]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [0,0,-1]
-Int64 : [-9223372036854775808,0,9223372036854775807]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [0,0,4294967295]
-Word64 : [9223372036854775808,0,9223372036854775807]
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = -12884901888
--3 `shiftL` 64 = 0
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = -8589934592
--2 `shiftL` 64 = 0
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = -4294967296
--1 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 4294967296
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 8589934592
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 12884901888
-3 `shiftL` 64 = 0
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -4611686018427387905
--3 `rotate` -2 = 9223372036854775807
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -5
--3 `rotate` 2 = -9
--3 `rotate` 3 = -17
-
--2 `rotate` -3 = -2305843009213693953
--2 `rotate` -2 = -4611686018427387905
--2 `rotate` -1 = 9223372036854775807
--2 `rotate` 0 = -2
--2 `rotate` 1 = -3
--2 `rotate` 2 = -5
--2 `rotate` 3 = -9
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -1
--1 `rotate` 2 = -1
--1 `rotate` 3 = -1
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-
-1 `rotate` -3 = 2305843009213693952
-1 `rotate` -2 = 4611686018427387904
-1 `rotate` -1 = -9223372036854775808
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-
-2 `rotate` -3 = 4611686018427387904
-2 `rotate` -2 = -9223372036854775808
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-
-3 `rotate` -3 = 6917529027641081856
-3 `rotate` -2 = -4611686018427387904
-3 `rotate` -1 = -9223372036854775807
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 4294967296
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 4294967297
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 4294967298
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 4294967299
-3 `setBit` 64 = 3
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -4294967299
--3 `clearBit` 64 = -3
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -4294967298
--2 `clearBit` 64 = -2
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -4294967297
--1 `clearBit` 64 = -1
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -4294967299
--3 `complementBit` 64 = -3
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -4294967298
--2 `complementBit` 64 = -2
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -4294967297
--1 `complementBit` 64 = -1
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 4294967296
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 4294967297
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 4294967298
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 4294967299
-3 `complementBit` 64 = 3
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = True
--3 `testBit` 64 = False
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = True
--2 `testBit` 64 = False
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = True
--1 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize -3 = 64
-bitSize -2 = 64
-bitSize -1 = 64
-bitSize 0 = 64
-bitSize 1 = 64
-bitSize 2 = 64
-bitSize 3 = 64
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
---------------------------------
---Testing Word8
---------------------------------
-testBounded
-(255,0,1)
-(254,255,0)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[253,254,255,0,1,2,3]
-[253,254,255,0,1,2,3]
-testEq
-253 == 253 = True
-253 == 254 = False
-253 == 255 = False
-253 == 0 = False
-253 == 1 = False
-253 == 2 = False
-253 == 3 = False
-
-254 == 253 = False
-254 == 254 = True
-254 == 255 = False
-254 == 0 = False
-254 == 1 = False
-254 == 2 = False
-254 == 3 = False
-
-255 == 253 = False
-255 == 254 = False
-255 == 255 = True
-255 == 0 = False
-255 == 1 = False
-255 == 2 = False
-255 == 3 = False
-
-0 == 253 = False
-0 == 254 = False
-0 == 255 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == 253 = False
-1 == 254 = False
-1 == 255 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == 253 = False
-2 == 254 = False
-2 == 255 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == 253 = False
-3 == 254 = False
-3 == 255 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
-253 /= 253 = False
-253 /= 254 = True
-253 /= 255 = True
-253 /= 0 = True
-253 /= 1 = True
-253 /= 2 = True
-253 /= 3 = True
-
-254 /= 253 = True
-254 /= 254 = False
-254 /= 255 = True
-254 /= 0 = True
-254 /= 1 = True
-254 /= 2 = True
-254 /= 3 = True
-
-255 /= 253 = True
-255 /= 254 = True
-255 /= 255 = False
-255 /= 0 = True
-255 /= 1 = True
-255 /= 2 = True
-255 /= 3 = True
-
-0 /= 253 = True
-0 /= 254 = True
-0 /= 255 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= 253 = True
-1 /= 254 = True
-1 /= 255 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= 253 = True
-2 /= 254 = True
-2 /= 255 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= 253 = True
-3 /= 254 = True
-3 /= 255 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
-253 <= 253 = True
-253 <= 254 = True
-253 <= 255 = True
-253 <= 0 = False
-253 <= 1 = False
-253 <= 2 = False
-253 <= 3 = False
-
-254 <= 253 = False
-254 <= 254 = True
-254 <= 255 = True
-254 <= 0 = False
-254 <= 1 = False
-254 <= 2 = False
-254 <= 3 = False
-
-255 <= 253 = False
-255 <= 254 = False
-255 <= 255 = True
-255 <= 0 = False
-255 <= 1 = False
-255 <= 2 = False
-255 <= 3 = False
-
-0 <= 253 = True
-0 <= 254 = True
-0 <= 255 = True
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= 253 = True
-1 <= 254 = True
-1 <= 255 = True
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= 253 = True
-2 <= 254 = True
-2 <= 255 = True
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= 253 = True
-3 <= 254 = True
-3 <= 255 = True
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
-253 < 253 = False
-253 < 254 = True
-253 < 255 = True
-253 < 0 = False
-253 < 1 = False
-253 < 2 = False
-253 < 3 = False
-
-254 < 253 = False
-254 < 254 = False
-254 < 255 = True
-254 < 0 = False
-254 < 1 = False
-254 < 2 = False
-254 < 3 = False
-
-255 < 253 = False
-255 < 254 = False
-255 < 255 = False
-255 < 0 = False
-255 < 1 = False
-255 < 2 = False
-255 < 3 = False
-
-0 < 253 = True
-0 < 254 = True
-0 < 255 = True
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < 253 = True
-1 < 254 = True
-1 < 255 = True
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < 253 = True
-2 < 254 = True
-2 < 255 = True
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < 253 = True
-3 < 254 = True
-3 < 255 = True
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
-253 > 253 = False
-253 > 254 = False
-253 > 255 = False
-253 > 0 = True
-253 > 1 = True
-253 > 2 = True
-253 > 3 = True
-
-254 > 253 = True
-254 > 254 = False
-254 > 255 = False
-254 > 0 = True
-254 > 1 = True
-254 > 2 = True
-254 > 3 = True
-
-255 > 253 = True
-255 > 254 = True
-255 > 255 = False
-255 > 0 = True
-255 > 1 = True
-255 > 2 = True
-255 > 3 = True
-
-0 > 253 = False
-0 > 254 = False
-0 > 255 = False
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > 253 = False
-1 > 254 = False
-1 > 255 = False
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > 253 = False
-2 > 254 = False
-2 > 255 = False
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > 253 = False
-3 > 254 = False
-3 > 255 = False
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
-253 >= 253 = True
-253 >= 254 = False
-253 >= 255 = False
-253 >= 0 = True
-253 >= 1 = True
-253 >= 2 = True
-253 >= 3 = True
-
-254 >= 253 = True
-254 >= 254 = True
-254 >= 255 = False
-254 >= 0 = True
-254 >= 1 = True
-254 >= 2 = True
-254 >= 3 = True
-
-255 >= 253 = True
-255 >= 254 = True
-255 >= 255 = True
-255 >= 0 = True
-255 >= 1 = True
-255 >= 2 = True
-255 >= 3 = True
-
-0 >= 253 = False
-0 >= 254 = False
-0 >= 255 = False
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= 253 = False
-1 >= 254 = False
-1 >= 255 = False
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= 253 = False
-2 >= 254 = False
-2 >= 255 = False
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= 253 = False
-3 >= 254 = False
-3 >= 255 = False
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
-253 `compare` 253 = EQ
-253 `compare` 254 = LT
-253 `compare` 255 = LT
-253 `compare` 0 = GT
-253 `compare` 1 = GT
-253 `compare` 2 = GT
-253 `compare` 3 = GT
-
-254 `compare` 253 = GT
-254 `compare` 254 = EQ
-254 `compare` 255 = LT
-254 `compare` 0 = GT
-254 `compare` 1 = GT
-254 `compare` 2 = GT
-254 `compare` 3 = GT
-
-255 `compare` 253 = GT
-255 `compare` 254 = GT
-255 `compare` 255 = EQ
-255 `compare` 0 = GT
-255 `compare` 1 = GT
-255 `compare` 2 = GT
-255 `compare` 3 = GT
-
-0 `compare` 253 = LT
-0 `compare` 254 = LT
-0 `compare` 255 = LT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` 253 = LT
-1 `compare` 254 = LT
-1 `compare` 255 = LT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` 253 = LT
-2 `compare` 254 = LT
-2 `compare` 255 = LT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` 253 = LT
-3 `compare` 254 = LT
-3 `compare` 255 = LT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
-253 + 253 = 250
-253 + 254 = 251
-253 + 255 = 252
-253 + 0 = 253
-253 + 1 = 254
-253 + 2 = 255
-253 + 3 = 0
-
-254 + 253 = 251
-254 + 254 = 252
-254 + 255 = 253
-254 + 0 = 254
-254 + 1 = 255
-254 + 2 = 0
-254 + 3 = 1
-
-255 + 253 = 252
-255 + 254 = 253
-255 + 255 = 254
-255 + 0 = 255
-255 + 1 = 0
-255 + 2 = 1
-255 + 3 = 2
-
-0 + 253 = 253
-0 + 254 = 254
-0 + 255 = 255
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + 253 = 254
-1 + 254 = 255
-1 + 255 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + 253 = 255
-2 + 254 = 0
-2 + 255 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + 253 = 0
-3 + 254 = 1
-3 + 255 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
-253 - 253 = 0
-253 - 254 = 255
-253 - 255 = 254
-253 - 0 = 253
-253 - 1 = 252
-253 - 2 = 251
-253 - 3 = 250
-
-254 - 253 = 1
-254 - 254 = 0
-254 - 255 = 255
-254 - 0 = 254
-254 - 1 = 253
-254 - 2 = 252
-254 - 3 = 251
-
-255 - 253 = 2
-255 - 254 = 1
-255 - 255 = 0
-255 - 0 = 255
-255 - 1 = 254
-255 - 2 = 253
-255 - 3 = 252
-
-0 - 253 = 3
-0 - 254 = 2
-0 - 255 = 1
-0 - 0 = 0
-0 - 1 = 255
-0 - 2 = 254
-0 - 3 = 253
-
-1 - 253 = 4
-1 - 254 = 3
-1 - 255 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = 255
-1 - 3 = 254
-
-2 - 253 = 5
-2 - 254 = 4
-2 - 255 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = 255
-
-3 - 253 = 6
-3 - 254 = 5
-3 - 255 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
-253 * 253 = 9
-253 * 254 = 6
-253 * 255 = 3
-253 * 0 = 0
-253 * 1 = 253
-253 * 2 = 250
-253 * 3 = 247
-
-254 * 253 = 6
-254 * 254 = 4
-254 * 255 = 2
-254 * 0 = 0
-254 * 1 = 254
-254 * 2 = 252
-254 * 3 = 250
-
-255 * 253 = 3
-255 * 254 = 2
-255 * 255 = 1
-255 * 0 = 0
-255 * 1 = 255
-255 * 2 = 254
-255 * 3 = 253
-
-0 * 253 = 0
-0 * 254 = 0
-0 * 255 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * 253 = 253
-1 * 254 = 254
-1 * 255 = 255
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * 253 = 250
-2 * 254 = 252
-2 * 255 = 254
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * 253 = 247
-3 * 254 = 250
-3 * 255 = 253
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate 253 = 3
-negate 254 = 2
-negate 255 = 1
-negate 0 = 0
-negate 1 = 255
-negate 2 = 254
-negate 3 = 253
-#
-testReal
-toRational 253 = 253 % 1
-toRational 254 = 254 % 1
-toRational 255 = 255 % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
-253 `divMod` 253 = (1,0)
-253 `divMod` 254 = (0,253)
-253 `divMod` 255 = (0,253)
-253 `divMod` 1 = (253,0)
-253 `divMod` 2 = (126,1)
-253 `divMod` 3 = (84,1)
-
-254 `divMod` 253 = (1,1)
-254 `divMod` 254 = (1,0)
-254 `divMod` 255 = (0,254)
-254 `divMod` 1 = (254,0)
-254 `divMod` 2 = (127,0)
-254 `divMod` 3 = (84,2)
-
-255 `divMod` 253 = (1,2)
-255 `divMod` 254 = (1,1)
-255 `divMod` 255 = (1,0)
-255 `divMod` 1 = (255,0)
-255 `divMod` 2 = (127,1)
-255 `divMod` 3 = (85,0)
-
-0 `divMod` 253 = (0,0)
-0 `divMod` 254 = (0,0)
-0 `divMod` 255 = (0,0)
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` 253 = (0,1)
-1 `divMod` 254 = (0,1)
-1 `divMod` 255 = (0,1)
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` 253 = (0,2)
-2 `divMod` 254 = (0,2)
-2 `divMod` 255 = (0,2)
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` 253 = (0,3)
-3 `divMod` 254 = (0,3)
-3 `divMod` 255 = (0,3)
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
-253 `div` 253 = 1
-253 `div` 254 = 0
-253 `div` 255 = 0
-253 `div` 1 = 253
-253 `div` 2 = 126
-253 `div` 3 = 84
-
-254 `div` 253 = 1
-254 `div` 254 = 1
-254 `div` 255 = 0
-254 `div` 1 = 254
-254 `div` 2 = 127
-254 `div` 3 = 84
-
-255 `div` 253 = 1
-255 `div` 254 = 1
-255 `div` 255 = 1
-255 `div` 1 = 255
-255 `div` 2 = 127
-255 `div` 3 = 85
-
-0 `div` 253 = 0
-0 `div` 254 = 0
-0 `div` 255 = 0
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` 253 = 0
-1 `div` 254 = 0
-1 `div` 255 = 0
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` 253 = 0
-2 `div` 254 = 0
-2 `div` 255 = 0
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` 253 = 0
-3 `div` 254 = 0
-3 `div` 255 = 0
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
-253 `mod` 253 = 0
-253 `mod` 254 = 253
-253 `mod` 255 = 253
-253 `mod` 1 = 0
-253 `mod` 2 = 1
-253 `mod` 3 = 1
-
-254 `mod` 253 = 1
-254 `mod` 254 = 0
-254 `mod` 255 = 254
-254 `mod` 1 = 0
-254 `mod` 2 = 0
-254 `mod` 3 = 2
-
-255 `mod` 253 = 2
-255 `mod` 254 = 1
-255 `mod` 255 = 0
-255 `mod` 1 = 0
-255 `mod` 2 = 1
-255 `mod` 3 = 0
-
-0 `mod` 253 = 0
-0 `mod` 254 = 0
-0 `mod` 255 = 0
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` 253 = 1
-1 `mod` 254 = 1
-1 `mod` 255 = 1
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` 253 = 2
-2 `mod` 254 = 2
-2 `mod` 255 = 2
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` 253 = 3
-3 `mod` 254 = 3
-3 `mod` 255 = 3
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
-253 `quotRem` 253 = (1,0)
-253 `quotRem` 254 = (0,253)
-253 `quotRem` 255 = (0,253)
-253 `quotRem` 1 = (253,0)
-253 `quotRem` 2 = (126,1)
-253 `quotRem` 3 = (84,1)
-
-254 `quotRem` 253 = (1,1)
-254 `quotRem` 254 = (1,0)
-254 `quotRem` 255 = (0,254)
-254 `quotRem` 1 = (254,0)
-254 `quotRem` 2 = (127,0)
-254 `quotRem` 3 = (84,2)
-
-255 `quotRem` 253 = (1,2)
-255 `quotRem` 254 = (1,1)
-255 `quotRem` 255 = (1,0)
-255 `quotRem` 1 = (255,0)
-255 `quotRem` 2 = (127,1)
-255 `quotRem` 3 = (85,0)
-
-0 `quotRem` 253 = (0,0)
-0 `quotRem` 254 = (0,0)
-0 `quotRem` 255 = (0,0)
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` 253 = (0,1)
-1 `quotRem` 254 = (0,1)
-1 `quotRem` 255 = (0,1)
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` 253 = (0,2)
-2 `quotRem` 254 = (0,2)
-2 `quotRem` 255 = (0,2)
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` 253 = (0,3)
-3 `quotRem` 254 = (0,3)
-3 `quotRem` 255 = (0,3)
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
-253 `quot` 253 = 1
-253 `quot` 254 = 0
-253 `quot` 255 = 0
-253 `quot` 1 = 253
-253 `quot` 2 = 126
-253 `quot` 3 = 84
-
-254 `quot` 253 = 1
-254 `quot` 254 = 1
-254 `quot` 255 = 0
-254 `quot` 1 = 254
-254 `quot` 2 = 127
-254 `quot` 3 = 84
-
-255 `quot` 253 = 1
-255 `quot` 254 = 1
-255 `quot` 255 = 1
-255 `quot` 1 = 255
-255 `quot` 2 = 127
-255 `quot` 3 = 85
-
-0 `quot` 253 = 0
-0 `quot` 254 = 0
-0 `quot` 255 = 0
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` 253 = 0
-1 `quot` 254 = 0
-1 `quot` 255 = 0
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` 253 = 0
-2 `quot` 254 = 0
-2 `quot` 255 = 0
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` 253 = 0
-3 `quot` 254 = 0
-3 `quot` 255 = 0
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
-253 `rem` 253 = 0
-253 `rem` 254 = 253
-253 `rem` 255 = 253
-253 `rem` 1 = 0
-253 `rem` 2 = 1
-253 `rem` 3 = 1
-
-254 `rem` 253 = 1
-254 `rem` 254 = 0
-254 `rem` 255 = 254
-254 `rem` 1 = 0
-254 `rem` 2 = 0
-254 `rem` 3 = 2
-
-255 `rem` 253 = 2
-255 `rem` 254 = 1
-255 `rem` 255 = 0
-255 `rem` 1 = 0
-255 `rem` 2 = 1
-255 `rem` 3 = 0
-
-0 `rem` 253 = 0
-0 `rem` 254 = 0
-0 `rem` 255 = 0
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` 253 = 1
-1 `rem` 254 = 1
-1 `rem` 255 = 1
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` 253 = 2
-2 `rem` 254 = 2
-2 `rem` 255 = 2
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` 253 = 3
-3 `rem` 254 = 3
-3 `rem` 255 = 3
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [0,0,255]
-Int : [0,0,255]
-Int8 : [0,0,-1]
-Int16 : [0,0,255]
-Int32 : [0,0,255]
-Int64 : [0,0,255]
-Word8 : [0,0,255]
-Word16 : [0,0,255]
-Word32 : [0,0,255]
-Word64 : [0,0,255]
-testBits
-253 .&. 253 = 253
-253 .&. 254 = 252
-253 .&. 255 = 253
-253 .&. 1 = 1
-253 .&. 2 = 0
-253 .&. 3 = 1
-
-254 .&. 253 = 252
-254 .&. 254 = 254
-254 .&. 255 = 254
-254 .&. 1 = 0
-254 .&. 2 = 2
-254 .&. 3 = 2
-
-255 .&. 253 = 253
-255 .&. 254 = 254
-255 .&. 255 = 255
-255 .&. 1 = 1
-255 .&. 2 = 2
-255 .&. 3 = 3
-
-0 .&. 253 = 0
-0 .&. 254 = 0
-0 .&. 255 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. 253 = 1
-1 .&. 254 = 0
-1 .&. 255 = 1
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. 253 = 0
-2 .&. 254 = 2
-2 .&. 255 = 2
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. 253 = 1
-3 .&. 254 = 2
-3 .&. 255 = 3
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
-253 .|. 253 = 253
-253 .|. 254 = 255
-253 .|. 255 = 255
-253 .|. 1 = 253
-253 .|. 2 = 255
-253 .|. 3 = 255
-
-254 .|. 253 = 255
-254 .|. 254 = 254
-254 .|. 255 = 255
-254 .|. 1 = 255
-254 .|. 2 = 254
-254 .|. 3 = 255
-
-255 .|. 253 = 255
-255 .|. 254 = 255
-255 .|. 255 = 255
-255 .|. 1 = 255
-255 .|. 2 = 255
-255 .|. 3 = 255
-
-0 .|. 253 = 253
-0 .|. 254 = 254
-0 .|. 255 = 255
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. 253 = 253
-1 .|. 254 = 255
-1 .|. 255 = 255
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. 253 = 255
-2 .|. 254 = 254
-2 .|. 255 = 255
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. 253 = 255
-3 .|. 254 = 255
-3 .|. 255 = 255
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
-253 `xor` 253 = 0
-253 `xor` 254 = 3
-253 `xor` 255 = 2
-253 `xor` 1 = 252
-253 `xor` 2 = 255
-253 `xor` 3 = 254
-
-254 `xor` 253 = 3
-254 `xor` 254 = 0
-254 `xor` 255 = 1
-254 `xor` 1 = 255
-254 `xor` 2 = 252
-254 `xor` 3 = 253
-
-255 `xor` 253 = 2
-255 `xor` 254 = 1
-255 `xor` 255 = 0
-255 `xor` 1 = 254
-255 `xor` 2 = 253
-255 `xor` 3 = 252
-
-0 `xor` 253 = 253
-0 `xor` 254 = 254
-0 `xor` 255 = 255
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` 253 = 252
-1 `xor` 254 = 255
-1 `xor` 255 = 254
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` 253 = 255
-2 `xor` 254 = 252
-2 `xor` 255 = 253
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` 253 = 254
-3 `xor` 254 = 253
-3 `xor` 255 = 252
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement 253 = 2
-complement 254 = 1
-complement 255 = 0
-complement 0 = 255
-complement 1 = 254
-complement 2 = 253
-complement 3 = 252
-#
-253 `shiftL` 0 = 253
-253 `shiftL` 1 = 250
-253 `shiftL` 2 = 244
-253 `shiftL` 3 = 232
-253 `shiftL` 32 = 0
-253 `shiftL` 64 = 0
-
-254 `shiftL` 0 = 254
-254 `shiftL` 1 = 252
-254 `shiftL` 2 = 248
-254 `shiftL` 3 = 240
-254 `shiftL` 32 = 0
-254 `shiftL` 64 = 0
-
-255 `shiftL` 0 = 255
-255 `shiftL` 1 = 254
-255 `shiftL` 2 = 252
-255 `shiftL` 3 = 248
-255 `shiftL` 32 = 0
-255 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
-253 `shiftR` 0 = 253
-253 `shiftR` 1 = 126
-253 `shiftR` 2 = 63
-253 `shiftR` 3 = 31
-253 `shiftR` 32 = 0
-253 `shiftR` 64 = 0
-
-254 `shiftR` 0 = 254
-254 `shiftR` 1 = 127
-254 `shiftR` 2 = 63
-254 `shiftR` 3 = 31
-254 `shiftR` 32 = 0
-254 `shiftR` 64 = 0
-
-255 `shiftR` 0 = 255
-255 `shiftR` 1 = 127
-255 `shiftR` 2 = 63
-255 `shiftR` 3 = 31
-255 `shiftR` 32 = 0
-255 `shiftR` 64 = 0
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
-253 `rotate` -3 = 191
-253 `rotate` -2 = 127
-253 `rotate` -1 = 254
-253 `rotate` 0 = 253
-253 `rotate` 1 = 251
-253 `rotate` 2 = 247
-253 `rotate` 3 = 239
-
-254 `rotate` -3 = 223
-254 `rotate` -2 = 191
-254 `rotate` -1 = 127
-254 `rotate` 0 = 254
-254 `rotate` 1 = 253
-254 `rotate` 2 = 251
-254 `rotate` 3 = 247
-
-255 `rotate` -3 = 255
-255 `rotate` -2 = 255
-255 `rotate` -1 = 255
-255 `rotate` 0 = 255
-255 `rotate` 1 = 255
-255 `rotate` 2 = 255
-255 `rotate` 3 = 255
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-
-1 `rotate` -3 = 32
-1 `rotate` -2 = 64
-1 `rotate` -1 = 128
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-
-2 `rotate` -3 = 64
-2 `rotate` -2 = 128
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-
-3 `rotate` -3 = 96
-3 `rotate` -2 = 192
-3 `rotate` -1 = 129
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
-253 `setBit` 0 = 253
-253 `setBit` 1 = 255
-253 `setBit` 2 = 253
-253 `setBit` 3 = 253
-253 `setBit` 32 = 253
-253 `setBit` 64 = 253
-
-254 `setBit` 0 = 255
-254 `setBit` 1 = 254
-254 `setBit` 2 = 254
-254 `setBit` 3 = 254
-254 `setBit` 32 = 254
-254 `setBit` 64 = 254
-
-255 `setBit` 0 = 255
-255 `setBit` 1 = 255
-255 `setBit` 2 = 255
-255 `setBit` 3 = 255
-255 `setBit` 32 = 255
-255 `setBit` 64 = 255
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
-253 `clearBit` 0 = 252
-253 `clearBit` 1 = 253
-253 `clearBit` 2 = 249
-253 `clearBit` 3 = 245
-253 `clearBit` 32 = 253
-253 `clearBit` 64 = 253
-
-254 `clearBit` 0 = 254
-254 `clearBit` 1 = 252
-254 `clearBit` 2 = 250
-254 `clearBit` 3 = 246
-254 `clearBit` 32 = 254
-254 `clearBit` 64 = 254
-
-255 `clearBit` 0 = 254
-255 `clearBit` 1 = 253
-255 `clearBit` 2 = 251
-255 `clearBit` 3 = 247
-255 `clearBit` 32 = 255
-255 `clearBit` 64 = 255
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
-253 `complementBit` 0 = 252
-253 `complementBit` 1 = 255
-253 `complementBit` 2 = 249
-253 `complementBit` 3 = 245
-253 `complementBit` 32 = 253
-253 `complementBit` 64 = 253
-
-254 `complementBit` 0 = 255
-254 `complementBit` 1 = 252
-254 `complementBit` 2 = 250
-254 `complementBit` 3 = 246
-254 `complementBit` 32 = 254
-254 `complementBit` 64 = 254
-
-255 `complementBit` 0 = 254
-255 `complementBit` 1 = 253
-255 `complementBit` 2 = 251
-255 `complementBit` 3 = 247
-255 `complementBit` 32 = 255
-255 `complementBit` 64 = 255
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
-253 `testBit` 0 = True
-253 `testBit` 1 = False
-253 `testBit` 2 = True
-253 `testBit` 3 = True
-253 `testBit` 32 = False
-253 `testBit` 64 = False
-
-254 `testBit` 0 = False
-254 `testBit` 1 = True
-254 `testBit` 2 = True
-254 `testBit` 3 = True
-254 `testBit` 32 = False
-254 `testBit` 64 = False
-
-255 `testBit` 0 = True
-255 `testBit` 1 = True
-255 `testBit` 2 = True
-255 `testBit` 3 = True
-255 `testBit` 32 = False
-255 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize 253 = 8
-bitSize 254 = 8
-bitSize 255 = 8
-bitSize 0 = 8
-bitSize 1 = 8
-bitSize 2 = 8
-bitSize 3 = 8
-#
-isSigned 253 = False
-isSigned 254 = False
-isSigned 255 = False
-isSigned 0 = False
-isSigned 1 = False
-isSigned 2 = False
-isSigned 3 = False
-#
---------------------------------
---Testing Word16
---------------------------------
-testBounded
-(65535,0,1)
-(65534,65535,0)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[65533,65534,65535,0,1,2,3]
-[65533,65534,65535,0,1,2,3]
-testEq
-65533 == 65533 = True
-65533 == 65534 = False
-65533 == 65535 = False
-65533 == 0 = False
-65533 == 1 = False
-65533 == 2 = False
-65533 == 3 = False
-
-65534 == 65533 = False
-65534 == 65534 = True
-65534 == 65535 = False
-65534 == 0 = False
-65534 == 1 = False
-65534 == 2 = False
-65534 == 3 = False
-
-65535 == 65533 = False
-65535 == 65534 = False
-65535 == 65535 = True
-65535 == 0 = False
-65535 == 1 = False
-65535 == 2 = False
-65535 == 3 = False
-
-0 == 65533 = False
-0 == 65534 = False
-0 == 65535 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == 65533 = False
-1 == 65534 = False
-1 == 65535 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == 65533 = False
-2 == 65534 = False
-2 == 65535 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == 65533 = False
-3 == 65534 = False
-3 == 65535 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
-65533 /= 65533 = False
-65533 /= 65534 = True
-65533 /= 65535 = True
-65533 /= 0 = True
-65533 /= 1 = True
-65533 /= 2 = True
-65533 /= 3 = True
-
-65534 /= 65533 = True
-65534 /= 65534 = False
-65534 /= 65535 = True
-65534 /= 0 = True
-65534 /= 1 = True
-65534 /= 2 = True
-65534 /= 3 = True
-
-65535 /= 65533 = True
-65535 /= 65534 = True
-65535 /= 65535 = False
-65535 /= 0 = True
-65535 /= 1 = True
-65535 /= 2 = True
-65535 /= 3 = True
-
-0 /= 65533 = True
-0 /= 65534 = True
-0 /= 65535 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= 65533 = True
-1 /= 65534 = True
-1 /= 65535 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= 65533 = True
-2 /= 65534 = True
-2 /= 65535 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= 65533 = True
-3 /= 65534 = True
-3 /= 65535 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
-65533 <= 65533 = True
-65533 <= 65534 = True
-65533 <= 65535 = True
-65533 <= 0 = False
-65533 <= 1 = False
-65533 <= 2 = False
-65533 <= 3 = False
-
-65534 <= 65533 = False
-65534 <= 65534 = True
-65534 <= 65535 = True
-65534 <= 0 = False
-65534 <= 1 = False
-65534 <= 2 = False
-65534 <= 3 = False
-
-65535 <= 65533 = False
-65535 <= 65534 = False
-65535 <= 65535 = True
-65535 <= 0 = False
-65535 <= 1 = False
-65535 <= 2 = False
-65535 <= 3 = False
-
-0 <= 65533 = True
-0 <= 65534 = True
-0 <= 65535 = True
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= 65533 = True
-1 <= 65534 = True
-1 <= 65535 = True
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= 65533 = True
-2 <= 65534 = True
-2 <= 65535 = True
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= 65533 = True
-3 <= 65534 = True
-3 <= 65535 = True
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
-65533 < 65533 = False
-65533 < 65534 = True
-65533 < 65535 = True
-65533 < 0 = False
-65533 < 1 = False
-65533 < 2 = False
-65533 < 3 = False
-
-65534 < 65533 = False
-65534 < 65534 = False
-65534 < 65535 = True
-65534 < 0 = False
-65534 < 1 = False
-65534 < 2 = False
-65534 < 3 = False
-
-65535 < 65533 = False
-65535 < 65534 = False
-65535 < 65535 = False
-65535 < 0 = False
-65535 < 1 = False
-65535 < 2 = False
-65535 < 3 = False
-
-0 < 65533 = True
-0 < 65534 = True
-0 < 65535 = True
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < 65533 = True
-1 < 65534 = True
-1 < 65535 = True
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < 65533 = True
-2 < 65534 = True
-2 < 65535 = True
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < 65533 = True
-3 < 65534 = True
-3 < 65535 = True
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
-65533 > 65533 = False
-65533 > 65534 = False
-65533 > 65535 = False
-65533 > 0 = True
-65533 > 1 = True
-65533 > 2 = True
-65533 > 3 = True
-
-65534 > 65533 = True
-65534 > 65534 = False
-65534 > 65535 = False
-65534 > 0 = True
-65534 > 1 = True
-65534 > 2 = True
-65534 > 3 = True
-
-65535 > 65533 = True
-65535 > 65534 = True
-65535 > 65535 = False
-65535 > 0 = True
-65535 > 1 = True
-65535 > 2 = True
-65535 > 3 = True
-
-0 > 65533 = False
-0 > 65534 = False
-0 > 65535 = False
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > 65533 = False
-1 > 65534 = False
-1 > 65535 = False
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > 65533 = False
-2 > 65534 = False
-2 > 65535 = False
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > 65533 = False
-3 > 65534 = False
-3 > 65535 = False
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
-65533 >= 65533 = True
-65533 >= 65534 = False
-65533 >= 65535 = False
-65533 >= 0 = True
-65533 >= 1 = True
-65533 >= 2 = True
-65533 >= 3 = True
-
-65534 >= 65533 = True
-65534 >= 65534 = True
-65534 >= 65535 = False
-65534 >= 0 = True
-65534 >= 1 = True
-65534 >= 2 = True
-65534 >= 3 = True
-
-65535 >= 65533 = True
-65535 >= 65534 = True
-65535 >= 65535 = True
-65535 >= 0 = True
-65535 >= 1 = True
-65535 >= 2 = True
-65535 >= 3 = True
-
-0 >= 65533 = False
-0 >= 65534 = False
-0 >= 65535 = False
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= 65533 = False
-1 >= 65534 = False
-1 >= 65535 = False
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= 65533 = False
-2 >= 65534 = False
-2 >= 65535 = False
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= 65533 = False
-3 >= 65534 = False
-3 >= 65535 = False
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
-65533 `compare` 65533 = EQ
-65533 `compare` 65534 = LT
-65533 `compare` 65535 = LT
-65533 `compare` 0 = GT
-65533 `compare` 1 = GT
-65533 `compare` 2 = GT
-65533 `compare` 3 = GT
-
-65534 `compare` 65533 = GT
-65534 `compare` 65534 = EQ
-65534 `compare` 65535 = LT
-65534 `compare` 0 = GT
-65534 `compare` 1 = GT
-65534 `compare` 2 = GT
-65534 `compare` 3 = GT
-
-65535 `compare` 65533 = GT
-65535 `compare` 65534 = GT
-65535 `compare` 65535 = EQ
-65535 `compare` 0 = GT
-65535 `compare` 1 = GT
-65535 `compare` 2 = GT
-65535 `compare` 3 = GT
-
-0 `compare` 65533 = LT
-0 `compare` 65534 = LT
-0 `compare` 65535 = LT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` 65533 = LT
-1 `compare` 65534 = LT
-1 `compare` 65535 = LT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` 65533 = LT
-2 `compare` 65534 = LT
-2 `compare` 65535 = LT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` 65533 = LT
-3 `compare` 65534 = LT
-3 `compare` 65535 = LT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
-65533 + 65533 = 65530
-65533 + 65534 = 65531
-65533 + 65535 = 65532
-65533 + 0 = 65533
-65533 + 1 = 65534
-65533 + 2 = 65535
-65533 + 3 = 0
-
-65534 + 65533 = 65531
-65534 + 65534 = 65532
-65534 + 65535 = 65533
-65534 + 0 = 65534
-65534 + 1 = 65535
-65534 + 2 = 0
-65534 + 3 = 1
-
-65535 + 65533 = 65532
-65535 + 65534 = 65533
-65535 + 65535 = 65534
-65535 + 0 = 65535
-65535 + 1 = 0
-65535 + 2 = 1
-65535 + 3 = 2
-
-0 + 65533 = 65533
-0 + 65534 = 65534
-0 + 65535 = 65535
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + 65533 = 65534
-1 + 65534 = 65535
-1 + 65535 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + 65533 = 65535
-2 + 65534 = 0
-2 + 65535 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + 65533 = 0
-3 + 65534 = 1
-3 + 65535 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
-65533 - 65533 = 0
-65533 - 65534 = 65535
-65533 - 65535 = 65534
-65533 - 0 = 65533
-65533 - 1 = 65532
-65533 - 2 = 65531
-65533 - 3 = 65530
-
-65534 - 65533 = 1
-65534 - 65534 = 0
-65534 - 65535 = 65535
-65534 - 0 = 65534
-65534 - 1 = 65533
-65534 - 2 = 65532
-65534 - 3 = 65531
-
-65535 - 65533 = 2
-65535 - 65534 = 1
-65535 - 65535 = 0
-65535 - 0 = 65535
-65535 - 1 = 65534
-65535 - 2 = 65533
-65535 - 3 = 65532
-
-0 - 65533 = 3
-0 - 65534 = 2
-0 - 65535 = 1
-0 - 0 = 0
-0 - 1 = 65535
-0 - 2 = 65534
-0 - 3 = 65533
-
-1 - 65533 = 4
-1 - 65534 = 3
-1 - 65535 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = 65535
-1 - 3 = 65534
-
-2 - 65533 = 5
-2 - 65534 = 4
-2 - 65535 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = 65535
-
-3 - 65533 = 6
-3 - 65534 = 5
-3 - 65535 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
-65533 * 65533 = 9
-65533 * 65534 = 6
-65533 * 65535 = 3
-65533 * 0 = 0
-65533 * 1 = 65533
-65533 * 2 = 65530
-65533 * 3 = 65527
-
-65534 * 65533 = 6
-65534 * 65534 = 4
-65534 * 65535 = 2
-65534 * 0 = 0
-65534 * 1 = 65534
-65534 * 2 = 65532
-65534 * 3 = 65530
-
-65535 * 65533 = 3
-65535 * 65534 = 2
-65535 * 65535 = 1
-65535 * 0 = 0
-65535 * 1 = 65535
-65535 * 2 = 65534
-65535 * 3 = 65533
-
-0 * 65533 = 0
-0 * 65534 = 0
-0 * 65535 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * 65533 = 65533
-1 * 65534 = 65534
-1 * 65535 = 65535
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * 65533 = 65530
-2 * 65534 = 65532
-2 * 65535 = 65534
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * 65533 = 65527
-3 * 65534 = 65530
-3 * 65535 = 65533
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate 65533 = 3
-negate 65534 = 2
-negate 65535 = 1
-negate 0 = 0
-negate 1 = 65535
-negate 2 = 65534
-negate 3 = 65533
-#
-testReal
-toRational 65533 = 65533 % 1
-toRational 65534 = 65534 % 1
-toRational 65535 = 65535 % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
-65533 `divMod` 65533 = (1,0)
-65533 `divMod` 65534 = (0,65533)
-65533 `divMod` 65535 = (0,65533)
-65533 `divMod` 1 = (65533,0)
-65533 `divMod` 2 = (32766,1)
-65533 `divMod` 3 = (21844,1)
-
-65534 `divMod` 65533 = (1,1)
-65534 `divMod` 65534 = (1,0)
-65534 `divMod` 65535 = (0,65534)
-65534 `divMod` 1 = (65534,0)
-65534 `divMod` 2 = (32767,0)
-65534 `divMod` 3 = (21844,2)
-
-65535 `divMod` 65533 = (1,2)
-65535 `divMod` 65534 = (1,1)
-65535 `divMod` 65535 = (1,0)
-65535 `divMod` 1 = (65535,0)
-65535 `divMod` 2 = (32767,1)
-65535 `divMod` 3 = (21845,0)
-
-0 `divMod` 65533 = (0,0)
-0 `divMod` 65534 = (0,0)
-0 `divMod` 65535 = (0,0)
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` 65533 = (0,1)
-1 `divMod` 65534 = (0,1)
-1 `divMod` 65535 = (0,1)
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` 65533 = (0,2)
-2 `divMod` 65534 = (0,2)
-2 `divMod` 65535 = (0,2)
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` 65533 = (0,3)
-3 `divMod` 65534 = (0,3)
-3 `divMod` 65535 = (0,3)
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
-65533 `div` 65533 = 1
-65533 `div` 65534 = 0
-65533 `div` 65535 = 0
-65533 `div` 1 = 65533
-65533 `div` 2 = 32766
-65533 `div` 3 = 21844
-
-65534 `div` 65533 = 1
-65534 `div` 65534 = 1
-65534 `div` 65535 = 0
-65534 `div` 1 = 65534
-65534 `div` 2 = 32767
-65534 `div` 3 = 21844
-
-65535 `div` 65533 = 1
-65535 `div` 65534 = 1
-65535 `div` 65535 = 1
-65535 `div` 1 = 65535
-65535 `div` 2 = 32767
-65535 `div` 3 = 21845
-
-0 `div` 65533 = 0
-0 `div` 65534 = 0
-0 `div` 65535 = 0
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` 65533 = 0
-1 `div` 65534 = 0
-1 `div` 65535 = 0
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` 65533 = 0
-2 `div` 65534 = 0
-2 `div` 65535 = 0
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` 65533 = 0
-3 `div` 65534 = 0
-3 `div` 65535 = 0
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
-65533 `mod` 65533 = 0
-65533 `mod` 65534 = 65533
-65533 `mod` 65535 = 65533
-65533 `mod` 1 = 0
-65533 `mod` 2 = 1
-65533 `mod` 3 = 1
-
-65534 `mod` 65533 = 1
-65534 `mod` 65534 = 0
-65534 `mod` 65535 = 65534
-65534 `mod` 1 = 0
-65534 `mod` 2 = 0
-65534 `mod` 3 = 2
-
-65535 `mod` 65533 = 2
-65535 `mod` 65534 = 1
-65535 `mod` 65535 = 0
-65535 `mod` 1 = 0
-65535 `mod` 2 = 1
-65535 `mod` 3 = 0
-
-0 `mod` 65533 = 0
-0 `mod` 65534 = 0
-0 `mod` 65535 = 0
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` 65533 = 1
-1 `mod` 65534 = 1
-1 `mod` 65535 = 1
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` 65533 = 2
-2 `mod` 65534 = 2
-2 `mod` 65535 = 2
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` 65533 = 3
-3 `mod` 65534 = 3
-3 `mod` 65535 = 3
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
-65533 `quotRem` 65533 = (1,0)
-65533 `quotRem` 65534 = (0,65533)
-65533 `quotRem` 65535 = (0,65533)
-65533 `quotRem` 1 = (65533,0)
-65533 `quotRem` 2 = (32766,1)
-65533 `quotRem` 3 = (21844,1)
-
-65534 `quotRem` 65533 = (1,1)
-65534 `quotRem` 65534 = (1,0)
-65534 `quotRem` 65535 = (0,65534)
-65534 `quotRem` 1 = (65534,0)
-65534 `quotRem` 2 = (32767,0)
-65534 `quotRem` 3 = (21844,2)
-
-65535 `quotRem` 65533 = (1,2)
-65535 `quotRem` 65534 = (1,1)
-65535 `quotRem` 65535 = (1,0)
-65535 `quotRem` 1 = (65535,0)
-65535 `quotRem` 2 = (32767,1)
-65535 `quotRem` 3 = (21845,0)
-
-0 `quotRem` 65533 = (0,0)
-0 `quotRem` 65534 = (0,0)
-0 `quotRem` 65535 = (0,0)
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` 65533 = (0,1)
-1 `quotRem` 65534 = (0,1)
-1 `quotRem` 65535 = (0,1)
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` 65533 = (0,2)
-2 `quotRem` 65534 = (0,2)
-2 `quotRem` 65535 = (0,2)
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` 65533 = (0,3)
-3 `quotRem` 65534 = (0,3)
-3 `quotRem` 65535 = (0,3)
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
-65533 `quot` 65533 = 1
-65533 `quot` 65534 = 0
-65533 `quot` 65535 = 0
-65533 `quot` 1 = 65533
-65533 `quot` 2 = 32766
-65533 `quot` 3 = 21844
-
-65534 `quot` 65533 = 1
-65534 `quot` 65534 = 1
-65534 `quot` 65535 = 0
-65534 `quot` 1 = 65534
-65534 `quot` 2 = 32767
-65534 `quot` 3 = 21844
-
-65535 `quot` 65533 = 1
-65535 `quot` 65534 = 1
-65535 `quot` 65535 = 1
-65535 `quot` 1 = 65535
-65535 `quot` 2 = 32767
-65535 `quot` 3 = 21845
-
-0 `quot` 65533 = 0
-0 `quot` 65534 = 0
-0 `quot` 65535 = 0
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` 65533 = 0
-1 `quot` 65534 = 0
-1 `quot` 65535 = 0
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` 65533 = 0
-2 `quot` 65534 = 0
-2 `quot` 65535 = 0
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` 65533 = 0
-3 `quot` 65534 = 0
-3 `quot` 65535 = 0
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
-65533 `rem` 65533 = 0
-65533 `rem` 65534 = 65533
-65533 `rem` 65535 = 65533
-65533 `rem` 1 = 0
-65533 `rem` 2 = 1
-65533 `rem` 3 = 1
-
-65534 `rem` 65533 = 1
-65534 `rem` 65534 = 0
-65534 `rem` 65535 = 65534
-65534 `rem` 1 = 0
-65534 `rem` 2 = 0
-65534 `rem` 3 = 2
-
-65535 `rem` 65533 = 2
-65535 `rem` 65534 = 1
-65535 `rem` 65535 = 0
-65535 `rem` 1 = 0
-65535 `rem` 2 = 1
-65535 `rem` 3 = 0
-
-0 `rem` 65533 = 0
-0 `rem` 65534 = 0
-0 `rem` 65535 = 0
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` 65533 = 1
-1 `rem` 65534 = 1
-1 `rem` 65535 = 1
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` 65533 = 2
-2 `rem` 65534 = 2
-2 `rem` 65535 = 2
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` 65533 = 3
-3 `rem` 65534 = 3
-3 `rem` 65535 = 3
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [0,0,65535]
-Int : [0,0,65535]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [0,0,65535]
-Int64 : [0,0,65535]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [0,0,65535]
-Word64 : [0,0,65535]
-testBits
-65533 .&. 65533 = 65533
-65533 .&. 65534 = 65532
-65533 .&. 65535 = 65533
-65533 .&. 1 = 1
-65533 .&. 2 = 0
-65533 .&. 3 = 1
-
-65534 .&. 65533 = 65532
-65534 .&. 65534 = 65534
-65534 .&. 65535 = 65534
-65534 .&. 1 = 0
-65534 .&. 2 = 2
-65534 .&. 3 = 2
-
-65535 .&. 65533 = 65533
-65535 .&. 65534 = 65534
-65535 .&. 65535 = 65535
-65535 .&. 1 = 1
-65535 .&. 2 = 2
-65535 .&. 3 = 3
-
-0 .&. 65533 = 0
-0 .&. 65534 = 0
-0 .&. 65535 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. 65533 = 1
-1 .&. 65534 = 0
-1 .&. 65535 = 1
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. 65533 = 0
-2 .&. 65534 = 2
-2 .&. 65535 = 2
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. 65533 = 1
-3 .&. 65534 = 2
-3 .&. 65535 = 3
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
-65533 .|. 65533 = 65533
-65533 .|. 65534 = 65535
-65533 .|. 65535 = 65535
-65533 .|. 1 = 65533
-65533 .|. 2 = 65535
-65533 .|. 3 = 65535
-
-65534 .|. 65533 = 65535
-65534 .|. 65534 = 65534
-65534 .|. 65535 = 65535
-65534 .|. 1 = 65535
-65534 .|. 2 = 65534
-65534 .|. 3 = 65535
-
-65535 .|. 65533 = 65535
-65535 .|. 65534 = 65535
-65535 .|. 65535 = 65535
-65535 .|. 1 = 65535
-65535 .|. 2 = 65535
-65535 .|. 3 = 65535
-
-0 .|. 65533 = 65533
-0 .|. 65534 = 65534
-0 .|. 65535 = 65535
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. 65533 = 65533
-1 .|. 65534 = 65535
-1 .|. 65535 = 65535
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. 65533 = 65535
-2 .|. 65534 = 65534
-2 .|. 65535 = 65535
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. 65533 = 65535
-3 .|. 65534 = 65535
-3 .|. 65535 = 65535
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
-65533 `xor` 65533 = 0
-65533 `xor` 65534 = 3
-65533 `xor` 65535 = 2
-65533 `xor` 1 = 65532
-65533 `xor` 2 = 65535
-65533 `xor` 3 = 65534
-
-65534 `xor` 65533 = 3
-65534 `xor` 65534 = 0
-65534 `xor` 65535 = 1
-65534 `xor` 1 = 65535
-65534 `xor` 2 = 65532
-65534 `xor` 3 = 65533
-
-65535 `xor` 65533 = 2
-65535 `xor` 65534 = 1
-65535 `xor` 65535 = 0
-65535 `xor` 1 = 65534
-65535 `xor` 2 = 65533
-65535 `xor` 3 = 65532
-
-0 `xor` 65533 = 65533
-0 `xor` 65534 = 65534
-0 `xor` 65535 = 65535
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` 65533 = 65532
-1 `xor` 65534 = 65535
-1 `xor` 65535 = 65534
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` 65533 = 65535
-2 `xor` 65534 = 65532
-2 `xor` 65535 = 65533
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` 65533 = 65534
-3 `xor` 65534 = 65533
-3 `xor` 65535 = 65532
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement 65533 = 2
-complement 65534 = 1
-complement 65535 = 0
-complement 0 = 65535
-complement 1 = 65534
-complement 2 = 65533
-complement 3 = 65532
-#
-65533 `shiftL` 0 = 65533
-65533 `shiftL` 1 = 65530
-65533 `shiftL` 2 = 65524
-65533 `shiftL` 3 = 65512
-65533 `shiftL` 32 = 0
-65533 `shiftL` 64 = 0
-
-65534 `shiftL` 0 = 65534
-65534 `shiftL` 1 = 65532
-65534 `shiftL` 2 = 65528
-65534 `shiftL` 3 = 65520
-65534 `shiftL` 32 = 0
-65534 `shiftL` 64 = 0
-
-65535 `shiftL` 0 = 65535
-65535 `shiftL` 1 = 65534
-65535 `shiftL` 2 = 65532
-65535 `shiftL` 3 = 65528
-65535 `shiftL` 32 = 0
-65535 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
-65533 `shiftR` 0 = 65533
-65533 `shiftR` 1 = 32766
-65533 `shiftR` 2 = 16383
-65533 `shiftR` 3 = 8191
-65533 `shiftR` 32 = 0
-65533 `shiftR` 64 = 0
-
-65534 `shiftR` 0 = 65534
-65534 `shiftR` 1 = 32767
-65534 `shiftR` 2 = 16383
-65534 `shiftR` 3 = 8191
-65534 `shiftR` 32 = 0
-65534 `shiftR` 64 = 0
-
-65535 `shiftR` 0 = 65535
-65535 `shiftR` 1 = 32767
-65535 `shiftR` 2 = 16383
-65535 `shiftR` 3 = 8191
-65535 `shiftR` 32 = 0
-65535 `shiftR` 64 = 0
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
-65533 `rotate` -3 = 49151
-65533 `rotate` -2 = 32767
-65533 `rotate` -1 = 65534
-65533 `rotate` 0 = 65533
-65533 `rotate` 1 = 65531
-65533 `rotate` 2 = 65527
-65533 `rotate` 3 = 65519
-
-65534 `rotate` -3 = 57343
-65534 `rotate` -2 = 49151
-65534 `rotate` -1 = 32767
-65534 `rotate` 0 = 65534
-65534 `rotate` 1 = 65533
-65534 `rotate` 2 = 65531
-65534 `rotate` 3 = 65527
-
-65535 `rotate` -3 = 65535
-65535 `rotate` -2 = 65535
-65535 `rotate` -1 = 65535
-65535 `rotate` 0 = 65535
-65535 `rotate` 1 = 65535
-65535 `rotate` 2 = 65535
-65535 `rotate` 3 = 65535
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-
-1 `rotate` -3 = 8192
-1 `rotate` -2 = 16384
-1 `rotate` -1 = 32768
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-
-2 `rotate` -3 = 16384
-2 `rotate` -2 = 32768
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-
-3 `rotate` -3 = 24576
-3 `rotate` -2 = 49152
-3 `rotate` -1 = 32769
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
-65533 `setBit` 0 = 65533
-65533 `setBit` 1 = 65535
-65533 `setBit` 2 = 65533
-65533 `setBit` 3 = 65533
-65533 `setBit` 32 = 65533
-65533 `setBit` 64 = 65533
-
-65534 `setBit` 0 = 65535
-65534 `setBit` 1 = 65534
-65534 `setBit` 2 = 65534
-65534 `setBit` 3 = 65534
-65534 `setBit` 32 = 65534
-65534 `setBit` 64 = 65534
-
-65535 `setBit` 0 = 65535
-65535 `setBit` 1 = 65535
-65535 `setBit` 2 = 65535
-65535 `setBit` 3 = 65535
-65535 `setBit` 32 = 65535
-65535 `setBit` 64 = 65535
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
-65533 `clearBit` 0 = 65532
-65533 `clearBit` 1 = 65533
-65533 `clearBit` 2 = 65529
-65533 `clearBit` 3 = 65525
-65533 `clearBit` 32 = 65533
-65533 `clearBit` 64 = 65533
-
-65534 `clearBit` 0 = 65534
-65534 `clearBit` 1 = 65532
-65534 `clearBit` 2 = 65530
-65534 `clearBit` 3 = 65526
-65534 `clearBit` 32 = 65534
-65534 `clearBit` 64 = 65534
-
-65535 `clearBit` 0 = 65534
-65535 `clearBit` 1 = 65533
-65535 `clearBit` 2 = 65531
-65535 `clearBit` 3 = 65527
-65535 `clearBit` 32 = 65535
-65535 `clearBit` 64 = 65535
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
-65533 `complementBit` 0 = 65532
-65533 `complementBit` 1 = 65535
-65533 `complementBit` 2 = 65529
-65533 `complementBit` 3 = 65525
-65533 `complementBit` 32 = 65533
-65533 `complementBit` 64 = 65533
-
-65534 `complementBit` 0 = 65535
-65534 `complementBit` 1 = 65532
-65534 `complementBit` 2 = 65530
-65534 `complementBit` 3 = 65526
-65534 `complementBit` 32 = 65534
-65534 `complementBit` 64 = 65534
-
-65535 `complementBit` 0 = 65534
-65535 `complementBit` 1 = 65533
-65535 `complementBit` 2 = 65531
-65535 `complementBit` 3 = 65527
-65535 `complementBit` 32 = 65535
-65535 `complementBit` 64 = 65535
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
-65533 `testBit` 0 = True
-65533 `testBit` 1 = False
-65533 `testBit` 2 = True
-65533 `testBit` 3 = True
-65533 `testBit` 32 = False
-65533 `testBit` 64 = False
-
-65534 `testBit` 0 = False
-65534 `testBit` 1 = True
-65534 `testBit` 2 = True
-65534 `testBit` 3 = True
-65534 `testBit` 32 = False
-65534 `testBit` 64 = False
-
-65535 `testBit` 0 = True
-65535 `testBit` 1 = True
-65535 `testBit` 2 = True
-65535 `testBit` 3 = True
-65535 `testBit` 32 = False
-65535 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize 65533 = 16
-bitSize 65534 = 16
-bitSize 65535 = 16
-bitSize 0 = 16
-bitSize 1 = 16
-bitSize 2 = 16
-bitSize 3 = 16
-#
-isSigned 65533 = False
-isSigned 65534 = False
-isSigned 65535 = False
-isSigned 0 = False
-isSigned 1 = False
-isSigned 2 = False
-isSigned 3 = False
-#
---------------------------------
---Testing Word32
---------------------------------
-testBounded
-(4294967295,0,1)
-(4294967294,4294967295,0)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[4294967293,4294967294,4294967295,0,1,2,3]
-[4294967293,4294967294,4294967295,0,1,2,3]
-testEq
-4294967293 == 4294967293 = True
-4294967293 == 4294967294 = False
-4294967293 == 4294967295 = False
-4294967293 == 0 = False
-4294967293 == 1 = False
-4294967293 == 2 = False
-4294967293 == 3 = False
-
-4294967294 == 4294967293 = False
-4294967294 == 4294967294 = True
-4294967294 == 4294967295 = False
-4294967294 == 0 = False
-4294967294 == 1 = False
-4294967294 == 2 = False
-4294967294 == 3 = False
-
-4294967295 == 4294967293 = False
-4294967295 == 4294967294 = False
-4294967295 == 4294967295 = True
-4294967295 == 0 = False
-4294967295 == 1 = False
-4294967295 == 2 = False
-4294967295 == 3 = False
-
-0 == 4294967293 = False
-0 == 4294967294 = False
-0 == 4294967295 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == 4294967293 = False
-1 == 4294967294 = False
-1 == 4294967295 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == 4294967293 = False
-2 == 4294967294 = False
-2 == 4294967295 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == 4294967293 = False
-3 == 4294967294 = False
-3 == 4294967295 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
-4294967293 /= 4294967293 = False
-4294967293 /= 4294967294 = True
-4294967293 /= 4294967295 = True
-4294967293 /= 0 = True
-4294967293 /= 1 = True
-4294967293 /= 2 = True
-4294967293 /= 3 = True
-
-4294967294 /= 4294967293 = True
-4294967294 /= 4294967294 = False
-4294967294 /= 4294967295 = True
-4294967294 /= 0 = True
-4294967294 /= 1 = True
-4294967294 /= 2 = True
-4294967294 /= 3 = True
-
-4294967295 /= 4294967293 = True
-4294967295 /= 4294967294 = True
-4294967295 /= 4294967295 = False
-4294967295 /= 0 = True
-4294967295 /= 1 = True
-4294967295 /= 2 = True
-4294967295 /= 3 = True
-
-0 /= 4294967293 = True
-0 /= 4294967294 = True
-0 /= 4294967295 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= 4294967293 = True
-1 /= 4294967294 = True
-1 /= 4294967295 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= 4294967293 = True
-2 /= 4294967294 = True
-2 /= 4294967295 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= 4294967293 = True
-3 /= 4294967294 = True
-3 /= 4294967295 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
-4294967293 <= 4294967293 = True
-4294967293 <= 4294967294 = True
-4294967293 <= 4294967295 = True
-4294967293 <= 0 = False
-4294967293 <= 1 = False
-4294967293 <= 2 = False
-4294967293 <= 3 = False
-
-4294967294 <= 4294967293 = False
-4294967294 <= 4294967294 = True
-4294967294 <= 4294967295 = True
-4294967294 <= 0 = False
-4294967294 <= 1 = False
-4294967294 <= 2 = False
-4294967294 <= 3 = False
-
-4294967295 <= 4294967293 = False
-4294967295 <= 4294967294 = False
-4294967295 <= 4294967295 = True
-4294967295 <= 0 = False
-4294967295 <= 1 = False
-4294967295 <= 2 = False
-4294967295 <= 3 = False
-
-0 <= 4294967293 = True
-0 <= 4294967294 = True
-0 <= 4294967295 = True
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= 4294967293 = True
-1 <= 4294967294 = True
-1 <= 4294967295 = True
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= 4294967293 = True
-2 <= 4294967294 = True
-2 <= 4294967295 = True
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= 4294967293 = True
-3 <= 4294967294 = True
-3 <= 4294967295 = True
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
-4294967293 < 4294967293 = False
-4294967293 < 4294967294 = True
-4294967293 < 4294967295 = True
-4294967293 < 0 = False
-4294967293 < 1 = False
-4294967293 < 2 = False
-4294967293 < 3 = False
-
-4294967294 < 4294967293 = False
-4294967294 < 4294967294 = False
-4294967294 < 4294967295 = True
-4294967294 < 0 = False
-4294967294 < 1 = False
-4294967294 < 2 = False
-4294967294 < 3 = False
-
-4294967295 < 4294967293 = False
-4294967295 < 4294967294 = False
-4294967295 < 4294967295 = False
-4294967295 < 0 = False
-4294967295 < 1 = False
-4294967295 < 2 = False
-4294967295 < 3 = False
-
-0 < 4294967293 = True
-0 < 4294967294 = True
-0 < 4294967295 = True
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < 4294967293 = True
-1 < 4294967294 = True
-1 < 4294967295 = True
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < 4294967293 = True
-2 < 4294967294 = True
-2 < 4294967295 = True
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < 4294967293 = True
-3 < 4294967294 = True
-3 < 4294967295 = True
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
-4294967293 > 4294967293 = False
-4294967293 > 4294967294 = False
-4294967293 > 4294967295 = False
-4294967293 > 0 = True
-4294967293 > 1 = True
-4294967293 > 2 = True
-4294967293 > 3 = True
-
-4294967294 > 4294967293 = True
-4294967294 > 4294967294 = False
-4294967294 > 4294967295 = False
-4294967294 > 0 = True
-4294967294 > 1 = True
-4294967294 > 2 = True
-4294967294 > 3 = True
-
-4294967295 > 4294967293 = True
-4294967295 > 4294967294 = True
-4294967295 > 4294967295 = False
-4294967295 > 0 = True
-4294967295 > 1 = True
-4294967295 > 2 = True
-4294967295 > 3 = True
-
-0 > 4294967293 = False
-0 > 4294967294 = False
-0 > 4294967295 = False
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > 4294967293 = False
-1 > 4294967294 = False
-1 > 4294967295 = False
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > 4294967293 = False
-2 > 4294967294 = False
-2 > 4294967295 = False
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > 4294967293 = False
-3 > 4294967294 = False
-3 > 4294967295 = False
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
-4294967293 >= 4294967293 = True
-4294967293 >= 4294967294 = False
-4294967293 >= 4294967295 = False
-4294967293 >= 0 = True
-4294967293 >= 1 = True
-4294967293 >= 2 = True
-4294967293 >= 3 = True
-
-4294967294 >= 4294967293 = True
-4294967294 >= 4294967294 = True
-4294967294 >= 4294967295 = False
-4294967294 >= 0 = True
-4294967294 >= 1 = True
-4294967294 >= 2 = True
-4294967294 >= 3 = True
-
-4294967295 >= 4294967293 = True
-4294967295 >= 4294967294 = True
-4294967295 >= 4294967295 = True
-4294967295 >= 0 = True
-4294967295 >= 1 = True
-4294967295 >= 2 = True
-4294967295 >= 3 = True
-
-0 >= 4294967293 = False
-0 >= 4294967294 = False
-0 >= 4294967295 = False
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= 4294967293 = False
-1 >= 4294967294 = False
-1 >= 4294967295 = False
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= 4294967293 = False
-2 >= 4294967294 = False
-2 >= 4294967295 = False
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= 4294967293 = False
-3 >= 4294967294 = False
-3 >= 4294967295 = False
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
-4294967293 `compare` 4294967293 = EQ
-4294967293 `compare` 4294967294 = LT
-4294967293 `compare` 4294967295 = LT
-4294967293 `compare` 0 = GT
-4294967293 `compare` 1 = GT
-4294967293 `compare` 2 = GT
-4294967293 `compare` 3 = GT
-
-4294967294 `compare` 4294967293 = GT
-4294967294 `compare` 4294967294 = EQ
-4294967294 `compare` 4294967295 = LT
-4294967294 `compare` 0 = GT
-4294967294 `compare` 1 = GT
-4294967294 `compare` 2 = GT
-4294967294 `compare` 3 = GT
-
-4294967295 `compare` 4294967293 = GT
-4294967295 `compare` 4294967294 = GT
-4294967295 `compare` 4294967295 = EQ
-4294967295 `compare` 0 = GT
-4294967295 `compare` 1 = GT
-4294967295 `compare` 2 = GT
-4294967295 `compare` 3 = GT
-
-0 `compare` 4294967293 = LT
-0 `compare` 4294967294 = LT
-0 `compare` 4294967295 = LT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` 4294967293 = LT
-1 `compare` 4294967294 = LT
-1 `compare` 4294967295 = LT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` 4294967293 = LT
-2 `compare` 4294967294 = LT
-2 `compare` 4294967295 = LT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` 4294967293 = LT
-3 `compare` 4294967294 = LT
-3 `compare` 4294967295 = LT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
-4294967293 + 4294967293 = 4294967290
-4294967293 + 4294967294 = 4294967291
-4294967293 + 4294967295 = 4294967292
-4294967293 + 0 = 4294967293
-4294967293 + 1 = 4294967294
-4294967293 + 2 = 4294967295
-4294967293 + 3 = 0
-
-4294967294 + 4294967293 = 4294967291
-4294967294 + 4294967294 = 4294967292
-4294967294 + 4294967295 = 4294967293
-4294967294 + 0 = 4294967294
-4294967294 + 1 = 4294967295
-4294967294 + 2 = 0
-4294967294 + 3 = 1
-
-4294967295 + 4294967293 = 4294967292
-4294967295 + 4294967294 = 4294967293
-4294967295 + 4294967295 = 4294967294
-4294967295 + 0 = 4294967295
-4294967295 + 1 = 0
-4294967295 + 2 = 1
-4294967295 + 3 = 2
-
-0 + 4294967293 = 4294967293
-0 + 4294967294 = 4294967294
-0 + 4294967295 = 4294967295
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + 4294967293 = 4294967294
-1 + 4294967294 = 4294967295
-1 + 4294967295 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + 4294967293 = 4294967295
-2 + 4294967294 = 0
-2 + 4294967295 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + 4294967293 = 0
-3 + 4294967294 = 1
-3 + 4294967295 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
-4294967293 - 4294967293 = 0
-4294967293 - 4294967294 = 4294967295
-4294967293 - 4294967295 = 4294967294
-4294967293 - 0 = 4294967293
-4294967293 - 1 = 4294967292
-4294967293 - 2 = 4294967291
-4294967293 - 3 = 4294967290
-
-4294967294 - 4294967293 = 1
-4294967294 - 4294967294 = 0
-4294967294 - 4294967295 = 4294967295
-4294967294 - 0 = 4294967294
-4294967294 - 1 = 4294967293
-4294967294 - 2 = 4294967292
-4294967294 - 3 = 4294967291
-
-4294967295 - 4294967293 = 2
-4294967295 - 4294967294 = 1
-4294967295 - 4294967295 = 0
-4294967295 - 0 = 4294967295
-4294967295 - 1 = 4294967294
-4294967295 - 2 = 4294967293
-4294967295 - 3 = 4294967292
-
-0 - 4294967293 = 3
-0 - 4294967294 = 2
-0 - 4294967295 = 1
-0 - 0 = 0
-0 - 1 = 4294967295
-0 - 2 = 4294967294
-0 - 3 = 4294967293
-
-1 - 4294967293 = 4
-1 - 4294967294 = 3
-1 - 4294967295 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = 4294967295
-1 - 3 = 4294967294
-
-2 - 4294967293 = 5
-2 - 4294967294 = 4
-2 - 4294967295 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = 4294967295
-
-3 - 4294967293 = 6
-3 - 4294967294 = 5
-3 - 4294967295 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
-4294967293 * 4294967293 = 9
-4294967293 * 4294967294 = 6
-4294967293 * 4294967295 = 3
-4294967293 * 0 = 0
-4294967293 * 1 = 4294967293
-4294967293 * 2 = 4294967290
-4294967293 * 3 = 4294967287
-
-4294967294 * 4294967293 = 6
-4294967294 * 4294967294 = 4
-4294967294 * 4294967295 = 2
-4294967294 * 0 = 0
-4294967294 * 1 = 4294967294
-4294967294 * 2 = 4294967292
-4294967294 * 3 = 4294967290
-
-4294967295 * 4294967293 = 3
-4294967295 * 4294967294 = 2
-4294967295 * 4294967295 = 1
-4294967295 * 0 = 0
-4294967295 * 1 = 4294967295
-4294967295 * 2 = 4294967294
-4294967295 * 3 = 4294967293
-
-0 * 4294967293 = 0
-0 * 4294967294 = 0
-0 * 4294967295 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * 4294967293 = 4294967293
-1 * 4294967294 = 4294967294
-1 * 4294967295 = 4294967295
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * 4294967293 = 4294967290
-2 * 4294967294 = 4294967292
-2 * 4294967295 = 4294967294
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * 4294967293 = 4294967287
-3 * 4294967294 = 4294967290
-3 * 4294967295 = 4294967293
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate 4294967293 = 3
-negate 4294967294 = 2
-negate 4294967295 = 1
-negate 0 = 0
-negate 1 = 4294967295
-negate 2 = 4294967294
-negate 3 = 4294967293
-#
-testReal
-toRational 4294967293 = 4294967293 % 1
-toRational 4294967294 = 4294967294 % 1
-toRational 4294967295 = 4294967295 % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
-4294967293 `divMod` 4294967293 = (1,0)
-4294967293 `divMod` 4294967294 = (0,4294967293)
-4294967293 `divMod` 4294967295 = (0,4294967293)
-4294967293 `divMod` 1 = (4294967293,0)
-4294967293 `divMod` 2 = (2147483646,1)
-4294967293 `divMod` 3 = (1431655764,1)
-
-4294967294 `divMod` 4294967293 = (1,1)
-4294967294 `divMod` 4294967294 = (1,0)
-4294967294 `divMod` 4294967295 = (0,4294967294)
-4294967294 `divMod` 1 = (4294967294,0)
-4294967294 `divMod` 2 = (2147483647,0)
-4294967294 `divMod` 3 = (1431655764,2)
-
-4294967295 `divMod` 4294967293 = (1,2)
-4294967295 `divMod` 4294967294 = (1,1)
-4294967295 `divMod` 4294967295 = (1,0)
-4294967295 `divMod` 1 = (4294967295,0)
-4294967295 `divMod` 2 = (2147483647,1)
-4294967295 `divMod` 3 = (1431655765,0)
-
-0 `divMod` 4294967293 = (0,0)
-0 `divMod` 4294967294 = (0,0)
-0 `divMod` 4294967295 = (0,0)
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` 4294967293 = (0,1)
-1 `divMod` 4294967294 = (0,1)
-1 `divMod` 4294967295 = (0,1)
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` 4294967293 = (0,2)
-2 `divMod` 4294967294 = (0,2)
-2 `divMod` 4294967295 = (0,2)
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` 4294967293 = (0,3)
-3 `divMod` 4294967294 = (0,3)
-3 `divMod` 4294967295 = (0,3)
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
-4294967293 `div` 4294967293 = 1
-4294967293 `div` 4294967294 = 0
-4294967293 `div` 4294967295 = 0
-4294967293 `div` 1 = 4294967293
-4294967293 `div` 2 = 2147483646
-4294967293 `div` 3 = 1431655764
-
-4294967294 `div` 4294967293 = 1
-4294967294 `div` 4294967294 = 1
-4294967294 `div` 4294967295 = 0
-4294967294 `div` 1 = 4294967294
-4294967294 `div` 2 = 2147483647
-4294967294 `div` 3 = 1431655764
-
-4294967295 `div` 4294967293 = 1
-4294967295 `div` 4294967294 = 1
-4294967295 `div` 4294967295 = 1
-4294967295 `div` 1 = 4294967295
-4294967295 `div` 2 = 2147483647
-4294967295 `div` 3 = 1431655765
-
-0 `div` 4294967293 = 0
-0 `div` 4294967294 = 0
-0 `div` 4294967295 = 0
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` 4294967293 = 0
-1 `div` 4294967294 = 0
-1 `div` 4294967295 = 0
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` 4294967293 = 0
-2 `div` 4294967294 = 0
-2 `div` 4294967295 = 0
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` 4294967293 = 0
-3 `div` 4294967294 = 0
-3 `div` 4294967295 = 0
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
-4294967293 `mod` 4294967293 = 0
-4294967293 `mod` 4294967294 = 4294967293
-4294967293 `mod` 4294967295 = 4294967293
-4294967293 `mod` 1 = 0
-4294967293 `mod` 2 = 1
-4294967293 `mod` 3 = 1
-
-4294967294 `mod` 4294967293 = 1
-4294967294 `mod` 4294967294 = 0
-4294967294 `mod` 4294967295 = 4294967294
-4294967294 `mod` 1 = 0
-4294967294 `mod` 2 = 0
-4294967294 `mod` 3 = 2
-
-4294967295 `mod` 4294967293 = 2
-4294967295 `mod` 4294967294 = 1
-4294967295 `mod` 4294967295 = 0
-4294967295 `mod` 1 = 0
-4294967295 `mod` 2 = 1
-4294967295 `mod` 3 = 0
-
-0 `mod` 4294967293 = 0
-0 `mod` 4294967294 = 0
-0 `mod` 4294967295 = 0
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` 4294967293 = 1
-1 `mod` 4294967294 = 1
-1 `mod` 4294967295 = 1
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` 4294967293 = 2
-2 `mod` 4294967294 = 2
-2 `mod` 4294967295 = 2
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` 4294967293 = 3
-3 `mod` 4294967294 = 3
-3 `mod` 4294967295 = 3
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
-4294967293 `quotRem` 4294967293 = (1,0)
-4294967293 `quotRem` 4294967294 = (0,4294967293)
-4294967293 `quotRem` 4294967295 = (0,4294967293)
-4294967293 `quotRem` 1 = (4294967293,0)
-4294967293 `quotRem` 2 = (2147483646,1)
-4294967293 `quotRem` 3 = (1431655764,1)
-
-4294967294 `quotRem` 4294967293 = (1,1)
-4294967294 `quotRem` 4294967294 = (1,0)
-4294967294 `quotRem` 4294967295 = (0,4294967294)
-4294967294 `quotRem` 1 = (4294967294,0)
-4294967294 `quotRem` 2 = (2147483647,0)
-4294967294 `quotRem` 3 = (1431655764,2)
-
-4294967295 `quotRem` 4294967293 = (1,2)
-4294967295 `quotRem` 4294967294 = (1,1)
-4294967295 `quotRem` 4294967295 = (1,0)
-4294967295 `quotRem` 1 = (4294967295,0)
-4294967295 `quotRem` 2 = (2147483647,1)
-4294967295 `quotRem` 3 = (1431655765,0)
-
-0 `quotRem` 4294967293 = (0,0)
-0 `quotRem` 4294967294 = (0,0)
-0 `quotRem` 4294967295 = (0,0)
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` 4294967293 = (0,1)
-1 `quotRem` 4294967294 = (0,1)
-1 `quotRem` 4294967295 = (0,1)
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` 4294967293 = (0,2)
-2 `quotRem` 4294967294 = (0,2)
-2 `quotRem` 4294967295 = (0,2)
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` 4294967293 = (0,3)
-3 `quotRem` 4294967294 = (0,3)
-3 `quotRem` 4294967295 = (0,3)
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
-4294967293 `quot` 4294967293 = 1
-4294967293 `quot` 4294967294 = 0
-4294967293 `quot` 4294967295 = 0
-4294967293 `quot` 1 = 4294967293
-4294967293 `quot` 2 = 2147483646
-4294967293 `quot` 3 = 1431655764
-
-4294967294 `quot` 4294967293 = 1
-4294967294 `quot` 4294967294 = 1
-4294967294 `quot` 4294967295 = 0
-4294967294 `quot` 1 = 4294967294
-4294967294 `quot` 2 = 2147483647
-4294967294 `quot` 3 = 1431655764
-
-4294967295 `quot` 4294967293 = 1
-4294967295 `quot` 4294967294 = 1
-4294967295 `quot` 4294967295 = 1
-4294967295 `quot` 1 = 4294967295
-4294967295 `quot` 2 = 2147483647
-4294967295 `quot` 3 = 1431655765
-
-0 `quot` 4294967293 = 0
-0 `quot` 4294967294 = 0
-0 `quot` 4294967295 = 0
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` 4294967293 = 0
-1 `quot` 4294967294 = 0
-1 `quot` 4294967295 = 0
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` 4294967293 = 0
-2 `quot` 4294967294 = 0
-2 `quot` 4294967295 = 0
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` 4294967293 = 0
-3 `quot` 4294967294 = 0
-3 `quot` 4294967295 = 0
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
-4294967293 `rem` 4294967293 = 0
-4294967293 `rem` 4294967294 = 4294967293
-4294967293 `rem` 4294967295 = 4294967293
-4294967293 `rem` 1 = 0
-4294967293 `rem` 2 = 1
-4294967293 `rem` 3 = 1
-
-4294967294 `rem` 4294967293 = 1
-4294967294 `rem` 4294967294 = 0
-4294967294 `rem` 4294967295 = 4294967294
-4294967294 `rem` 1 = 0
-4294967294 `rem` 2 = 0
-4294967294 `rem` 3 = 2
-
-4294967295 `rem` 4294967293 = 2
-4294967295 `rem` 4294967294 = 1
-4294967295 `rem` 4294967295 = 0
-4294967295 `rem` 1 = 0
-4294967295 `rem` 2 = 1
-4294967295 `rem` 3 = 0
-
-0 `rem` 4294967293 = 0
-0 `rem` 4294967294 = 0
-0 `rem` 4294967295 = 0
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` 4294967293 = 1
-1 `rem` 4294967294 = 1
-1 `rem` 4294967295 = 1
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` 4294967293 = 2
-2 `rem` 4294967294 = 2
-2 `rem` 4294967295 = 2
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` 4294967293 = 3
-3 `rem` 4294967294 = 3
-3 `rem` 4294967295 = 3
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [0,0,4294967295]
-Int : [0,0,4294967295]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [0,0,-1]
-Int64 : [0,0,4294967295]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [0,0,4294967295]
-Word64 : [0,0,4294967295]
-testBits
-4294967293 .&. 4294967293 = 4294967293
-4294967293 .&. 4294967294 = 4294967292
-4294967293 .&. 4294967295 = 4294967293
-4294967293 .&. 1 = 1
-4294967293 .&. 2 = 0
-4294967293 .&. 3 = 1
-
-4294967294 .&. 4294967293 = 4294967292
-4294967294 .&. 4294967294 = 4294967294
-4294967294 .&. 4294967295 = 4294967294
-4294967294 .&. 1 = 0
-4294967294 .&. 2 = 2
-4294967294 .&. 3 = 2
-
-4294967295 .&. 4294967293 = 4294967293
-4294967295 .&. 4294967294 = 4294967294
-4294967295 .&. 4294967295 = 4294967295
-4294967295 .&. 1 = 1
-4294967295 .&. 2 = 2
-4294967295 .&. 3 = 3
-
-0 .&. 4294967293 = 0
-0 .&. 4294967294 = 0
-0 .&. 4294967295 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. 4294967293 = 1
-1 .&. 4294967294 = 0
-1 .&. 4294967295 = 1
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. 4294967293 = 0
-2 .&. 4294967294 = 2
-2 .&. 4294967295 = 2
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. 4294967293 = 1
-3 .&. 4294967294 = 2
-3 .&. 4294967295 = 3
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
-4294967293 .|. 4294967293 = 4294967293
-4294967293 .|. 4294967294 = 4294967295
-4294967293 .|. 4294967295 = 4294967295
-4294967293 .|. 1 = 4294967293
-4294967293 .|. 2 = 4294967295
-4294967293 .|. 3 = 4294967295
-
-4294967294 .|. 4294967293 = 4294967295
-4294967294 .|. 4294967294 = 4294967294
-4294967294 .|. 4294967295 = 4294967295
-4294967294 .|. 1 = 4294967295
-4294967294 .|. 2 = 4294967294
-4294967294 .|. 3 = 4294967295
-
-4294967295 .|. 4294967293 = 4294967295
-4294967295 .|. 4294967294 = 4294967295
-4294967295 .|. 4294967295 = 4294967295
-4294967295 .|. 1 = 4294967295
-4294967295 .|. 2 = 4294967295
-4294967295 .|. 3 = 4294967295
-
-0 .|. 4294967293 = 4294967293
-0 .|. 4294967294 = 4294967294
-0 .|. 4294967295 = 4294967295
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. 4294967293 = 4294967293
-1 .|. 4294967294 = 4294967295
-1 .|. 4294967295 = 4294967295
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. 4294967293 = 4294967295
-2 .|. 4294967294 = 4294967294
-2 .|. 4294967295 = 4294967295
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. 4294967293 = 4294967295
-3 .|. 4294967294 = 4294967295
-3 .|. 4294967295 = 4294967295
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
-4294967293 `xor` 4294967293 = 0
-4294967293 `xor` 4294967294 = 3
-4294967293 `xor` 4294967295 = 2
-4294967293 `xor` 1 = 4294967292
-4294967293 `xor` 2 = 4294967295
-4294967293 `xor` 3 = 4294967294
-
-4294967294 `xor` 4294967293 = 3
-4294967294 `xor` 4294967294 = 0
-4294967294 `xor` 4294967295 = 1
-4294967294 `xor` 1 = 4294967295
-4294967294 `xor` 2 = 4294967292
-4294967294 `xor` 3 = 4294967293
-
-4294967295 `xor` 4294967293 = 2
-4294967295 `xor` 4294967294 = 1
-4294967295 `xor` 4294967295 = 0
-4294967295 `xor` 1 = 4294967294
-4294967295 `xor` 2 = 4294967293
-4294967295 `xor` 3 = 4294967292
-
-0 `xor` 4294967293 = 4294967293
-0 `xor` 4294967294 = 4294967294
-0 `xor` 4294967295 = 4294967295
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` 4294967293 = 4294967292
-1 `xor` 4294967294 = 4294967295
-1 `xor` 4294967295 = 4294967294
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` 4294967293 = 4294967295
-2 `xor` 4294967294 = 4294967292
-2 `xor` 4294967295 = 4294967293
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` 4294967293 = 4294967294
-3 `xor` 4294967294 = 4294967293
-3 `xor` 4294967295 = 4294967292
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement 4294967293 = 2
-complement 4294967294 = 1
-complement 4294967295 = 0
-complement 0 = 4294967295
-complement 1 = 4294967294
-complement 2 = 4294967293
-complement 3 = 4294967292
-#
-4294967293 `shiftL` 0 = 4294967293
-4294967293 `shiftL` 1 = 4294967290
-4294967293 `shiftL` 2 = 4294967284
-4294967293 `shiftL` 3 = 4294967272
-4294967293 `shiftL` 32 = 0
-4294967293 `shiftL` 64 = 0
-
-4294967294 `shiftL` 0 = 4294967294
-4294967294 `shiftL` 1 = 4294967292
-4294967294 `shiftL` 2 = 4294967288
-4294967294 `shiftL` 3 = 4294967280
-4294967294 `shiftL` 32 = 0
-4294967294 `shiftL` 64 = 0
-
-4294967295 `shiftL` 0 = 4294967295
-4294967295 `shiftL` 1 = 4294967294
-4294967295 `shiftL` 2 = 4294967292
-4294967295 `shiftL` 3 = 4294967288
-4294967295 `shiftL` 32 = 0
-4294967295 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
-4294967293 `shiftR` 0 = 4294967293
-4294967293 `shiftR` 1 = 2147483646
-4294967293 `shiftR` 2 = 1073741823
-4294967293 `shiftR` 3 = 536870911
-4294967293 `shiftR` 32 = 0
-4294967293 `shiftR` 64 = 0
-
-4294967294 `shiftR` 0 = 4294967294
-4294967294 `shiftR` 1 = 2147483647
-4294967294 `shiftR` 2 = 1073741823
-4294967294 `shiftR` 3 = 536870911
-4294967294 `shiftR` 32 = 0
-4294967294 `shiftR` 64 = 0
-
-4294967295 `shiftR` 0 = 4294967295
-4294967295 `shiftR` 1 = 2147483647
-4294967295 `shiftR` 2 = 1073741823
-4294967295 `shiftR` 3 = 536870911
-4294967295 `shiftR` 32 = 0
-4294967295 `shiftR` 64 = 0
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
-4294967293 `rotate` -3 = 3221225471
-4294967293 `rotate` -2 = 2147483647
-4294967293 `rotate` -1 = 4294967294
-4294967293 `rotate` 0 = 4294967293
-4294967293 `rotate` 1 = 4294967291
-4294967293 `rotate` 2 = 4294967287
-4294967293 `rotate` 3 = 4294967279
-
-4294967294 `rotate` -3 = 3758096383
-4294967294 `rotate` -2 = 3221225471
-4294967294 `rotate` -1 = 2147483647
-4294967294 `rotate` 0 = 4294967294
-4294967294 `rotate` 1 = 4294967293
-4294967294 `rotate` 2 = 4294967291
-4294967294 `rotate` 3 = 4294967287
-
-4294967295 `rotate` -3 = 4294967295
-4294967295 `rotate` -2 = 4294967295
-4294967295 `rotate` -1 = 4294967295
-4294967295 `rotate` 0 = 4294967295
-4294967295 `rotate` 1 = 4294967295
-4294967295 `rotate` 2 = 4294967295
-4294967295 `rotate` 3 = 4294967295
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-
-1 `rotate` -3 = 536870912
-1 `rotate` -2 = 1073741824
-1 `rotate` -1 = 2147483648
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-
-2 `rotate` -3 = 1073741824
-2 `rotate` -2 = 2147483648
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-
-3 `rotate` -3 = 1610612736
-3 `rotate` -2 = 3221225472
-3 `rotate` -1 = 2147483649
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
-4294967293 `setBit` 0 = 4294967293
-4294967293 `setBit` 1 = 4294967295
-4294967293 `setBit` 2 = 4294967293
-4294967293 `setBit` 3 = 4294967293
-4294967293 `setBit` 32 = 4294967293
-4294967293 `setBit` 64 = 4294967293
-
-4294967294 `setBit` 0 = 4294967295
-4294967294 `setBit` 1 = 4294967294
-4294967294 `setBit` 2 = 4294967294
-4294967294 `setBit` 3 = 4294967294
-4294967294 `setBit` 32 = 4294967294
-4294967294 `setBit` 64 = 4294967294
-
-4294967295 `setBit` 0 = 4294967295
-4294967295 `setBit` 1 = 4294967295
-4294967295 `setBit` 2 = 4294967295
-4294967295 `setBit` 3 = 4294967295
-4294967295 `setBit` 32 = 4294967295
-4294967295 `setBit` 64 = 4294967295
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
-4294967293 `clearBit` 0 = 4294967292
-4294967293 `clearBit` 1 = 4294967293
-4294967293 `clearBit` 2 = 4294967289
-4294967293 `clearBit` 3 = 4294967285
-4294967293 `clearBit` 32 = 4294967293
-4294967293 `clearBit` 64 = 4294967293
-
-4294967294 `clearBit` 0 = 4294967294
-4294967294 `clearBit` 1 = 4294967292
-4294967294 `clearBit` 2 = 4294967290
-4294967294 `clearBit` 3 = 4294967286
-4294967294 `clearBit` 32 = 4294967294
-4294967294 `clearBit` 64 = 4294967294
-
-4294967295 `clearBit` 0 = 4294967294
-4294967295 `clearBit` 1 = 4294967293
-4294967295 `clearBit` 2 = 4294967291
-4294967295 `clearBit` 3 = 4294967287
-4294967295 `clearBit` 32 = 4294967295
-4294967295 `clearBit` 64 = 4294967295
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
-4294967293 `complementBit` 0 = 4294967292
-4294967293 `complementBit` 1 = 4294967295
-4294967293 `complementBit` 2 = 4294967289
-4294967293 `complementBit` 3 = 4294967285
-4294967293 `complementBit` 32 = 4294967293
-4294967293 `complementBit` 64 = 4294967293
-
-4294967294 `complementBit` 0 = 4294967295
-4294967294 `complementBit` 1 = 4294967292
-4294967294 `complementBit` 2 = 4294967290
-4294967294 `complementBit` 3 = 4294967286
-4294967294 `complementBit` 32 = 4294967294
-4294967294 `complementBit` 64 = 4294967294
-
-4294967295 `complementBit` 0 = 4294967294
-4294967295 `complementBit` 1 = 4294967293
-4294967295 `complementBit` 2 = 4294967291
-4294967295 `complementBit` 3 = 4294967287
-4294967295 `complementBit` 32 = 4294967295
-4294967295 `complementBit` 64 = 4294967295
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
-4294967293 `testBit` 0 = True
-4294967293 `testBit` 1 = False
-4294967293 `testBit` 2 = True
-4294967293 `testBit` 3 = True
-4294967293 `testBit` 32 = False
-4294967293 `testBit` 64 = False
-
-4294967294 `testBit` 0 = False
-4294967294 `testBit` 1 = True
-4294967294 `testBit` 2 = True
-4294967294 `testBit` 3 = True
-4294967294 `testBit` 32 = False
-4294967294 `testBit` 64 = False
-
-4294967295 `testBit` 0 = True
-4294967295 `testBit` 1 = True
-4294967295 `testBit` 2 = True
-4294967295 `testBit` 3 = True
-4294967295 `testBit` 32 = False
-4294967295 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize 4294967293 = 32
-bitSize 4294967294 = 32
-bitSize 4294967295 = 32
-bitSize 0 = 32
-bitSize 1 = 32
-bitSize 2 = 32
-bitSize 3 = 32
-#
-isSigned 4294967293 = False
-isSigned 4294967294 = False
-isSigned 4294967295 = False
-isSigned 0 = False
-isSigned 1 = False
-isSigned 2 = False
-isSigned 3 = False
-#
---------------------------------
---Testing Word64
---------------------------------
-testBounded
-(18446744073709551615,0,1)
-(18446744073709551614,18446744073709551615,0)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[18446744073709551613,18446744073709551614,18446744073709551615,0,1,2,3]
-[18446744073709551613,18446744073709551614,18446744073709551615,0,1,2,3]
-testEq
-18446744073709551613 == 18446744073709551613 = True
-18446744073709551613 == 18446744073709551614 = False
-18446744073709551613 == 18446744073709551615 = False
-18446744073709551613 == 0 = False
-18446744073709551613 == 1 = False
-18446744073709551613 == 2 = False
-18446744073709551613 == 3 = False
-
-18446744073709551614 == 18446744073709551613 = False
-18446744073709551614 == 18446744073709551614 = True
-18446744073709551614 == 18446744073709551615 = False
-18446744073709551614 == 0 = False
-18446744073709551614 == 1 = False
-18446744073709551614 == 2 = False
-18446744073709551614 == 3 = False
-
-18446744073709551615 == 18446744073709551613 = False
-18446744073709551615 == 18446744073709551614 = False
-18446744073709551615 == 18446744073709551615 = True
-18446744073709551615 == 0 = False
-18446744073709551615 == 1 = False
-18446744073709551615 == 2 = False
-18446744073709551615 == 3 = False
-
-0 == 18446744073709551613 = False
-0 == 18446744073709551614 = False
-0 == 18446744073709551615 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == 18446744073709551613 = False
-1 == 18446744073709551614 = False
-1 == 18446744073709551615 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == 18446744073709551613 = False
-2 == 18446744073709551614 = False
-2 == 18446744073709551615 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == 18446744073709551613 = False
-3 == 18446744073709551614 = False
-3 == 18446744073709551615 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
-18446744073709551613 /= 18446744073709551613 = False
-18446744073709551613 /= 18446744073709551614 = True
-18446744073709551613 /= 18446744073709551615 = True
-18446744073709551613 /= 0 = True
-18446744073709551613 /= 1 = True
-18446744073709551613 /= 2 = True
-18446744073709551613 /= 3 = True
-
-18446744073709551614 /= 18446744073709551613 = True
-18446744073709551614 /= 18446744073709551614 = False
-18446744073709551614 /= 18446744073709551615 = True
-18446744073709551614 /= 0 = True
-18446744073709551614 /= 1 = True
-18446744073709551614 /= 2 = True
-18446744073709551614 /= 3 = True
-
-18446744073709551615 /= 18446744073709551613 = True
-18446744073709551615 /= 18446744073709551614 = True
-18446744073709551615 /= 18446744073709551615 = False
-18446744073709551615 /= 0 = True
-18446744073709551615 /= 1 = True
-18446744073709551615 /= 2 = True
-18446744073709551615 /= 3 = True
-
-0 /= 18446744073709551613 = True
-0 /= 18446744073709551614 = True
-0 /= 18446744073709551615 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= 18446744073709551613 = True
-1 /= 18446744073709551614 = True
-1 /= 18446744073709551615 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= 18446744073709551613 = True
-2 /= 18446744073709551614 = True
-2 /= 18446744073709551615 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= 18446744073709551613 = True
-3 /= 18446744073709551614 = True
-3 /= 18446744073709551615 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
-18446744073709551613 <= 18446744073709551613 = True
-18446744073709551613 <= 18446744073709551614 = True
-18446744073709551613 <= 18446744073709551615 = True
-18446744073709551613 <= 0 = False
-18446744073709551613 <= 1 = False
-18446744073709551613 <= 2 = False
-18446744073709551613 <= 3 = False
-
-18446744073709551614 <= 18446744073709551613 = False
-18446744073709551614 <= 18446744073709551614 = True
-18446744073709551614 <= 18446744073709551615 = True
-18446744073709551614 <= 0 = False
-18446744073709551614 <= 1 = False
-18446744073709551614 <= 2 = False
-18446744073709551614 <= 3 = False
-
-18446744073709551615 <= 18446744073709551613 = False
-18446744073709551615 <= 18446744073709551614 = False
-18446744073709551615 <= 18446744073709551615 = True
-18446744073709551615 <= 0 = False
-18446744073709551615 <= 1 = False
-18446744073709551615 <= 2 = False
-18446744073709551615 <= 3 = False
-
-0 <= 18446744073709551613 = True
-0 <= 18446744073709551614 = True
-0 <= 18446744073709551615 = True
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= 18446744073709551613 = True
-1 <= 18446744073709551614 = True
-1 <= 18446744073709551615 = True
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= 18446744073709551613 = True
-2 <= 18446744073709551614 = True
-2 <= 18446744073709551615 = True
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= 18446744073709551613 = True
-3 <= 18446744073709551614 = True
-3 <= 18446744073709551615 = True
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
-18446744073709551613 < 18446744073709551613 = False
-18446744073709551613 < 18446744073709551614 = True
-18446744073709551613 < 18446744073709551615 = True
-18446744073709551613 < 0 = False
-18446744073709551613 < 1 = False
-18446744073709551613 < 2 = False
-18446744073709551613 < 3 = False
-
-18446744073709551614 < 18446744073709551613 = False
-18446744073709551614 < 18446744073709551614 = False
-18446744073709551614 < 18446744073709551615 = True
-18446744073709551614 < 0 = False
-18446744073709551614 < 1 = False
-18446744073709551614 < 2 = False
-18446744073709551614 < 3 = False
-
-18446744073709551615 < 18446744073709551613 = False
-18446744073709551615 < 18446744073709551614 = False
-18446744073709551615 < 18446744073709551615 = False
-18446744073709551615 < 0 = False
-18446744073709551615 < 1 = False
-18446744073709551615 < 2 = False
-18446744073709551615 < 3 = False
-
-0 < 18446744073709551613 = True
-0 < 18446744073709551614 = True
-0 < 18446744073709551615 = True
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < 18446744073709551613 = True
-1 < 18446744073709551614 = True
-1 < 18446744073709551615 = True
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < 18446744073709551613 = True
-2 < 18446744073709551614 = True
-2 < 18446744073709551615 = True
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < 18446744073709551613 = True
-3 < 18446744073709551614 = True
-3 < 18446744073709551615 = True
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
-18446744073709551613 > 18446744073709551613 = False
-18446744073709551613 > 18446744073709551614 = False
-18446744073709551613 > 18446744073709551615 = False
-18446744073709551613 > 0 = True
-18446744073709551613 > 1 = True
-18446744073709551613 > 2 = True
-18446744073709551613 > 3 = True
-
-18446744073709551614 > 18446744073709551613 = True
-18446744073709551614 > 18446744073709551614 = False
-18446744073709551614 > 18446744073709551615 = False
-18446744073709551614 > 0 = True
-18446744073709551614 > 1 = True
-18446744073709551614 > 2 = True
-18446744073709551614 > 3 = True
-
-18446744073709551615 > 18446744073709551613 = True
-18446744073709551615 > 18446744073709551614 = True
-18446744073709551615 > 18446744073709551615 = False
-18446744073709551615 > 0 = True
-18446744073709551615 > 1 = True
-18446744073709551615 > 2 = True
-18446744073709551615 > 3 = True
-
-0 > 18446744073709551613 = False
-0 > 18446744073709551614 = False
-0 > 18446744073709551615 = False
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > 18446744073709551613 = False
-1 > 18446744073709551614 = False
-1 > 18446744073709551615 = False
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > 18446744073709551613 = False
-2 > 18446744073709551614 = False
-2 > 18446744073709551615 = False
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > 18446744073709551613 = False
-3 > 18446744073709551614 = False
-3 > 18446744073709551615 = False
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
-18446744073709551613 >= 18446744073709551613 = True
-18446744073709551613 >= 18446744073709551614 = False
-18446744073709551613 >= 18446744073709551615 = False
-18446744073709551613 >= 0 = True
-18446744073709551613 >= 1 = True
-18446744073709551613 >= 2 = True
-18446744073709551613 >= 3 = True
-
-18446744073709551614 >= 18446744073709551613 = True
-18446744073709551614 >= 18446744073709551614 = True
-18446744073709551614 >= 18446744073709551615 = False
-18446744073709551614 >= 0 = True
-18446744073709551614 >= 1 = True
-18446744073709551614 >= 2 = True
-18446744073709551614 >= 3 = True
-
-18446744073709551615 >= 18446744073709551613 = True
-18446744073709551615 >= 18446744073709551614 = True
-18446744073709551615 >= 18446744073709551615 = True
-18446744073709551615 >= 0 = True
-18446744073709551615 >= 1 = True
-18446744073709551615 >= 2 = True
-18446744073709551615 >= 3 = True
-
-0 >= 18446744073709551613 = False
-0 >= 18446744073709551614 = False
-0 >= 18446744073709551615 = False
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= 18446744073709551613 = False
-1 >= 18446744073709551614 = False
-1 >= 18446744073709551615 = False
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= 18446744073709551613 = False
-2 >= 18446744073709551614 = False
-2 >= 18446744073709551615 = False
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= 18446744073709551613 = False
-3 >= 18446744073709551614 = False
-3 >= 18446744073709551615 = False
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
-18446744073709551613 `compare` 18446744073709551613 = EQ
-18446744073709551613 `compare` 18446744073709551614 = LT
-18446744073709551613 `compare` 18446744073709551615 = LT
-18446744073709551613 `compare` 0 = GT
-18446744073709551613 `compare` 1 = GT
-18446744073709551613 `compare` 2 = GT
-18446744073709551613 `compare` 3 = GT
-
-18446744073709551614 `compare` 18446744073709551613 = GT
-18446744073709551614 `compare` 18446744073709551614 = EQ
-18446744073709551614 `compare` 18446744073709551615 = LT
-18446744073709551614 `compare` 0 = GT
-18446744073709551614 `compare` 1 = GT
-18446744073709551614 `compare` 2 = GT
-18446744073709551614 `compare` 3 = GT
-
-18446744073709551615 `compare` 18446744073709551613 = GT
-18446744073709551615 `compare` 18446744073709551614 = GT
-18446744073709551615 `compare` 18446744073709551615 = EQ
-18446744073709551615 `compare` 0 = GT
-18446744073709551615 `compare` 1 = GT
-18446744073709551615 `compare` 2 = GT
-18446744073709551615 `compare` 3 = GT
-
-0 `compare` 18446744073709551613 = LT
-0 `compare` 18446744073709551614 = LT
-0 `compare` 18446744073709551615 = LT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` 18446744073709551613 = LT
-1 `compare` 18446744073709551614 = LT
-1 `compare` 18446744073709551615 = LT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` 18446744073709551613 = LT
-2 `compare` 18446744073709551614 = LT
-2 `compare` 18446744073709551615 = LT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` 18446744073709551613 = LT
-3 `compare` 18446744073709551614 = LT
-3 `compare` 18446744073709551615 = LT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
-18446744073709551613 + 18446744073709551613 = 18446744073709551610
-18446744073709551613 + 18446744073709551614 = 18446744073709551611
-18446744073709551613 + 18446744073709551615 = 18446744073709551612
-18446744073709551613 + 0 = 18446744073709551613
-18446744073709551613 + 1 = 18446744073709551614
-18446744073709551613 + 2 = 18446744073709551615
-18446744073709551613 + 3 = 0
-
-18446744073709551614 + 18446744073709551613 = 18446744073709551611
-18446744073709551614 + 18446744073709551614 = 18446744073709551612
-18446744073709551614 + 18446744073709551615 = 18446744073709551613
-18446744073709551614 + 0 = 18446744073709551614
-18446744073709551614 + 1 = 18446744073709551615
-18446744073709551614 + 2 = 0
-18446744073709551614 + 3 = 1
-
-18446744073709551615 + 18446744073709551613 = 18446744073709551612
-18446744073709551615 + 18446744073709551614 = 18446744073709551613
-18446744073709551615 + 18446744073709551615 = 18446744073709551614
-18446744073709551615 + 0 = 18446744073709551615
-18446744073709551615 + 1 = 0
-18446744073709551615 + 2 = 1
-18446744073709551615 + 3 = 2
-
-0 + 18446744073709551613 = 18446744073709551613
-0 + 18446744073709551614 = 18446744073709551614
-0 + 18446744073709551615 = 18446744073709551615
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + 18446744073709551613 = 18446744073709551614
-1 + 18446744073709551614 = 18446744073709551615
-1 + 18446744073709551615 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + 18446744073709551613 = 18446744073709551615
-2 + 18446744073709551614 = 0
-2 + 18446744073709551615 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + 18446744073709551613 = 0
-3 + 18446744073709551614 = 1
-3 + 18446744073709551615 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
-18446744073709551613 - 18446744073709551613 = 0
-18446744073709551613 - 18446744073709551614 = 18446744073709551615
-18446744073709551613 - 18446744073709551615 = 18446744073709551614
-18446744073709551613 - 0 = 18446744073709551613
-18446744073709551613 - 1 = 18446744073709551612
-18446744073709551613 - 2 = 18446744073709551611
-18446744073709551613 - 3 = 18446744073709551610
-
-18446744073709551614 - 18446744073709551613 = 1
-18446744073709551614 - 18446744073709551614 = 0
-18446744073709551614 - 18446744073709551615 = 18446744073709551615
-18446744073709551614 - 0 = 18446744073709551614
-18446744073709551614 - 1 = 18446744073709551613
-18446744073709551614 - 2 = 18446744073709551612
-18446744073709551614 - 3 = 18446744073709551611
-
-18446744073709551615 - 18446744073709551613 = 2
-18446744073709551615 - 18446744073709551614 = 1
-18446744073709551615 - 18446744073709551615 = 0
-18446744073709551615 - 0 = 18446744073709551615
-18446744073709551615 - 1 = 18446744073709551614
-18446744073709551615 - 2 = 18446744073709551613
-18446744073709551615 - 3 = 18446744073709551612
-
-0 - 18446744073709551613 = 3
-0 - 18446744073709551614 = 2
-0 - 18446744073709551615 = 1
-0 - 0 = 0
-0 - 1 = 18446744073709551615
-0 - 2 = 18446744073709551614
-0 - 3 = 18446744073709551613
-
-1 - 18446744073709551613 = 4
-1 - 18446744073709551614 = 3
-1 - 18446744073709551615 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = 18446744073709551615
-1 - 3 = 18446744073709551614
-
-2 - 18446744073709551613 = 5
-2 - 18446744073709551614 = 4
-2 - 18446744073709551615 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = 18446744073709551615
-
-3 - 18446744073709551613 = 6
-3 - 18446744073709551614 = 5
-3 - 18446744073709551615 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
-18446744073709551613 * 18446744073709551613 = 9
-18446744073709551613 * 18446744073709551614 = 6
-18446744073709551613 * 18446744073709551615 = 3
-18446744073709551613 * 0 = 0
-18446744073709551613 * 1 = 18446744073709551613
-18446744073709551613 * 2 = 18446744073709551610
-18446744073709551613 * 3 = 18446744073709551607
-
-18446744073709551614 * 18446744073709551613 = 6
-18446744073709551614 * 18446744073709551614 = 4
-18446744073709551614 * 18446744073709551615 = 2
-18446744073709551614 * 0 = 0
-18446744073709551614 * 1 = 18446744073709551614
-18446744073709551614 * 2 = 18446744073709551612
-18446744073709551614 * 3 = 18446744073709551610
-
-18446744073709551615 * 18446744073709551613 = 3
-18446744073709551615 * 18446744073709551614 = 2
-18446744073709551615 * 18446744073709551615 = 1
-18446744073709551615 * 0 = 0
-18446744073709551615 * 1 = 18446744073709551615
-18446744073709551615 * 2 = 18446744073709551614
-18446744073709551615 * 3 = 18446744073709551613
-
-0 * 18446744073709551613 = 0
-0 * 18446744073709551614 = 0
-0 * 18446744073709551615 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * 18446744073709551613 = 18446744073709551613
-1 * 18446744073709551614 = 18446744073709551614
-1 * 18446744073709551615 = 18446744073709551615
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * 18446744073709551613 = 18446744073709551610
-2 * 18446744073709551614 = 18446744073709551612
-2 * 18446744073709551615 = 18446744073709551614
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * 18446744073709551613 = 18446744073709551607
-3 * 18446744073709551614 = 18446744073709551610
-3 * 18446744073709551615 = 18446744073709551613
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate 18446744073709551613 = 3
-negate 18446744073709551614 = 2
-negate 18446744073709551615 = 1
-negate 0 = 0
-negate 1 = 18446744073709551615
-negate 2 = 18446744073709551614
-negate 3 = 18446744073709551613
-#
-testReal
-toRational 18446744073709551613 = 18446744073709551613 % 1
-toRational 18446744073709551614 = 18446744073709551614 % 1
-toRational 18446744073709551615 = 18446744073709551615 % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
-18446744073709551613 `divMod` 18446744073709551613 = (1,0)
-18446744073709551613 `divMod` 18446744073709551614 = (0,18446744073709551613)
-18446744073709551613 `divMod` 18446744073709551615 = (0,18446744073709551613)
-18446744073709551613 `divMod` 1 = (18446744073709551613,0)
-18446744073709551613 `divMod` 2 = (9223372036854775806,1)
-18446744073709551613 `divMod` 3 = (6148914691236517204,1)
-
-18446744073709551614 `divMod` 18446744073709551613 = (1,1)
-18446744073709551614 `divMod` 18446744073709551614 = (1,0)
-18446744073709551614 `divMod` 18446744073709551615 = (0,18446744073709551614)
-18446744073709551614 `divMod` 1 = (18446744073709551614,0)
-18446744073709551614 `divMod` 2 = (9223372036854775807,0)
-18446744073709551614 `divMod` 3 = (6148914691236517204,2)
-
-18446744073709551615 `divMod` 18446744073709551613 = (1,2)
-18446744073709551615 `divMod` 18446744073709551614 = (1,1)
-18446744073709551615 `divMod` 18446744073709551615 = (1,0)
-18446744073709551615 `divMod` 1 = (18446744073709551615,0)
-18446744073709551615 `divMod` 2 = (9223372036854775807,1)
-18446744073709551615 `divMod` 3 = (6148914691236517205,0)
-
-0 `divMod` 18446744073709551613 = (0,0)
-0 `divMod` 18446744073709551614 = (0,0)
-0 `divMod` 18446744073709551615 = (0,0)
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` 18446744073709551613 = (0,1)
-1 `divMod` 18446744073709551614 = (0,1)
-1 `divMod` 18446744073709551615 = (0,1)
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` 18446744073709551613 = (0,2)
-2 `divMod` 18446744073709551614 = (0,2)
-2 `divMod` 18446744073709551615 = (0,2)
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` 18446744073709551613 = (0,3)
-3 `divMod` 18446744073709551614 = (0,3)
-3 `divMod` 18446744073709551615 = (0,3)
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
-18446744073709551613 `div` 18446744073709551613 = 1
-18446744073709551613 `div` 18446744073709551614 = 0
-18446744073709551613 `div` 18446744073709551615 = 0
-18446744073709551613 `div` 1 = 18446744073709551613
-18446744073709551613 `div` 2 = 9223372036854775806
-18446744073709551613 `div` 3 = 6148914691236517204
-
-18446744073709551614 `div` 18446744073709551613 = 1
-18446744073709551614 `div` 18446744073709551614 = 1
-18446744073709551614 `div` 18446744073709551615 = 0
-18446744073709551614 `div` 1 = 18446744073709551614
-18446744073709551614 `div` 2 = 9223372036854775807
-18446744073709551614 `div` 3 = 6148914691236517204
-
-18446744073709551615 `div` 18446744073709551613 = 1
-18446744073709551615 `div` 18446744073709551614 = 1
-18446744073709551615 `div` 18446744073709551615 = 1
-18446744073709551615 `div` 1 = 18446744073709551615
-18446744073709551615 `div` 2 = 9223372036854775807
-18446744073709551615 `div` 3 = 6148914691236517205
-
-0 `div` 18446744073709551613 = 0
-0 `div` 18446744073709551614 = 0
-0 `div` 18446744073709551615 = 0
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` 18446744073709551613 = 0
-1 `div` 18446744073709551614 = 0
-1 `div` 18446744073709551615 = 0
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` 18446744073709551613 = 0
-2 `div` 18446744073709551614 = 0
-2 `div` 18446744073709551615 = 0
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` 18446744073709551613 = 0
-3 `div` 18446744073709551614 = 0
-3 `div` 18446744073709551615 = 0
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
-18446744073709551613 `mod` 18446744073709551613 = 0
-18446744073709551613 `mod` 18446744073709551614 = 18446744073709551613
-18446744073709551613 `mod` 18446744073709551615 = 18446744073709551613
-18446744073709551613 `mod` 1 = 0
-18446744073709551613 `mod` 2 = 1
-18446744073709551613 `mod` 3 = 1
-
-18446744073709551614 `mod` 18446744073709551613 = 1
-18446744073709551614 `mod` 18446744073709551614 = 0
-18446744073709551614 `mod` 18446744073709551615 = 18446744073709551614
-18446744073709551614 `mod` 1 = 0
-18446744073709551614 `mod` 2 = 0
-18446744073709551614 `mod` 3 = 2
-
-18446744073709551615 `mod` 18446744073709551613 = 2
-18446744073709551615 `mod` 18446744073709551614 = 1
-18446744073709551615 `mod` 18446744073709551615 = 0
-18446744073709551615 `mod` 1 = 0
-18446744073709551615 `mod` 2 = 1
-18446744073709551615 `mod` 3 = 0
-
-0 `mod` 18446744073709551613 = 0
-0 `mod` 18446744073709551614 = 0
-0 `mod` 18446744073709551615 = 0
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` 18446744073709551613 = 1
-1 `mod` 18446744073709551614 = 1
-1 `mod` 18446744073709551615 = 1
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` 18446744073709551613 = 2
-2 `mod` 18446744073709551614 = 2
-2 `mod` 18446744073709551615 = 2
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` 18446744073709551613 = 3
-3 `mod` 18446744073709551614 = 3
-3 `mod` 18446744073709551615 = 3
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
-18446744073709551613 `quotRem` 18446744073709551613 = (1,0)
-18446744073709551613 `quotRem` 18446744073709551614 = (0,18446744073709551613)
-18446744073709551613 `quotRem` 18446744073709551615 = (0,18446744073709551613)
-18446744073709551613 `quotRem` 1 = (18446744073709551613,0)
-18446744073709551613 `quotRem` 2 = (9223372036854775806,1)
-18446744073709551613 `quotRem` 3 = (6148914691236517204,1)
-
-18446744073709551614 `quotRem` 18446744073709551613 = (1,1)
-18446744073709551614 `quotRem` 18446744073709551614 = (1,0)
-18446744073709551614 `quotRem` 18446744073709551615 = (0,18446744073709551614)
-18446744073709551614 `quotRem` 1 = (18446744073709551614,0)
-18446744073709551614 `quotRem` 2 = (9223372036854775807,0)
-18446744073709551614 `quotRem` 3 = (6148914691236517204,2)
-
-18446744073709551615 `quotRem` 18446744073709551613 = (1,2)
-18446744073709551615 `quotRem` 18446744073709551614 = (1,1)
-18446744073709551615 `quotRem` 18446744073709551615 = (1,0)
-18446744073709551615 `quotRem` 1 = (18446744073709551615,0)
-18446744073709551615 `quotRem` 2 = (9223372036854775807,1)
-18446744073709551615 `quotRem` 3 = (6148914691236517205,0)
-
-0 `quotRem` 18446744073709551613 = (0,0)
-0 `quotRem` 18446744073709551614 = (0,0)
-0 `quotRem` 18446744073709551615 = (0,0)
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` 18446744073709551613 = (0,1)
-1 `quotRem` 18446744073709551614 = (0,1)
-1 `quotRem` 18446744073709551615 = (0,1)
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` 18446744073709551613 = (0,2)
-2 `quotRem` 18446744073709551614 = (0,2)
-2 `quotRem` 18446744073709551615 = (0,2)
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` 18446744073709551613 = (0,3)
-3 `quotRem` 18446744073709551614 = (0,3)
-3 `quotRem` 18446744073709551615 = (0,3)
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
-18446744073709551613 `quot` 18446744073709551613 = 1
-18446744073709551613 `quot` 18446744073709551614 = 0
-18446744073709551613 `quot` 18446744073709551615 = 0
-18446744073709551613 `quot` 1 = 18446744073709551613
-18446744073709551613 `quot` 2 = 9223372036854775806
-18446744073709551613 `quot` 3 = 6148914691236517204
-
-18446744073709551614 `quot` 18446744073709551613 = 1
-18446744073709551614 `quot` 18446744073709551614 = 1
-18446744073709551614 `quot` 18446744073709551615 = 0
-18446744073709551614 `quot` 1 = 18446744073709551614
-18446744073709551614 `quot` 2 = 9223372036854775807
-18446744073709551614 `quot` 3 = 6148914691236517204
-
-18446744073709551615 `quot` 18446744073709551613 = 1
-18446744073709551615 `quot` 18446744073709551614 = 1
-18446744073709551615 `quot` 18446744073709551615 = 1
-18446744073709551615 `quot` 1 = 18446744073709551615
-18446744073709551615 `quot` 2 = 9223372036854775807
-18446744073709551615 `quot` 3 = 6148914691236517205
-
-0 `quot` 18446744073709551613 = 0
-0 `quot` 18446744073709551614 = 0
-0 `quot` 18446744073709551615 = 0
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` 18446744073709551613 = 0
-1 `quot` 18446744073709551614 = 0
-1 `quot` 18446744073709551615 = 0
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` 18446744073709551613 = 0
-2 `quot` 18446744073709551614 = 0
-2 `quot` 18446744073709551615 = 0
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` 18446744073709551613 = 0
-3 `quot` 18446744073709551614 = 0
-3 `quot` 18446744073709551615 = 0
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
-18446744073709551613 `rem` 18446744073709551613 = 0
-18446744073709551613 `rem` 18446744073709551614 = 18446744073709551613
-18446744073709551613 `rem` 18446744073709551615 = 18446744073709551613
-18446744073709551613 `rem` 1 = 0
-18446744073709551613 `rem` 2 = 1
-18446744073709551613 `rem` 3 = 1
-
-18446744073709551614 `rem` 18446744073709551613 = 1
-18446744073709551614 `rem` 18446744073709551614 = 0
-18446744073709551614 `rem` 18446744073709551615 = 18446744073709551614
-18446744073709551614 `rem` 1 = 0
-18446744073709551614 `rem` 2 = 0
-18446744073709551614 `rem` 3 = 2
-
-18446744073709551615 `rem` 18446744073709551613 = 2
-18446744073709551615 `rem` 18446744073709551614 = 1
-18446744073709551615 `rem` 18446744073709551615 = 0
-18446744073709551615 `rem` 1 = 0
-18446744073709551615 `rem` 2 = 1
-18446744073709551615 `rem` 3 = 0
-
-0 `rem` 18446744073709551613 = 0
-0 `rem` 18446744073709551614 = 0
-0 `rem` 18446744073709551615 = 0
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` 18446744073709551613 = 1
-1 `rem` 18446744073709551614 = 1
-1 `rem` 18446744073709551615 = 1
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` 18446744073709551613 = 2
-2 `rem` 18446744073709551614 = 2
-2 `rem` 18446744073709551615 = 2
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` 18446744073709551613 = 3
-3 `rem` 18446744073709551614 = 3
-3 `rem` 18446744073709551615 = 3
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [0,0,18446744073709551615]
-Int : [0,0,-1]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [0,0,-1]
-Int64 : [0,0,-1]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [0,0,4294967295]
-Word64 : [0,0,18446744073709551615]
-testBits
-18446744073709551613 .&. 18446744073709551613 = 18446744073709551613
-18446744073709551613 .&. 18446744073709551614 = 18446744073709551612
-18446744073709551613 .&. 18446744073709551615 = 18446744073709551613
-18446744073709551613 .&. 1 = 1
-18446744073709551613 .&. 2 = 0
-18446744073709551613 .&. 3 = 1
-
-18446744073709551614 .&. 18446744073709551613 = 18446744073709551612
-18446744073709551614 .&. 18446744073709551614 = 18446744073709551614
-18446744073709551614 .&. 18446744073709551615 = 18446744073709551614
-18446744073709551614 .&. 1 = 0
-18446744073709551614 .&. 2 = 2
-18446744073709551614 .&. 3 = 2
-
-18446744073709551615 .&. 18446744073709551613 = 18446744073709551613
-18446744073709551615 .&. 18446744073709551614 = 18446744073709551614
-18446744073709551615 .&. 18446744073709551615 = 18446744073709551615
-18446744073709551615 .&. 1 = 1
-18446744073709551615 .&. 2 = 2
-18446744073709551615 .&. 3 = 3
-
-0 .&. 18446744073709551613 = 0
-0 .&. 18446744073709551614 = 0
-0 .&. 18446744073709551615 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. 18446744073709551613 = 1
-1 .&. 18446744073709551614 = 0
-1 .&. 18446744073709551615 = 1
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. 18446744073709551613 = 0
-2 .&. 18446744073709551614 = 2
-2 .&. 18446744073709551615 = 2
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. 18446744073709551613 = 1
-3 .&. 18446744073709551614 = 2
-3 .&. 18446744073709551615 = 3
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
-18446744073709551613 .|. 18446744073709551613 = 18446744073709551613
-18446744073709551613 .|. 18446744073709551614 = 18446744073709551615
-18446744073709551613 .|. 18446744073709551615 = 18446744073709551615
-18446744073709551613 .|. 1 = 18446744073709551613
-18446744073709551613 .|. 2 = 18446744073709551615
-18446744073709551613 .|. 3 = 18446744073709551615
-
-18446744073709551614 .|. 18446744073709551613 = 18446744073709551615
-18446744073709551614 .|. 18446744073709551614 = 18446744073709551614
-18446744073709551614 .|. 18446744073709551615 = 18446744073709551615
-18446744073709551614 .|. 1 = 18446744073709551615
-18446744073709551614 .|. 2 = 18446744073709551614
-18446744073709551614 .|. 3 = 18446744073709551615
-
-18446744073709551615 .|. 18446744073709551613 = 18446744073709551615
-18446744073709551615 .|. 18446744073709551614 = 18446744073709551615
-18446744073709551615 .|. 18446744073709551615 = 18446744073709551615
-18446744073709551615 .|. 1 = 18446744073709551615
-18446744073709551615 .|. 2 = 18446744073709551615
-18446744073709551615 .|. 3 = 18446744073709551615
-
-0 .|. 18446744073709551613 = 18446744073709551613
-0 .|. 18446744073709551614 = 18446744073709551614
-0 .|. 18446744073709551615 = 18446744073709551615
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. 18446744073709551613 = 18446744073709551613
-1 .|. 18446744073709551614 = 18446744073709551615
-1 .|. 18446744073709551615 = 18446744073709551615
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. 18446744073709551613 = 18446744073709551615
-2 .|. 18446744073709551614 = 18446744073709551614
-2 .|. 18446744073709551615 = 18446744073709551615
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. 18446744073709551613 = 18446744073709551615
-3 .|. 18446744073709551614 = 18446744073709551615
-3 .|. 18446744073709551615 = 18446744073709551615
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
-18446744073709551613 `xor` 18446744073709551613 = 0
-18446744073709551613 `xor` 18446744073709551614 = 3
-18446744073709551613 `xor` 18446744073709551615 = 2
-18446744073709551613 `xor` 1 = 18446744073709551612
-18446744073709551613 `xor` 2 = 18446744073709551615
-18446744073709551613 `xor` 3 = 18446744073709551614
-
-18446744073709551614 `xor` 18446744073709551613 = 3
-18446744073709551614 `xor` 18446744073709551614 = 0
-18446744073709551614 `xor` 18446744073709551615 = 1
-18446744073709551614 `xor` 1 = 18446744073709551615
-18446744073709551614 `xor` 2 = 18446744073709551612
-18446744073709551614 `xor` 3 = 18446744073709551613
-
-18446744073709551615 `xor` 18446744073709551613 = 2
-18446744073709551615 `xor` 18446744073709551614 = 1
-18446744073709551615 `xor` 18446744073709551615 = 0
-18446744073709551615 `xor` 1 = 18446744073709551614
-18446744073709551615 `xor` 2 = 18446744073709551613
-18446744073709551615 `xor` 3 = 18446744073709551612
-
-0 `xor` 18446744073709551613 = 18446744073709551613
-0 `xor` 18446744073709551614 = 18446744073709551614
-0 `xor` 18446744073709551615 = 18446744073709551615
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` 18446744073709551613 = 18446744073709551612
-1 `xor` 18446744073709551614 = 18446744073709551615
-1 `xor` 18446744073709551615 = 18446744073709551614
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` 18446744073709551613 = 18446744073709551615
-2 `xor` 18446744073709551614 = 18446744073709551612
-2 `xor` 18446744073709551615 = 18446744073709551613
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` 18446744073709551613 = 18446744073709551614
-3 `xor` 18446744073709551614 = 18446744073709551613
-3 `xor` 18446744073709551615 = 18446744073709551612
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement 18446744073709551613 = 2
-complement 18446744073709551614 = 1
-complement 18446744073709551615 = 0
-complement 0 = 18446744073709551615
-complement 1 = 18446744073709551614
-complement 2 = 18446744073709551613
-complement 3 = 18446744073709551612
-#
-18446744073709551613 `shiftL` 0 = 18446744073709551613
-18446744073709551613 `shiftL` 1 = 18446744073709551610
-18446744073709551613 `shiftL` 2 = 18446744073709551604
-18446744073709551613 `shiftL` 3 = 18446744073709551592
-18446744073709551613 `shiftL` 32 = 18446744060824649728
-18446744073709551613 `shiftL` 64 = 0
-
-18446744073709551614 `shiftL` 0 = 18446744073709551614
-18446744073709551614 `shiftL` 1 = 18446744073709551612
-18446744073709551614 `shiftL` 2 = 18446744073709551608
-18446744073709551614 `shiftL` 3 = 18446744073709551600
-18446744073709551614 `shiftL` 32 = 18446744065119617024
-18446744073709551614 `shiftL` 64 = 0
-
-18446744073709551615 `shiftL` 0 = 18446744073709551615
-18446744073709551615 `shiftL` 1 = 18446744073709551614
-18446744073709551615 `shiftL` 2 = 18446744073709551612
-18446744073709551615 `shiftL` 3 = 18446744073709551608
-18446744073709551615 `shiftL` 32 = 18446744069414584320
-18446744073709551615 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 4294967296
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 8589934592
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 12884901888
-3 `shiftL` 64 = 0
-
-#
-18446744073709551613 `shiftR` 0 = 18446744073709551613
-18446744073709551613 `shiftR` 1 = 9223372036854775806
-18446744073709551613 `shiftR` 2 = 4611686018427387903
-18446744073709551613 `shiftR` 3 = 2305843009213693951
-18446744073709551613 `shiftR` 32 = 4294967295
-18446744073709551613 `shiftR` 64 = 0
-
-18446744073709551614 `shiftR` 0 = 18446744073709551614
-18446744073709551614 `shiftR` 1 = 9223372036854775807
-18446744073709551614 `shiftR` 2 = 4611686018427387903
-18446744073709551614 `shiftR` 3 = 2305843009213693951
-18446744073709551614 `shiftR` 32 = 4294967295
-18446744073709551614 `shiftR` 64 = 0
-
-18446744073709551615 `shiftR` 0 = 18446744073709551615
-18446744073709551615 `shiftR` 1 = 9223372036854775807
-18446744073709551615 `shiftR` 2 = 4611686018427387903
-18446744073709551615 `shiftR` 3 = 2305843009213693951
-18446744073709551615 `shiftR` 32 = 4294967295
-18446744073709551615 `shiftR` 64 = 0
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
-18446744073709551613 `rotate` -3 = 13835058055282163711
-18446744073709551613 `rotate` -2 = 9223372036854775807
-18446744073709551613 `rotate` -1 = 18446744073709551614
-18446744073709551613 `rotate` 0 = 18446744073709551613
-18446744073709551613 `rotate` 1 = 18446744073709551611
-18446744073709551613 `rotate` 2 = 18446744073709551607
-18446744073709551613 `rotate` 3 = 18446744073709551599
-
-18446744073709551614 `rotate` -3 = 16140901064495857663
-18446744073709551614 `rotate` -2 = 13835058055282163711
-18446744073709551614 `rotate` -1 = 9223372036854775807
-18446744073709551614 `rotate` 0 = 18446744073709551614
-18446744073709551614 `rotate` 1 = 18446744073709551613
-18446744073709551614 `rotate` 2 = 18446744073709551611
-18446744073709551614 `rotate` 3 = 18446744073709551607
-
-18446744073709551615 `rotate` -3 = 18446744073709551615
-18446744073709551615 `rotate` -2 = 18446744073709551615
-18446744073709551615 `rotate` -1 = 18446744073709551615
-18446744073709551615 `rotate` 0 = 18446744073709551615
-18446744073709551615 `rotate` 1 = 18446744073709551615
-18446744073709551615 `rotate` 2 = 18446744073709551615
-18446744073709551615 `rotate` 3 = 18446744073709551615
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-
-1 `rotate` -3 = 2305843009213693952
-1 `rotate` -2 = 4611686018427387904
-1 `rotate` -1 = 9223372036854775808
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-
-2 `rotate` -3 = 4611686018427387904
-2 `rotate` -2 = 9223372036854775808
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-
-3 `rotate` -3 = 6917529027641081856
-3 `rotate` -2 = 13835058055282163712
-3 `rotate` -1 = 9223372036854775809
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
-18446744073709551613 `setBit` 0 = 18446744073709551613
-18446744073709551613 `setBit` 1 = 18446744073709551615
-18446744073709551613 `setBit` 2 = 18446744073709551613
-18446744073709551613 `setBit` 3 = 18446744073709551613
-18446744073709551613 `setBit` 32 = 18446744073709551613
-18446744073709551613 `setBit` 64 = 18446744073709551613
-
-18446744073709551614 `setBit` 0 = 18446744073709551615
-18446744073709551614 `setBit` 1 = 18446744073709551614
-18446744073709551614 `setBit` 2 = 18446744073709551614
-18446744073709551614 `setBit` 3 = 18446744073709551614
-18446744073709551614 `setBit` 32 = 18446744073709551614
-18446744073709551614 `setBit` 64 = 18446744073709551614
-
-18446744073709551615 `setBit` 0 = 18446744073709551615
-18446744073709551615 `setBit` 1 = 18446744073709551615
-18446744073709551615 `setBit` 2 = 18446744073709551615
-18446744073709551615 `setBit` 3 = 18446744073709551615
-18446744073709551615 `setBit` 32 = 18446744073709551615
-18446744073709551615 `setBit` 64 = 18446744073709551615
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 4294967296
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 4294967297
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 4294967298
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 4294967299
-3 `setBit` 64 = 3
-
-#
-18446744073709551613 `clearBit` 0 = 18446744073709551612
-18446744073709551613 `clearBit` 1 = 18446744073709551613
-18446744073709551613 `clearBit` 2 = 18446744073709551609
-18446744073709551613 `clearBit` 3 = 18446744073709551605
-18446744073709551613 `clearBit` 32 = 18446744069414584317
-18446744073709551613 `clearBit` 64 = 18446744073709551613
-
-18446744073709551614 `clearBit` 0 = 18446744073709551614
-18446744073709551614 `clearBit` 1 = 18446744073709551612
-18446744073709551614 `clearBit` 2 = 18446744073709551610
-18446744073709551614 `clearBit` 3 = 18446744073709551606
-18446744073709551614 `clearBit` 32 = 18446744069414584318
-18446744073709551614 `clearBit` 64 = 18446744073709551614
-
-18446744073709551615 `clearBit` 0 = 18446744073709551614
-18446744073709551615 `clearBit` 1 = 18446744073709551613
-18446744073709551615 `clearBit` 2 = 18446744073709551611
-18446744073709551615 `clearBit` 3 = 18446744073709551607
-18446744073709551615 `clearBit` 32 = 18446744069414584319
-18446744073709551615 `clearBit` 64 = 18446744073709551615
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
-18446744073709551613 `complementBit` 0 = 18446744073709551612
-18446744073709551613 `complementBit` 1 = 18446744073709551615
-18446744073709551613 `complementBit` 2 = 18446744073709551609
-18446744073709551613 `complementBit` 3 = 18446744073709551605
-18446744073709551613 `complementBit` 32 = 18446744069414584317
-18446744073709551613 `complementBit` 64 = 18446744073709551613
-
-18446744073709551614 `complementBit` 0 = 18446744073709551615
-18446744073709551614 `complementBit` 1 = 18446744073709551612
-18446744073709551614 `complementBit` 2 = 18446744073709551610
-18446744073709551614 `complementBit` 3 = 18446744073709551606
-18446744073709551614 `complementBit` 32 = 18446744069414584318
-18446744073709551614 `complementBit` 64 = 18446744073709551614
-
-18446744073709551615 `complementBit` 0 = 18446744073709551614
-18446744073709551615 `complementBit` 1 = 18446744073709551613
-18446744073709551615 `complementBit` 2 = 18446744073709551611
-18446744073709551615 `complementBit` 3 = 18446744073709551607
-18446744073709551615 `complementBit` 32 = 18446744069414584319
-18446744073709551615 `complementBit` 64 = 18446744073709551615
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 4294967296
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 4294967297
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 4294967298
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 4294967299
-3 `complementBit` 64 = 3
-
-#
-18446744073709551613 `testBit` 0 = True
-18446744073709551613 `testBit` 1 = False
-18446744073709551613 `testBit` 2 = True
-18446744073709551613 `testBit` 3 = True
-18446744073709551613 `testBit` 32 = True
-18446744073709551613 `testBit` 64 = False
-
-18446744073709551614 `testBit` 0 = False
-18446744073709551614 `testBit` 1 = True
-18446744073709551614 `testBit` 2 = True
-18446744073709551614 `testBit` 3 = True
-18446744073709551614 `testBit` 32 = True
-18446744073709551614 `testBit` 64 = False
-
-18446744073709551615 `testBit` 0 = True
-18446744073709551615 `testBit` 1 = True
-18446744073709551615 `testBit` 2 = True
-18446744073709551615 `testBit` 3 = True
-18446744073709551615 `testBit` 32 = True
-18446744073709551615 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize 18446744073709551613 = 64
-bitSize 18446744073709551614 = 64
-bitSize 18446744073709551615 = 64
-bitSize 0 = 64
-bitSize 1 = 64
-bitSize 2 = 64
-bitSize 3 = 64
-#
-isSigned 18446744073709551613 = False
-isSigned 18446744073709551614 = False
-isSigned 18446744073709551615 = False
-isSigned 0 = False
-isSigned 1 = False
-isSigned 2 = False
-isSigned 3 = False
-#
---------------------------------
---Testing Integer
---------------------------------
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = -12884901888
--3 `shiftL` 64 = -55340232221128654848
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = -8589934592
--2 `shiftL` 64 = -36893488147419103232
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = -4294967296
--1 `shiftL` 64 = -18446744073709551616
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 4294967296
-1 `shiftL` 64 = 18446744073709551616
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 8589934592
-2 `shiftL` 64 = 36893488147419103232
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 12884901888
-3 `shiftL` 64 = 55340232221128654848
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -1
--3 `rotate` -2 = -1
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -6
--3 `rotate` 2 = -12
--3 `rotate` 3 = -24
-
--2 `rotate` -3 = -1
--2 `rotate` -2 = -1
--2 `rotate` -1 = -1
--2 `rotate` 0 = -2
--2 `rotate` 1 = -4
--2 `rotate` 2 = -8
--2 `rotate` 3 = -16
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -2
--1 `rotate` 2 = -4
--1 `rotate` 3 = -8
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-
-1 `rotate` -3 = 0
-1 `rotate` -2 = 0
-1 `rotate` -1 = 0
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-
-2 `rotate` -3 = 0
-2 `rotate` -2 = 0
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-
-3 `rotate` -3 = 0
-3 `rotate` -2 = 0
-3 `rotate` -1 = 1
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 4294967296
-0 `setBit` 64 = 18446744073709551616
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 4294967297
-1 `setBit` 64 = 18446744073709551617
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 4294967298
-2 `setBit` 64 = 18446744073709551618
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 4294967299
-3 `setBit` 64 = 18446744073709551619
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -4294967299
--3 `clearBit` 64 = -18446744073709551619
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -4294967298
--2 `clearBit` 64 = -18446744073709551618
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -4294967297
--1 `clearBit` 64 = -18446744073709551617
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -4294967299
--3 `complementBit` 64 = -18446744073709551619
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -4294967298
--2 `complementBit` 64 = -18446744073709551618
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -4294967297
--1 `complementBit` 64 = -18446744073709551617
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 4294967296
-0 `complementBit` 64 = 18446744073709551616
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 4294967297
-1 `complementBit` 64 = 18446744073709551617
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 4294967298
-2 `complementBit` 64 = 18446744073709551618
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 4294967299
-3 `complementBit` 64 = 18446744073709551619
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = True
--3 `testBit` 64 = True
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = True
--2 `testBit` 64 = True
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = True
--1 `testBit` 64 = True
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith011.stdout-mips-sgi-irix b/testsuite/tests/ghc-regress/numeric/should_run/arith011.stdout-mips-sgi-irix
deleted file mode 100644
index 0e86320b3a..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith011.stdout-mips-sgi-irix
+++ /dev/null
@@ -1,15138 +0,0 @@
---------------------------------
---Testing Int
---------------------------------
-testBounded
-(9223372036854775807,-9223372036854775808,-9223372036854775807)
-(9223372036854775806,9223372036854775807,-9223372036854775808)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 0 = divide by zero
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 0 = divide by zero
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 0 = divide by zero
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 0 = divide by zero
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 0 = divide by zero
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 0 = divide by zero
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 0 = divide by zero
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 0 = divide by zero
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 0 = divide by zero
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 0 = divide by zero
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 0 = divide by zero
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 0 = divide by zero
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 0 = divide by zero
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 0 = divide by zero
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 0 = divide by zero
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 0 = divide by zero
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 0 = divide by zero
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 0 = divide by zero
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [-9223372036854775808,0,9223372036854775807]
-Int : [-9223372036854775808,0,9223372036854775807]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [0,0,-1]
-Int64 : [-9223372036854775808,0,9223372036854775807]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [0,0,4294967295]
-Word64 : [9223372036854775808,0,9223372036854775807]
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 0 = 0
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 0 = 0
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 0 = 0
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 0 = -3
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 0 = -2
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 0 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 0 = -3
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 0 = -2
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 0 = -1
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = -12884901888
--3 `shiftL` 64 = 0
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = -8589934592
--2 `shiftL` 64 = 0
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = -4294967296
--1 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 4294967296
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 8589934592
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 12884901888
-3 `shiftL` 64 = 0
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -4611686018427387905
--3 `rotate` -2 = 9223372036854775807
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -5
--3 `rotate` 2 = -9
--3 `rotate` 3 = -17
-
--2 `rotate` -3 = -2305843009213693953
--2 `rotate` -2 = -4611686018427387905
--2 `rotate` -1 = 9223372036854775807
--2 `rotate` 0 = -2
--2 `rotate` 1 = -3
--2 `rotate` 2 = -5
--2 `rotate` 3 = -9
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -1
--1 `rotate` 2 = -1
--1 `rotate` 3 = -1
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-
-1 `rotate` -3 = 2305843009213693952
-1 `rotate` -2 = 4611686018427387904
-1 `rotate` -1 = -9223372036854775808
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-
-2 `rotate` -3 = 4611686018427387904
-2 `rotate` -2 = -9223372036854775808
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-
-3 `rotate` -3 = 6917529027641081856
-3 `rotate` -2 = -4611686018427387904
-3 `rotate` -1 = -9223372036854775807
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 4294967296
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 4294967297
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 4294967298
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 4294967299
-3 `setBit` 64 = 3
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -4294967299
--3 `clearBit` 64 = -3
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -4294967298
--2 `clearBit` 64 = -2
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -4294967297
--1 `clearBit` 64 = -1
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -4294967299
--3 `complementBit` 64 = -3
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -4294967298
--2 `complementBit` 64 = -2
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -4294967297
--1 `complementBit` 64 = -1
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 4294967296
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 4294967297
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 4294967298
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 4294967299
-3 `complementBit` 64 = 3
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = True
--3 `testBit` 64 = False
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = True
--2 `testBit` 64 = False
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = True
--1 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize -3 = 64
-bitSize -2 = 64
-bitSize -1 = 64
-bitSize 0 = 64
-bitSize 1 = 64
-bitSize 2 = 64
-bitSize 3 = 64
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
---------------------------------
---Testing Int8
---------------------------------
-testBounded
-(127,-128,-127)
-(126,127,-128)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 0 = divide by zero
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 0 = divide by zero
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 0 = divide by zero
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 0 = divide by zero
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 0 = divide by zero
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 0 = divide by zero
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 0 = divide by zero
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 0 = divide by zero
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 0 = divide by zero
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 0 = divide by zero
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 0 = divide by zero
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 0 = divide by zero
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 0 = divide by zero
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 0 = divide by zero
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 0 = divide by zero
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 0 = divide by zero
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 0 = divide by zero
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 0 = divide by zero
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [-128,0,127]
-Int : [-128,0,127]
-Int8 : [-128,0,127]
-Int16 : [-128,0,127]
-Int32 : [-128,0,127]
-Int64 : [-128,0,127]
-Word8 : [128,0,127]
-Word16 : [65408,0,127]
-Word32 : [4294967168,0,127]
-Word64 : [18446744073709551488,0,127]
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 0 = 0
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 0 = 0
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 0 = 0
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 0 = -3
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 0 = -2
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 0 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 0 = -3
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 0 = -2
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 0 = -1
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = 0
--3 `shiftL` 64 = 0
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = 0
--2 `shiftL` 64 = 0
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = 0
--1 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -65
--3 `rotate` -2 = 127
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -5
--3 `rotate` 2 = -9
--3 `rotate` 3 = -17
-
--2 `rotate` -3 = -33
--2 `rotate` -2 = -65
--2 `rotate` -1 = 127
--2 `rotate` 0 = -2
--2 `rotate` 1 = -3
--2 `rotate` 2 = -5
--2 `rotate` 3 = -9
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -1
--1 `rotate` 2 = -1
--1 `rotate` 3 = -1
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-
-1 `rotate` -3 = 32
-1 `rotate` -2 = 64
-1 `rotate` -1 = -128
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-
-2 `rotate` -3 = 64
-2 `rotate` -2 = -128
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-
-3 `rotate` -3 = 96
-3 `rotate` -2 = -64
-3 `rotate` -1 = -127
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -3
--3 `clearBit` 64 = -3
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -2
--2 `clearBit` 64 = -2
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -1
--1 `clearBit` 64 = -1
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -3
--3 `complementBit` 64 = -3
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -2
--2 `complementBit` 64 = -2
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -1
--1 `complementBit` 64 = -1
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = False
--3 `testBit` 64 = False
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = False
--2 `testBit` 64 = False
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = False
--1 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize -3 = 8
-bitSize -2 = 8
-bitSize -1 = 8
-bitSize 0 = 8
-bitSize 1 = 8
-bitSize 2 = 8
-bitSize 3 = 8
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
---------------------------------
---Testing Int16
---------------------------------
-testBounded
-(32767,-32768,-32767)
-(32766,32767,-32768)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 0 = divide by zero
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 0 = divide by zero
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 0 = divide by zero
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 0 = divide by zero
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 0 = divide by zero
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 0 = divide by zero
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 0 = divide by zero
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 0 = divide by zero
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 0 = divide by zero
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 0 = divide by zero
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 0 = divide by zero
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 0 = divide by zero
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 0 = divide by zero
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 0 = divide by zero
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 0 = divide by zero
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 0 = divide by zero
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 0 = divide by zero
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 0 = divide by zero
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [-32768,0,32767]
-Int : [-32768,0,32767]
-Int8 : [0,0,-1]
-Int16 : [-32768,0,32767]
-Int32 : [-32768,0,32767]
-Int64 : [-32768,0,32767]
-Word8 : [0,0,255]
-Word16 : [32768,0,32767]
-Word32 : [4294934528,0,32767]
-Word64 : [18446744073709518848,0,32767]
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 0 = 0
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 0 = 0
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 0 = 0
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 0 = -3
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 0 = -2
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 0 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 0 = -3
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 0 = -2
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 0 = -1
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = 0
--3 `shiftL` 64 = 0
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = 0
--2 `shiftL` 64 = 0
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = 0
--1 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -16385
--3 `rotate` -2 = 32767
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -5
--3 `rotate` 2 = -9
--3 `rotate` 3 = -17
-
--2 `rotate` -3 = -8193
--2 `rotate` -2 = -16385
--2 `rotate` -1 = 32767
--2 `rotate` 0 = -2
--2 `rotate` 1 = -3
--2 `rotate` 2 = -5
--2 `rotate` 3 = -9
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -1
--1 `rotate` 2 = -1
--1 `rotate` 3 = -1
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-
-1 `rotate` -3 = 8192
-1 `rotate` -2 = 16384
-1 `rotate` -1 = -32768
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-
-2 `rotate` -3 = 16384
-2 `rotate` -2 = -32768
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-
-3 `rotate` -3 = 24576
-3 `rotate` -2 = -16384
-3 `rotate` -1 = -32767
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -3
--3 `clearBit` 64 = -3
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -2
--2 `clearBit` 64 = -2
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -1
--1 `clearBit` 64 = -1
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -3
--3 `complementBit` 64 = -3
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -2
--2 `complementBit` 64 = -2
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -1
--1 `complementBit` 64 = -1
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = False
--3 `testBit` 64 = False
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = False
--2 `testBit` 64 = False
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = False
--1 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize -3 = 16
-bitSize -2 = 16
-bitSize -1 = 16
-bitSize 0 = 16
-bitSize 1 = 16
-bitSize 2 = 16
-bitSize 3 = 16
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
---------------------------------
---Testing Int32
---------------------------------
-testBounded
-(2147483647,-2147483648,-2147483647)
-(2147483646,2147483647,-2147483648)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 0 = divide by zero
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 0 = divide by zero
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 0 = divide by zero
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 0 = divide by zero
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 0 = divide by zero
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 0 = divide by zero
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 0 = divide by zero
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 0 = divide by zero
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 0 = divide by zero
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 0 = divide by zero
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 0 = divide by zero
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 0 = divide by zero
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 0 = divide by zero
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 0 = divide by zero
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 0 = divide by zero
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 0 = divide by zero
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 0 = divide by zero
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 0 = divide by zero
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [-2147483648,0,2147483647]
-Int : [-2147483648,0,2147483647]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [-2147483648,0,2147483647]
-Int64 : [-2147483648,0,2147483647]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [2147483648,0,2147483647]
-Word64 : [18446744071562067968,0,2147483647]
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 0 = 0
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 0 = 0
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 0 = 0
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 0 = -3
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 0 = -2
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 0 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 0 = -3
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 0 = -2
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 0 = -1
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = 0
--3 `shiftL` 64 = 0
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = 0
--2 `shiftL` 64 = 0
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = 0
--1 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -1073741825
--3 `rotate` -2 = 2147483647
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -5
--3 `rotate` 2 = -9
--3 `rotate` 3 = -17
-
--2 `rotate` -3 = -536870913
--2 `rotate` -2 = -1073741825
--2 `rotate` -1 = 2147483647
--2 `rotate` 0 = -2
--2 `rotate` 1 = -3
--2 `rotate` 2 = -5
--2 `rotate` 3 = -9
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -1
--1 `rotate` 2 = -1
--1 `rotate` 3 = -1
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-
-1 `rotate` -3 = 536870912
-1 `rotate` -2 = 1073741824
-1 `rotate` -1 = -2147483648
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-
-2 `rotate` -3 = 1073741824
-2 `rotate` -2 = -2147483648
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-
-3 `rotate` -3 = 1610612736
-3 `rotate` -2 = -1073741824
-3 `rotate` -1 = -2147483647
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -3
--3 `clearBit` 64 = -3
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -2
--2 `clearBit` 64 = -2
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -1
--1 `clearBit` 64 = -1
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -3
--3 `complementBit` 64 = -3
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -2
--2 `complementBit` 64 = -2
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -1
--1 `complementBit` 64 = -1
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = False
--3 `testBit` 64 = False
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = False
--2 `testBit` 64 = False
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = False
--1 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize -3 = 32
-bitSize -2 = 32
-bitSize -1 = 32
-bitSize 0 = 32
-bitSize 1 = 32
-bitSize 2 = 32
-bitSize 3 = 32
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
---------------------------------
---Testing Int64
---------------------------------
-testBounded
-(9223372036854775807,-9223372036854775808,-9223372036854775807)
-(9223372036854775806,9223372036854775807,-9223372036854775808)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 0 = divide by zero
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 0 = divide by zero
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 0 = divide by zero
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 0 = divide by zero
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 0 = divide by zero
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 0 = divide by zero
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 0 = divide by zero
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 0 = divide by zero
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 0 = divide by zero
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 0 = divide by zero
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 0 = divide by zero
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 0 = divide by zero
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 0 = divide by zero
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 0 = divide by zero
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 0 = divide by zero
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 0 = divide by zero
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 0 = divide by zero
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 0 = divide by zero
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [-9223372036854775808,0,9223372036854775807]
-Int : [-9223372036854775808,0,9223372036854775807]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [0,0,-1]
-Int64 : [-9223372036854775808,0,9223372036854775807]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [0,0,4294967295]
-Word64 : [9223372036854775808,0,9223372036854775807]
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 0 = 0
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 0 = 0
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 0 = 0
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 0 = -3
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 0 = -2
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 0 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 0 = -3
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 0 = -2
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 0 = -1
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = -12884901888
--3 `shiftL` 64 = 0
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = -8589934592
--2 `shiftL` 64 = 0
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = -4294967296
--1 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 4294967296
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 8589934592
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 12884901888
-3 `shiftL` 64 = 0
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -4611686018427387905
--3 `rotate` -2 = 9223372036854775807
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -5
--3 `rotate` 2 = -9
--3 `rotate` 3 = -17
-
--2 `rotate` -3 = -2305843009213693953
--2 `rotate` -2 = -4611686018427387905
--2 `rotate` -1 = 9223372036854775807
--2 `rotate` 0 = -2
--2 `rotate` 1 = -3
--2 `rotate` 2 = -5
--2 `rotate` 3 = -9
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -1
--1 `rotate` 2 = -1
--1 `rotate` 3 = -1
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-
-1 `rotate` -3 = 2305843009213693952
-1 `rotate` -2 = 4611686018427387904
-1 `rotate` -1 = -9223372036854775808
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-
-2 `rotate` -3 = 4611686018427387904
-2 `rotate` -2 = -9223372036854775808
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-
-3 `rotate` -3 = 6917529027641081856
-3 `rotate` -2 = -4611686018427387904
-3 `rotate` -1 = -9223372036854775807
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 4294967296
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 4294967297
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 4294967298
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 4294967299
-3 `setBit` 64 = 3
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -4294967299
--3 `clearBit` 64 = -3
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -4294967298
--2 `clearBit` 64 = -2
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -4294967297
--1 `clearBit` 64 = -1
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -4294967299
--3 `complementBit` 64 = -3
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -4294967298
--2 `complementBit` 64 = -2
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -4294967297
--1 `complementBit` 64 = -1
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 4294967296
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 4294967297
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 4294967298
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 4294967299
-3 `complementBit` 64 = 3
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = True
--3 `testBit` 64 = False
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = True
--2 `testBit` 64 = False
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = True
--1 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize -3 = 64
-bitSize -2 = 64
-bitSize -1 = 64
-bitSize 0 = 64
-bitSize 1 = 64
-bitSize 2 = 64
-bitSize 3 = 64
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
---------------------------------
---Testing Word8
---------------------------------
-testBounded
-(255,0,1)
-(254,255,0)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[253,254,255,0,1,2,3]
-[253,254,255,0,1,2,3]
-testEq
-253 == 253 = True
-253 == 254 = False
-253 == 255 = False
-253 == 0 = False
-253 == 1 = False
-253 == 2 = False
-253 == 3 = False
-
-254 == 253 = False
-254 == 254 = True
-254 == 255 = False
-254 == 0 = False
-254 == 1 = False
-254 == 2 = False
-254 == 3 = False
-
-255 == 253 = False
-255 == 254 = False
-255 == 255 = True
-255 == 0 = False
-255 == 1 = False
-255 == 2 = False
-255 == 3 = False
-
-0 == 253 = False
-0 == 254 = False
-0 == 255 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == 253 = False
-1 == 254 = False
-1 == 255 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == 253 = False
-2 == 254 = False
-2 == 255 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == 253 = False
-3 == 254 = False
-3 == 255 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
-253 /= 253 = False
-253 /= 254 = True
-253 /= 255 = True
-253 /= 0 = True
-253 /= 1 = True
-253 /= 2 = True
-253 /= 3 = True
-
-254 /= 253 = True
-254 /= 254 = False
-254 /= 255 = True
-254 /= 0 = True
-254 /= 1 = True
-254 /= 2 = True
-254 /= 3 = True
-
-255 /= 253 = True
-255 /= 254 = True
-255 /= 255 = False
-255 /= 0 = True
-255 /= 1 = True
-255 /= 2 = True
-255 /= 3 = True
-
-0 /= 253 = True
-0 /= 254 = True
-0 /= 255 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= 253 = True
-1 /= 254 = True
-1 /= 255 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= 253 = True
-2 /= 254 = True
-2 /= 255 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= 253 = True
-3 /= 254 = True
-3 /= 255 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
-253 <= 253 = True
-253 <= 254 = True
-253 <= 255 = True
-253 <= 0 = False
-253 <= 1 = False
-253 <= 2 = False
-253 <= 3 = False
-
-254 <= 253 = False
-254 <= 254 = True
-254 <= 255 = True
-254 <= 0 = False
-254 <= 1 = False
-254 <= 2 = False
-254 <= 3 = False
-
-255 <= 253 = False
-255 <= 254 = False
-255 <= 255 = True
-255 <= 0 = False
-255 <= 1 = False
-255 <= 2 = False
-255 <= 3 = False
-
-0 <= 253 = True
-0 <= 254 = True
-0 <= 255 = True
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= 253 = True
-1 <= 254 = True
-1 <= 255 = True
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= 253 = True
-2 <= 254 = True
-2 <= 255 = True
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= 253 = True
-3 <= 254 = True
-3 <= 255 = True
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
-253 < 253 = False
-253 < 254 = True
-253 < 255 = True
-253 < 0 = False
-253 < 1 = False
-253 < 2 = False
-253 < 3 = False
-
-254 < 253 = False
-254 < 254 = False
-254 < 255 = True
-254 < 0 = False
-254 < 1 = False
-254 < 2 = False
-254 < 3 = False
-
-255 < 253 = False
-255 < 254 = False
-255 < 255 = False
-255 < 0 = False
-255 < 1 = False
-255 < 2 = False
-255 < 3 = False
-
-0 < 253 = True
-0 < 254 = True
-0 < 255 = True
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < 253 = True
-1 < 254 = True
-1 < 255 = True
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < 253 = True
-2 < 254 = True
-2 < 255 = True
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < 253 = True
-3 < 254 = True
-3 < 255 = True
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
-253 > 253 = False
-253 > 254 = False
-253 > 255 = False
-253 > 0 = True
-253 > 1 = True
-253 > 2 = True
-253 > 3 = True
-
-254 > 253 = True
-254 > 254 = False
-254 > 255 = False
-254 > 0 = True
-254 > 1 = True
-254 > 2 = True
-254 > 3 = True
-
-255 > 253 = True
-255 > 254 = True
-255 > 255 = False
-255 > 0 = True
-255 > 1 = True
-255 > 2 = True
-255 > 3 = True
-
-0 > 253 = False
-0 > 254 = False
-0 > 255 = False
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > 253 = False
-1 > 254 = False
-1 > 255 = False
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > 253 = False
-2 > 254 = False
-2 > 255 = False
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > 253 = False
-3 > 254 = False
-3 > 255 = False
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
-253 >= 253 = True
-253 >= 254 = False
-253 >= 255 = False
-253 >= 0 = True
-253 >= 1 = True
-253 >= 2 = True
-253 >= 3 = True
-
-254 >= 253 = True
-254 >= 254 = True
-254 >= 255 = False
-254 >= 0 = True
-254 >= 1 = True
-254 >= 2 = True
-254 >= 3 = True
-
-255 >= 253 = True
-255 >= 254 = True
-255 >= 255 = True
-255 >= 0 = True
-255 >= 1 = True
-255 >= 2 = True
-255 >= 3 = True
-
-0 >= 253 = False
-0 >= 254 = False
-0 >= 255 = False
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= 253 = False
-1 >= 254 = False
-1 >= 255 = False
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= 253 = False
-2 >= 254 = False
-2 >= 255 = False
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= 253 = False
-3 >= 254 = False
-3 >= 255 = False
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
-253 `compare` 253 = EQ
-253 `compare` 254 = LT
-253 `compare` 255 = LT
-253 `compare` 0 = GT
-253 `compare` 1 = GT
-253 `compare` 2 = GT
-253 `compare` 3 = GT
-
-254 `compare` 253 = GT
-254 `compare` 254 = EQ
-254 `compare` 255 = LT
-254 `compare` 0 = GT
-254 `compare` 1 = GT
-254 `compare` 2 = GT
-254 `compare` 3 = GT
-
-255 `compare` 253 = GT
-255 `compare` 254 = GT
-255 `compare` 255 = EQ
-255 `compare` 0 = GT
-255 `compare` 1 = GT
-255 `compare` 2 = GT
-255 `compare` 3 = GT
-
-0 `compare` 253 = LT
-0 `compare` 254 = LT
-0 `compare` 255 = LT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` 253 = LT
-1 `compare` 254 = LT
-1 `compare` 255 = LT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` 253 = LT
-2 `compare` 254 = LT
-2 `compare` 255 = LT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` 253 = LT
-3 `compare` 254 = LT
-3 `compare` 255 = LT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
-253 + 253 = 250
-253 + 254 = 251
-253 + 255 = 252
-253 + 0 = 253
-253 + 1 = 254
-253 + 2 = 255
-253 + 3 = 0
-
-254 + 253 = 251
-254 + 254 = 252
-254 + 255 = 253
-254 + 0 = 254
-254 + 1 = 255
-254 + 2 = 0
-254 + 3 = 1
-
-255 + 253 = 252
-255 + 254 = 253
-255 + 255 = 254
-255 + 0 = 255
-255 + 1 = 0
-255 + 2 = 1
-255 + 3 = 2
-
-0 + 253 = 253
-0 + 254 = 254
-0 + 255 = 255
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + 253 = 254
-1 + 254 = 255
-1 + 255 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + 253 = 255
-2 + 254 = 0
-2 + 255 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + 253 = 0
-3 + 254 = 1
-3 + 255 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
-253 - 253 = 0
-253 - 254 = 255
-253 - 255 = 254
-253 - 0 = 253
-253 - 1 = 252
-253 - 2 = 251
-253 - 3 = 250
-
-254 - 253 = 1
-254 - 254 = 0
-254 - 255 = 255
-254 - 0 = 254
-254 - 1 = 253
-254 - 2 = 252
-254 - 3 = 251
-
-255 - 253 = 2
-255 - 254 = 1
-255 - 255 = 0
-255 - 0 = 255
-255 - 1 = 254
-255 - 2 = 253
-255 - 3 = 252
-
-0 - 253 = 3
-0 - 254 = 2
-0 - 255 = 1
-0 - 0 = 0
-0 - 1 = 255
-0 - 2 = 254
-0 - 3 = 253
-
-1 - 253 = 4
-1 - 254 = 3
-1 - 255 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = 255
-1 - 3 = 254
-
-2 - 253 = 5
-2 - 254 = 4
-2 - 255 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = 255
-
-3 - 253 = 6
-3 - 254 = 5
-3 - 255 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
-253 * 253 = 9
-253 * 254 = 6
-253 * 255 = 3
-253 * 0 = 0
-253 * 1 = 253
-253 * 2 = 250
-253 * 3 = 247
-
-254 * 253 = 6
-254 * 254 = 4
-254 * 255 = 2
-254 * 0 = 0
-254 * 1 = 254
-254 * 2 = 252
-254 * 3 = 250
-
-255 * 253 = 3
-255 * 254 = 2
-255 * 255 = 1
-255 * 0 = 0
-255 * 1 = 255
-255 * 2 = 254
-255 * 3 = 253
-
-0 * 253 = 0
-0 * 254 = 0
-0 * 255 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * 253 = 253
-1 * 254 = 254
-1 * 255 = 255
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * 253 = 250
-2 * 254 = 252
-2 * 255 = 254
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * 253 = 247
-3 * 254 = 250
-3 * 255 = 253
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate 253 = 3
-negate 254 = 2
-negate 255 = 1
-negate 0 = 0
-negate 1 = 255
-negate 2 = 254
-negate 3 = 253
-#
-testReal
-toRational 253 = 253 % 1
-toRational 254 = 254 % 1
-toRational 255 = 255 % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
-253 `divMod` 253 = (1,0)
-253 `divMod` 254 = (0,253)
-253 `divMod` 255 = (0,253)
-253 `divMod` 0 = divide by zero
-253 `divMod` 1 = (253,0)
-253 `divMod` 2 = (126,1)
-253 `divMod` 3 = (84,1)
-
-254 `divMod` 253 = (1,1)
-254 `divMod` 254 = (1,0)
-254 `divMod` 255 = (0,254)
-254 `divMod` 0 = divide by zero
-254 `divMod` 1 = (254,0)
-254 `divMod` 2 = (127,0)
-254 `divMod` 3 = (84,2)
-
-255 `divMod` 253 = (1,2)
-255 `divMod` 254 = (1,1)
-255 `divMod` 255 = (1,0)
-255 `divMod` 0 = divide by zero
-255 `divMod` 1 = (255,0)
-255 `divMod` 2 = (127,1)
-255 `divMod` 3 = (85,0)
-
-0 `divMod` 253 = (0,0)
-0 `divMod` 254 = (0,0)
-0 `divMod` 255 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` 253 = (0,1)
-1 `divMod` 254 = (0,1)
-1 `divMod` 255 = (0,1)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` 253 = (0,2)
-2 `divMod` 254 = (0,2)
-2 `divMod` 255 = (0,2)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` 253 = (0,3)
-3 `divMod` 254 = (0,3)
-3 `divMod` 255 = (0,3)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
-253 `div` 253 = 1
-253 `div` 254 = 0
-253 `div` 255 = 0
-253 `div` 0 = divide by zero
-253 `div` 1 = 253
-253 `div` 2 = 126
-253 `div` 3 = 84
-
-254 `div` 253 = 1
-254 `div` 254 = 1
-254 `div` 255 = 0
-254 `div` 0 = divide by zero
-254 `div` 1 = 254
-254 `div` 2 = 127
-254 `div` 3 = 84
-
-255 `div` 253 = 1
-255 `div` 254 = 1
-255 `div` 255 = 1
-255 `div` 0 = divide by zero
-255 `div` 1 = 255
-255 `div` 2 = 127
-255 `div` 3 = 85
-
-0 `div` 253 = 0
-0 `div` 254 = 0
-0 `div` 255 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` 253 = 0
-1 `div` 254 = 0
-1 `div` 255 = 0
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` 253 = 0
-2 `div` 254 = 0
-2 `div` 255 = 0
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` 253 = 0
-3 `div` 254 = 0
-3 `div` 255 = 0
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
-253 `mod` 253 = 0
-253 `mod` 254 = 253
-253 `mod` 255 = 253
-253 `mod` 0 = divide by zero
-253 `mod` 1 = 0
-253 `mod` 2 = 1
-253 `mod` 3 = 1
-
-254 `mod` 253 = 1
-254 `mod` 254 = 0
-254 `mod` 255 = 254
-254 `mod` 0 = divide by zero
-254 `mod` 1 = 0
-254 `mod` 2 = 0
-254 `mod` 3 = 2
-
-255 `mod` 253 = 2
-255 `mod` 254 = 1
-255 `mod` 255 = 0
-255 `mod` 0 = divide by zero
-255 `mod` 1 = 0
-255 `mod` 2 = 1
-255 `mod` 3 = 0
-
-0 `mod` 253 = 0
-0 `mod` 254 = 0
-0 `mod` 255 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` 253 = 1
-1 `mod` 254 = 1
-1 `mod` 255 = 1
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` 253 = 2
-2 `mod` 254 = 2
-2 `mod` 255 = 2
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` 253 = 3
-3 `mod` 254 = 3
-3 `mod` 255 = 3
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
-253 `quotRem` 253 = (1,0)
-253 `quotRem` 254 = (0,253)
-253 `quotRem` 255 = (0,253)
-253 `quotRem` 0 = divide by zero
-253 `quotRem` 1 = (253,0)
-253 `quotRem` 2 = (126,1)
-253 `quotRem` 3 = (84,1)
-
-254 `quotRem` 253 = (1,1)
-254 `quotRem` 254 = (1,0)
-254 `quotRem` 255 = (0,254)
-254 `quotRem` 0 = divide by zero
-254 `quotRem` 1 = (254,0)
-254 `quotRem` 2 = (127,0)
-254 `quotRem` 3 = (84,2)
-
-255 `quotRem` 253 = (1,2)
-255 `quotRem` 254 = (1,1)
-255 `quotRem` 255 = (1,0)
-255 `quotRem` 0 = divide by zero
-255 `quotRem` 1 = (255,0)
-255 `quotRem` 2 = (127,1)
-255 `quotRem` 3 = (85,0)
-
-0 `quotRem` 253 = (0,0)
-0 `quotRem` 254 = (0,0)
-0 `quotRem` 255 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` 253 = (0,1)
-1 `quotRem` 254 = (0,1)
-1 `quotRem` 255 = (0,1)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` 253 = (0,2)
-2 `quotRem` 254 = (0,2)
-2 `quotRem` 255 = (0,2)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` 253 = (0,3)
-3 `quotRem` 254 = (0,3)
-3 `quotRem` 255 = (0,3)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
-253 `quot` 253 = 1
-253 `quot` 254 = 0
-253 `quot` 255 = 0
-253 `quot` 0 = divide by zero
-253 `quot` 1 = 253
-253 `quot` 2 = 126
-253 `quot` 3 = 84
-
-254 `quot` 253 = 1
-254 `quot` 254 = 1
-254 `quot` 255 = 0
-254 `quot` 0 = divide by zero
-254 `quot` 1 = 254
-254 `quot` 2 = 127
-254 `quot` 3 = 84
-
-255 `quot` 253 = 1
-255 `quot` 254 = 1
-255 `quot` 255 = 1
-255 `quot` 0 = divide by zero
-255 `quot` 1 = 255
-255 `quot` 2 = 127
-255 `quot` 3 = 85
-
-0 `quot` 253 = 0
-0 `quot` 254 = 0
-0 `quot` 255 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` 253 = 0
-1 `quot` 254 = 0
-1 `quot` 255 = 0
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` 253 = 0
-2 `quot` 254 = 0
-2 `quot` 255 = 0
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` 253 = 0
-3 `quot` 254 = 0
-3 `quot` 255 = 0
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
-253 `rem` 253 = 0
-253 `rem` 254 = 253
-253 `rem` 255 = 253
-253 `rem` 0 = divide by zero
-253 `rem` 1 = 0
-253 `rem` 2 = 1
-253 `rem` 3 = 1
-
-254 `rem` 253 = 1
-254 `rem` 254 = 0
-254 `rem` 255 = 254
-254 `rem` 0 = divide by zero
-254 `rem` 1 = 0
-254 `rem` 2 = 0
-254 `rem` 3 = 2
-
-255 `rem` 253 = 2
-255 `rem` 254 = 1
-255 `rem` 255 = 0
-255 `rem` 0 = divide by zero
-255 `rem` 1 = 0
-255 `rem` 2 = 1
-255 `rem` 3 = 0
-
-0 `rem` 253 = 0
-0 `rem` 254 = 0
-0 `rem` 255 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` 253 = 1
-1 `rem` 254 = 1
-1 `rem` 255 = 1
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` 253 = 2
-2 `rem` 254 = 2
-2 `rem` 255 = 2
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` 253 = 3
-3 `rem` 254 = 3
-3 `rem` 255 = 3
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [0,0,255]
-Int : [0,0,255]
-Int8 : [0,0,-1]
-Int16 : [0,0,255]
-Int32 : [0,0,255]
-Int64 : [0,0,255]
-Word8 : [0,0,255]
-Word16 : [0,0,255]
-Word32 : [0,0,255]
-Word64 : [0,0,255]
-testBits
-253 .&. 253 = 253
-253 .&. 254 = 252
-253 .&. 255 = 253
-253 .&. 0 = 0
-253 .&. 1 = 1
-253 .&. 2 = 0
-253 .&. 3 = 1
-
-254 .&. 253 = 252
-254 .&. 254 = 254
-254 .&. 255 = 254
-254 .&. 0 = 0
-254 .&. 1 = 0
-254 .&. 2 = 2
-254 .&. 3 = 2
-
-255 .&. 253 = 253
-255 .&. 254 = 254
-255 .&. 255 = 255
-255 .&. 0 = 0
-255 .&. 1 = 1
-255 .&. 2 = 2
-255 .&. 3 = 3
-
-0 .&. 253 = 0
-0 .&. 254 = 0
-0 .&. 255 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. 253 = 1
-1 .&. 254 = 0
-1 .&. 255 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. 253 = 0
-2 .&. 254 = 2
-2 .&. 255 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. 253 = 1
-3 .&. 254 = 2
-3 .&. 255 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
-253 .|. 253 = 253
-253 .|. 254 = 255
-253 .|. 255 = 255
-253 .|. 0 = 253
-253 .|. 1 = 253
-253 .|. 2 = 255
-253 .|. 3 = 255
-
-254 .|. 253 = 255
-254 .|. 254 = 254
-254 .|. 255 = 255
-254 .|. 0 = 254
-254 .|. 1 = 255
-254 .|. 2 = 254
-254 .|. 3 = 255
-
-255 .|. 253 = 255
-255 .|. 254 = 255
-255 .|. 255 = 255
-255 .|. 0 = 255
-255 .|. 1 = 255
-255 .|. 2 = 255
-255 .|. 3 = 255
-
-0 .|. 253 = 253
-0 .|. 254 = 254
-0 .|. 255 = 255
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. 253 = 253
-1 .|. 254 = 255
-1 .|. 255 = 255
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. 253 = 255
-2 .|. 254 = 254
-2 .|. 255 = 255
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. 253 = 255
-3 .|. 254 = 255
-3 .|. 255 = 255
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
-253 `xor` 253 = 0
-253 `xor` 254 = 3
-253 `xor` 255 = 2
-253 `xor` 0 = 253
-253 `xor` 1 = 252
-253 `xor` 2 = 255
-253 `xor` 3 = 254
-
-254 `xor` 253 = 3
-254 `xor` 254 = 0
-254 `xor` 255 = 1
-254 `xor` 0 = 254
-254 `xor` 1 = 255
-254 `xor` 2 = 252
-254 `xor` 3 = 253
-
-255 `xor` 253 = 2
-255 `xor` 254 = 1
-255 `xor` 255 = 0
-255 `xor` 0 = 255
-255 `xor` 1 = 254
-255 `xor` 2 = 253
-255 `xor` 3 = 252
-
-0 `xor` 253 = 253
-0 `xor` 254 = 254
-0 `xor` 255 = 255
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` 253 = 252
-1 `xor` 254 = 255
-1 `xor` 255 = 254
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` 253 = 255
-2 `xor` 254 = 252
-2 `xor` 255 = 253
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` 253 = 254
-3 `xor` 254 = 253
-3 `xor` 255 = 252
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement 253 = 2
-complement 254 = 1
-complement 255 = 0
-complement 0 = 255
-complement 1 = 254
-complement 2 = 253
-complement 3 = 252
-#
-253 `shiftL` 0 = 253
-253 `shiftL` 1 = 250
-253 `shiftL` 2 = 244
-253 `shiftL` 3 = 232
-253 `shiftL` 32 = 0
-253 `shiftL` 64 = 0
-
-254 `shiftL` 0 = 254
-254 `shiftL` 1 = 252
-254 `shiftL` 2 = 248
-254 `shiftL` 3 = 240
-254 `shiftL` 32 = 0
-254 `shiftL` 64 = 0
-
-255 `shiftL` 0 = 255
-255 `shiftL` 1 = 254
-255 `shiftL` 2 = 252
-255 `shiftL` 3 = 248
-255 `shiftL` 32 = 0
-255 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
-253 `shiftR` 0 = 253
-253 `shiftR` 1 = 126
-253 `shiftR` 2 = 63
-253 `shiftR` 3 = 31
-253 `shiftR` 32 = 0
-253 `shiftR` 64 = 0
-
-254 `shiftR` 0 = 254
-254 `shiftR` 1 = 127
-254 `shiftR` 2 = 63
-254 `shiftR` 3 = 31
-254 `shiftR` 32 = 0
-254 `shiftR` 64 = 0
-
-255 `shiftR` 0 = 255
-255 `shiftR` 1 = 127
-255 `shiftR` 2 = 63
-255 `shiftR` 3 = 31
-255 `shiftR` 32 = 0
-255 `shiftR` 64 = 0
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
-253 `rotate` -3 = 191
-253 `rotate` -2 = 127
-253 `rotate` -1 = 254
-253 `rotate` 0 = 253
-253 `rotate` 1 = 251
-253 `rotate` 2 = 247
-253 `rotate` 3 = 239
-
-254 `rotate` -3 = 223
-254 `rotate` -2 = 191
-254 `rotate` -1 = 127
-254 `rotate` 0 = 254
-254 `rotate` 1 = 253
-254 `rotate` 2 = 251
-254 `rotate` 3 = 247
-
-255 `rotate` -3 = 255
-255 `rotate` -2 = 255
-255 `rotate` -1 = 255
-255 `rotate` 0 = 255
-255 `rotate` 1 = 255
-255 `rotate` 2 = 255
-255 `rotate` 3 = 255
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-
-1 `rotate` -3 = 32
-1 `rotate` -2 = 64
-1 `rotate` -1 = 128
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-
-2 `rotate` -3 = 64
-2 `rotate` -2 = 128
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-
-3 `rotate` -3 = 96
-3 `rotate` -2 = 192
-3 `rotate` -1 = 129
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
-253 `setBit` 0 = 253
-253 `setBit` 1 = 255
-253 `setBit` 2 = 253
-253 `setBit` 3 = 253
-253 `setBit` 32 = 253
-253 `setBit` 64 = 253
-
-254 `setBit` 0 = 255
-254 `setBit` 1 = 254
-254 `setBit` 2 = 254
-254 `setBit` 3 = 254
-254 `setBit` 32 = 254
-254 `setBit` 64 = 254
-
-255 `setBit` 0 = 255
-255 `setBit` 1 = 255
-255 `setBit` 2 = 255
-255 `setBit` 3 = 255
-255 `setBit` 32 = 255
-255 `setBit` 64 = 255
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
-253 `clearBit` 0 = 252
-253 `clearBit` 1 = 253
-253 `clearBit` 2 = 249
-253 `clearBit` 3 = 245
-253 `clearBit` 32 = 253
-253 `clearBit` 64 = 253
-
-254 `clearBit` 0 = 254
-254 `clearBit` 1 = 252
-254 `clearBit` 2 = 250
-254 `clearBit` 3 = 246
-254 `clearBit` 32 = 254
-254 `clearBit` 64 = 254
-
-255 `clearBit` 0 = 254
-255 `clearBit` 1 = 253
-255 `clearBit` 2 = 251
-255 `clearBit` 3 = 247
-255 `clearBit` 32 = 255
-255 `clearBit` 64 = 255
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
-253 `complementBit` 0 = 252
-253 `complementBit` 1 = 255
-253 `complementBit` 2 = 249
-253 `complementBit` 3 = 245
-253 `complementBit` 32 = 253
-253 `complementBit` 64 = 253
-
-254 `complementBit` 0 = 255
-254 `complementBit` 1 = 252
-254 `complementBit` 2 = 250
-254 `complementBit` 3 = 246
-254 `complementBit` 32 = 254
-254 `complementBit` 64 = 254
-
-255 `complementBit` 0 = 254
-255 `complementBit` 1 = 253
-255 `complementBit` 2 = 251
-255 `complementBit` 3 = 247
-255 `complementBit` 32 = 255
-255 `complementBit` 64 = 255
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
-253 `testBit` 0 = True
-253 `testBit` 1 = False
-253 `testBit` 2 = True
-253 `testBit` 3 = True
-253 `testBit` 32 = False
-253 `testBit` 64 = False
-
-254 `testBit` 0 = False
-254 `testBit` 1 = True
-254 `testBit` 2 = True
-254 `testBit` 3 = True
-254 `testBit` 32 = False
-254 `testBit` 64 = False
-
-255 `testBit` 0 = True
-255 `testBit` 1 = True
-255 `testBit` 2 = True
-255 `testBit` 3 = True
-255 `testBit` 32 = False
-255 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize 253 = 8
-bitSize 254 = 8
-bitSize 255 = 8
-bitSize 0 = 8
-bitSize 1 = 8
-bitSize 2 = 8
-bitSize 3 = 8
-#
-isSigned 253 = False
-isSigned 254 = False
-isSigned 255 = False
-isSigned 0 = False
-isSigned 1 = False
-isSigned 2 = False
-isSigned 3 = False
-#
---------------------------------
---Testing Word16
---------------------------------
-testBounded
-(65535,0,1)
-(65534,65535,0)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[65533,65534,65535,0,1,2,3]
-[65533,65534,65535,0,1,2,3]
-testEq
-65533 == 65533 = True
-65533 == 65534 = False
-65533 == 65535 = False
-65533 == 0 = False
-65533 == 1 = False
-65533 == 2 = False
-65533 == 3 = False
-
-65534 == 65533 = False
-65534 == 65534 = True
-65534 == 65535 = False
-65534 == 0 = False
-65534 == 1 = False
-65534 == 2 = False
-65534 == 3 = False
-
-65535 == 65533 = False
-65535 == 65534 = False
-65535 == 65535 = True
-65535 == 0 = False
-65535 == 1 = False
-65535 == 2 = False
-65535 == 3 = False
-
-0 == 65533 = False
-0 == 65534 = False
-0 == 65535 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == 65533 = False
-1 == 65534 = False
-1 == 65535 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == 65533 = False
-2 == 65534 = False
-2 == 65535 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == 65533 = False
-3 == 65534 = False
-3 == 65535 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
-65533 /= 65533 = False
-65533 /= 65534 = True
-65533 /= 65535 = True
-65533 /= 0 = True
-65533 /= 1 = True
-65533 /= 2 = True
-65533 /= 3 = True
-
-65534 /= 65533 = True
-65534 /= 65534 = False
-65534 /= 65535 = True
-65534 /= 0 = True
-65534 /= 1 = True
-65534 /= 2 = True
-65534 /= 3 = True
-
-65535 /= 65533 = True
-65535 /= 65534 = True
-65535 /= 65535 = False
-65535 /= 0 = True
-65535 /= 1 = True
-65535 /= 2 = True
-65535 /= 3 = True
-
-0 /= 65533 = True
-0 /= 65534 = True
-0 /= 65535 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= 65533 = True
-1 /= 65534 = True
-1 /= 65535 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= 65533 = True
-2 /= 65534 = True
-2 /= 65535 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= 65533 = True
-3 /= 65534 = True
-3 /= 65535 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
-65533 <= 65533 = True
-65533 <= 65534 = True
-65533 <= 65535 = True
-65533 <= 0 = False
-65533 <= 1 = False
-65533 <= 2 = False
-65533 <= 3 = False
-
-65534 <= 65533 = False
-65534 <= 65534 = True
-65534 <= 65535 = True
-65534 <= 0 = False
-65534 <= 1 = False
-65534 <= 2 = False
-65534 <= 3 = False
-
-65535 <= 65533 = False
-65535 <= 65534 = False
-65535 <= 65535 = True
-65535 <= 0 = False
-65535 <= 1 = False
-65535 <= 2 = False
-65535 <= 3 = False
-
-0 <= 65533 = True
-0 <= 65534 = True
-0 <= 65535 = True
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= 65533 = True
-1 <= 65534 = True
-1 <= 65535 = True
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= 65533 = True
-2 <= 65534 = True
-2 <= 65535 = True
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= 65533 = True
-3 <= 65534 = True
-3 <= 65535 = True
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
-65533 < 65533 = False
-65533 < 65534 = True
-65533 < 65535 = True
-65533 < 0 = False
-65533 < 1 = False
-65533 < 2 = False
-65533 < 3 = False
-
-65534 < 65533 = False
-65534 < 65534 = False
-65534 < 65535 = True
-65534 < 0 = False
-65534 < 1 = False
-65534 < 2 = False
-65534 < 3 = False
-
-65535 < 65533 = False
-65535 < 65534 = False
-65535 < 65535 = False
-65535 < 0 = False
-65535 < 1 = False
-65535 < 2 = False
-65535 < 3 = False
-
-0 < 65533 = True
-0 < 65534 = True
-0 < 65535 = True
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < 65533 = True
-1 < 65534 = True
-1 < 65535 = True
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < 65533 = True
-2 < 65534 = True
-2 < 65535 = True
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < 65533 = True
-3 < 65534 = True
-3 < 65535 = True
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
-65533 > 65533 = False
-65533 > 65534 = False
-65533 > 65535 = False
-65533 > 0 = True
-65533 > 1 = True
-65533 > 2 = True
-65533 > 3 = True
-
-65534 > 65533 = True
-65534 > 65534 = False
-65534 > 65535 = False
-65534 > 0 = True
-65534 > 1 = True
-65534 > 2 = True
-65534 > 3 = True
-
-65535 > 65533 = True
-65535 > 65534 = True
-65535 > 65535 = False
-65535 > 0 = True
-65535 > 1 = True
-65535 > 2 = True
-65535 > 3 = True
-
-0 > 65533 = False
-0 > 65534 = False
-0 > 65535 = False
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > 65533 = False
-1 > 65534 = False
-1 > 65535 = False
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > 65533 = False
-2 > 65534 = False
-2 > 65535 = False
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > 65533 = False
-3 > 65534 = False
-3 > 65535 = False
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
-65533 >= 65533 = True
-65533 >= 65534 = False
-65533 >= 65535 = False
-65533 >= 0 = True
-65533 >= 1 = True
-65533 >= 2 = True
-65533 >= 3 = True
-
-65534 >= 65533 = True
-65534 >= 65534 = True
-65534 >= 65535 = False
-65534 >= 0 = True
-65534 >= 1 = True
-65534 >= 2 = True
-65534 >= 3 = True
-
-65535 >= 65533 = True
-65535 >= 65534 = True
-65535 >= 65535 = True
-65535 >= 0 = True
-65535 >= 1 = True
-65535 >= 2 = True
-65535 >= 3 = True
-
-0 >= 65533 = False
-0 >= 65534 = False
-0 >= 65535 = False
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= 65533 = False
-1 >= 65534 = False
-1 >= 65535 = False
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= 65533 = False
-2 >= 65534 = False
-2 >= 65535 = False
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= 65533 = False
-3 >= 65534 = False
-3 >= 65535 = False
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
-65533 `compare` 65533 = EQ
-65533 `compare` 65534 = LT
-65533 `compare` 65535 = LT
-65533 `compare` 0 = GT
-65533 `compare` 1 = GT
-65533 `compare` 2 = GT
-65533 `compare` 3 = GT
-
-65534 `compare` 65533 = GT
-65534 `compare` 65534 = EQ
-65534 `compare` 65535 = LT
-65534 `compare` 0 = GT
-65534 `compare` 1 = GT
-65534 `compare` 2 = GT
-65534 `compare` 3 = GT
-
-65535 `compare` 65533 = GT
-65535 `compare` 65534 = GT
-65535 `compare` 65535 = EQ
-65535 `compare` 0 = GT
-65535 `compare` 1 = GT
-65535 `compare` 2 = GT
-65535 `compare` 3 = GT
-
-0 `compare` 65533 = LT
-0 `compare` 65534 = LT
-0 `compare` 65535 = LT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` 65533 = LT
-1 `compare` 65534 = LT
-1 `compare` 65535 = LT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` 65533 = LT
-2 `compare` 65534 = LT
-2 `compare` 65535 = LT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` 65533 = LT
-3 `compare` 65534 = LT
-3 `compare` 65535 = LT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
-65533 + 65533 = 65530
-65533 + 65534 = 65531
-65533 + 65535 = 65532
-65533 + 0 = 65533
-65533 + 1 = 65534
-65533 + 2 = 65535
-65533 + 3 = 0
-
-65534 + 65533 = 65531
-65534 + 65534 = 65532
-65534 + 65535 = 65533
-65534 + 0 = 65534
-65534 + 1 = 65535
-65534 + 2 = 0
-65534 + 3 = 1
-
-65535 + 65533 = 65532
-65535 + 65534 = 65533
-65535 + 65535 = 65534
-65535 + 0 = 65535
-65535 + 1 = 0
-65535 + 2 = 1
-65535 + 3 = 2
-
-0 + 65533 = 65533
-0 + 65534 = 65534
-0 + 65535 = 65535
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + 65533 = 65534
-1 + 65534 = 65535
-1 + 65535 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + 65533 = 65535
-2 + 65534 = 0
-2 + 65535 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + 65533 = 0
-3 + 65534 = 1
-3 + 65535 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
-65533 - 65533 = 0
-65533 - 65534 = 65535
-65533 - 65535 = 65534
-65533 - 0 = 65533
-65533 - 1 = 65532
-65533 - 2 = 65531
-65533 - 3 = 65530
-
-65534 - 65533 = 1
-65534 - 65534 = 0
-65534 - 65535 = 65535
-65534 - 0 = 65534
-65534 - 1 = 65533
-65534 - 2 = 65532
-65534 - 3 = 65531
-
-65535 - 65533 = 2
-65535 - 65534 = 1
-65535 - 65535 = 0
-65535 - 0 = 65535
-65535 - 1 = 65534
-65535 - 2 = 65533
-65535 - 3 = 65532
-
-0 - 65533 = 3
-0 - 65534 = 2
-0 - 65535 = 1
-0 - 0 = 0
-0 - 1 = 65535
-0 - 2 = 65534
-0 - 3 = 65533
-
-1 - 65533 = 4
-1 - 65534 = 3
-1 - 65535 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = 65535
-1 - 3 = 65534
-
-2 - 65533 = 5
-2 - 65534 = 4
-2 - 65535 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = 65535
-
-3 - 65533 = 6
-3 - 65534 = 5
-3 - 65535 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
-65533 * 65533 = 9
-65533 * 65534 = 6
-65533 * 65535 = 3
-65533 * 0 = 0
-65533 * 1 = 65533
-65533 * 2 = 65530
-65533 * 3 = 65527
-
-65534 * 65533 = 6
-65534 * 65534 = 4
-65534 * 65535 = 2
-65534 * 0 = 0
-65534 * 1 = 65534
-65534 * 2 = 65532
-65534 * 3 = 65530
-
-65535 * 65533 = 3
-65535 * 65534 = 2
-65535 * 65535 = 1
-65535 * 0 = 0
-65535 * 1 = 65535
-65535 * 2 = 65534
-65535 * 3 = 65533
-
-0 * 65533 = 0
-0 * 65534 = 0
-0 * 65535 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * 65533 = 65533
-1 * 65534 = 65534
-1 * 65535 = 65535
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * 65533 = 65530
-2 * 65534 = 65532
-2 * 65535 = 65534
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * 65533 = 65527
-3 * 65534 = 65530
-3 * 65535 = 65533
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate 65533 = 3
-negate 65534 = 2
-negate 65535 = 1
-negate 0 = 0
-negate 1 = 65535
-negate 2 = 65534
-negate 3 = 65533
-#
-testReal
-toRational 65533 = 65533 % 1
-toRational 65534 = 65534 % 1
-toRational 65535 = 65535 % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
-65533 `divMod` 65533 = (1,0)
-65533 `divMod` 65534 = (0,65533)
-65533 `divMod` 65535 = (0,65533)
-65533 `divMod` 0 = divide by zero
-65533 `divMod` 1 = (65533,0)
-65533 `divMod` 2 = (32766,1)
-65533 `divMod` 3 = (21844,1)
-
-65534 `divMod` 65533 = (1,1)
-65534 `divMod` 65534 = (1,0)
-65534 `divMod` 65535 = (0,65534)
-65534 `divMod` 0 = divide by zero
-65534 `divMod` 1 = (65534,0)
-65534 `divMod` 2 = (32767,0)
-65534 `divMod` 3 = (21844,2)
-
-65535 `divMod` 65533 = (1,2)
-65535 `divMod` 65534 = (1,1)
-65535 `divMod` 65535 = (1,0)
-65535 `divMod` 0 = divide by zero
-65535 `divMod` 1 = (65535,0)
-65535 `divMod` 2 = (32767,1)
-65535 `divMod` 3 = (21845,0)
-
-0 `divMod` 65533 = (0,0)
-0 `divMod` 65534 = (0,0)
-0 `divMod` 65535 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` 65533 = (0,1)
-1 `divMod` 65534 = (0,1)
-1 `divMod` 65535 = (0,1)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` 65533 = (0,2)
-2 `divMod` 65534 = (0,2)
-2 `divMod` 65535 = (0,2)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` 65533 = (0,3)
-3 `divMod` 65534 = (0,3)
-3 `divMod` 65535 = (0,3)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
-65533 `div` 65533 = 1
-65533 `div` 65534 = 0
-65533 `div` 65535 = 0
-65533 `div` 0 = divide by zero
-65533 `div` 1 = 65533
-65533 `div` 2 = 32766
-65533 `div` 3 = 21844
-
-65534 `div` 65533 = 1
-65534 `div` 65534 = 1
-65534 `div` 65535 = 0
-65534 `div` 0 = divide by zero
-65534 `div` 1 = 65534
-65534 `div` 2 = 32767
-65534 `div` 3 = 21844
-
-65535 `div` 65533 = 1
-65535 `div` 65534 = 1
-65535 `div` 65535 = 1
-65535 `div` 0 = divide by zero
-65535 `div` 1 = 65535
-65535 `div` 2 = 32767
-65535 `div` 3 = 21845
-
-0 `div` 65533 = 0
-0 `div` 65534 = 0
-0 `div` 65535 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` 65533 = 0
-1 `div` 65534 = 0
-1 `div` 65535 = 0
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` 65533 = 0
-2 `div` 65534 = 0
-2 `div` 65535 = 0
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` 65533 = 0
-3 `div` 65534 = 0
-3 `div` 65535 = 0
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
-65533 `mod` 65533 = 0
-65533 `mod` 65534 = 65533
-65533 `mod` 65535 = 65533
-65533 `mod` 0 = divide by zero
-65533 `mod` 1 = 0
-65533 `mod` 2 = 1
-65533 `mod` 3 = 1
-
-65534 `mod` 65533 = 1
-65534 `mod` 65534 = 0
-65534 `mod` 65535 = 65534
-65534 `mod` 0 = divide by zero
-65534 `mod` 1 = 0
-65534 `mod` 2 = 0
-65534 `mod` 3 = 2
-
-65535 `mod` 65533 = 2
-65535 `mod` 65534 = 1
-65535 `mod` 65535 = 0
-65535 `mod` 0 = divide by zero
-65535 `mod` 1 = 0
-65535 `mod` 2 = 1
-65535 `mod` 3 = 0
-
-0 `mod` 65533 = 0
-0 `mod` 65534 = 0
-0 `mod` 65535 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` 65533 = 1
-1 `mod` 65534 = 1
-1 `mod` 65535 = 1
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` 65533 = 2
-2 `mod` 65534 = 2
-2 `mod` 65535 = 2
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` 65533 = 3
-3 `mod` 65534 = 3
-3 `mod` 65535 = 3
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
-65533 `quotRem` 65533 = (1,0)
-65533 `quotRem` 65534 = (0,65533)
-65533 `quotRem` 65535 = (0,65533)
-65533 `quotRem` 0 = divide by zero
-65533 `quotRem` 1 = (65533,0)
-65533 `quotRem` 2 = (32766,1)
-65533 `quotRem` 3 = (21844,1)
-
-65534 `quotRem` 65533 = (1,1)
-65534 `quotRem` 65534 = (1,0)
-65534 `quotRem` 65535 = (0,65534)
-65534 `quotRem` 0 = divide by zero
-65534 `quotRem` 1 = (65534,0)
-65534 `quotRem` 2 = (32767,0)
-65534 `quotRem` 3 = (21844,2)
-
-65535 `quotRem` 65533 = (1,2)
-65535 `quotRem` 65534 = (1,1)
-65535 `quotRem` 65535 = (1,0)
-65535 `quotRem` 0 = divide by zero
-65535 `quotRem` 1 = (65535,0)
-65535 `quotRem` 2 = (32767,1)
-65535 `quotRem` 3 = (21845,0)
-
-0 `quotRem` 65533 = (0,0)
-0 `quotRem` 65534 = (0,0)
-0 `quotRem` 65535 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` 65533 = (0,1)
-1 `quotRem` 65534 = (0,1)
-1 `quotRem` 65535 = (0,1)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` 65533 = (0,2)
-2 `quotRem` 65534 = (0,2)
-2 `quotRem` 65535 = (0,2)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` 65533 = (0,3)
-3 `quotRem` 65534 = (0,3)
-3 `quotRem` 65535 = (0,3)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
-65533 `quot` 65533 = 1
-65533 `quot` 65534 = 0
-65533 `quot` 65535 = 0
-65533 `quot` 0 = divide by zero
-65533 `quot` 1 = 65533
-65533 `quot` 2 = 32766
-65533 `quot` 3 = 21844
-
-65534 `quot` 65533 = 1
-65534 `quot` 65534 = 1
-65534 `quot` 65535 = 0
-65534 `quot` 0 = divide by zero
-65534 `quot` 1 = 65534
-65534 `quot` 2 = 32767
-65534 `quot` 3 = 21844
-
-65535 `quot` 65533 = 1
-65535 `quot` 65534 = 1
-65535 `quot` 65535 = 1
-65535 `quot` 0 = divide by zero
-65535 `quot` 1 = 65535
-65535 `quot` 2 = 32767
-65535 `quot` 3 = 21845
-
-0 `quot` 65533 = 0
-0 `quot` 65534 = 0
-0 `quot` 65535 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` 65533 = 0
-1 `quot` 65534 = 0
-1 `quot` 65535 = 0
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` 65533 = 0
-2 `quot` 65534 = 0
-2 `quot` 65535 = 0
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` 65533 = 0
-3 `quot` 65534 = 0
-3 `quot` 65535 = 0
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
-65533 `rem` 65533 = 0
-65533 `rem` 65534 = 65533
-65533 `rem` 65535 = 65533
-65533 `rem` 0 = divide by zero
-65533 `rem` 1 = 0
-65533 `rem` 2 = 1
-65533 `rem` 3 = 1
-
-65534 `rem` 65533 = 1
-65534 `rem` 65534 = 0
-65534 `rem` 65535 = 65534
-65534 `rem` 0 = divide by zero
-65534 `rem` 1 = 0
-65534 `rem` 2 = 0
-65534 `rem` 3 = 2
-
-65535 `rem` 65533 = 2
-65535 `rem` 65534 = 1
-65535 `rem` 65535 = 0
-65535 `rem` 0 = divide by zero
-65535 `rem` 1 = 0
-65535 `rem` 2 = 1
-65535 `rem` 3 = 0
-
-0 `rem` 65533 = 0
-0 `rem` 65534 = 0
-0 `rem` 65535 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` 65533 = 1
-1 `rem` 65534 = 1
-1 `rem` 65535 = 1
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` 65533 = 2
-2 `rem` 65534 = 2
-2 `rem` 65535 = 2
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` 65533 = 3
-3 `rem` 65534 = 3
-3 `rem` 65535 = 3
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [0,0,65535]
-Int : [0,0,65535]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [0,0,65535]
-Int64 : [0,0,65535]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [0,0,65535]
-Word64 : [0,0,65535]
-testBits
-65533 .&. 65533 = 65533
-65533 .&. 65534 = 65532
-65533 .&. 65535 = 65533
-65533 .&. 0 = 0
-65533 .&. 1 = 1
-65533 .&. 2 = 0
-65533 .&. 3 = 1
-
-65534 .&. 65533 = 65532
-65534 .&. 65534 = 65534
-65534 .&. 65535 = 65534
-65534 .&. 0 = 0
-65534 .&. 1 = 0
-65534 .&. 2 = 2
-65534 .&. 3 = 2
-
-65535 .&. 65533 = 65533
-65535 .&. 65534 = 65534
-65535 .&. 65535 = 65535
-65535 .&. 0 = 0
-65535 .&. 1 = 1
-65535 .&. 2 = 2
-65535 .&. 3 = 3
-
-0 .&. 65533 = 0
-0 .&. 65534 = 0
-0 .&. 65535 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. 65533 = 1
-1 .&. 65534 = 0
-1 .&. 65535 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. 65533 = 0
-2 .&. 65534 = 2
-2 .&. 65535 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. 65533 = 1
-3 .&. 65534 = 2
-3 .&. 65535 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
-65533 .|. 65533 = 65533
-65533 .|. 65534 = 65535
-65533 .|. 65535 = 65535
-65533 .|. 0 = 65533
-65533 .|. 1 = 65533
-65533 .|. 2 = 65535
-65533 .|. 3 = 65535
-
-65534 .|. 65533 = 65535
-65534 .|. 65534 = 65534
-65534 .|. 65535 = 65535
-65534 .|. 0 = 65534
-65534 .|. 1 = 65535
-65534 .|. 2 = 65534
-65534 .|. 3 = 65535
-
-65535 .|. 65533 = 65535
-65535 .|. 65534 = 65535
-65535 .|. 65535 = 65535
-65535 .|. 0 = 65535
-65535 .|. 1 = 65535
-65535 .|. 2 = 65535
-65535 .|. 3 = 65535
-
-0 .|. 65533 = 65533
-0 .|. 65534 = 65534
-0 .|. 65535 = 65535
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. 65533 = 65533
-1 .|. 65534 = 65535
-1 .|. 65535 = 65535
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. 65533 = 65535
-2 .|. 65534 = 65534
-2 .|. 65535 = 65535
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. 65533 = 65535
-3 .|. 65534 = 65535
-3 .|. 65535 = 65535
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
-65533 `xor` 65533 = 0
-65533 `xor` 65534 = 3
-65533 `xor` 65535 = 2
-65533 `xor` 0 = 65533
-65533 `xor` 1 = 65532
-65533 `xor` 2 = 65535
-65533 `xor` 3 = 65534
-
-65534 `xor` 65533 = 3
-65534 `xor` 65534 = 0
-65534 `xor` 65535 = 1
-65534 `xor` 0 = 65534
-65534 `xor` 1 = 65535
-65534 `xor` 2 = 65532
-65534 `xor` 3 = 65533
-
-65535 `xor` 65533 = 2
-65535 `xor` 65534 = 1
-65535 `xor` 65535 = 0
-65535 `xor` 0 = 65535
-65535 `xor` 1 = 65534
-65535 `xor` 2 = 65533
-65535 `xor` 3 = 65532
-
-0 `xor` 65533 = 65533
-0 `xor` 65534 = 65534
-0 `xor` 65535 = 65535
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` 65533 = 65532
-1 `xor` 65534 = 65535
-1 `xor` 65535 = 65534
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` 65533 = 65535
-2 `xor` 65534 = 65532
-2 `xor` 65535 = 65533
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` 65533 = 65534
-3 `xor` 65534 = 65533
-3 `xor` 65535 = 65532
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement 65533 = 2
-complement 65534 = 1
-complement 65535 = 0
-complement 0 = 65535
-complement 1 = 65534
-complement 2 = 65533
-complement 3 = 65532
-#
-65533 `shiftL` 0 = 65533
-65533 `shiftL` 1 = 65530
-65533 `shiftL` 2 = 65524
-65533 `shiftL` 3 = 65512
-65533 `shiftL` 32 = 0
-65533 `shiftL` 64 = 0
-
-65534 `shiftL` 0 = 65534
-65534 `shiftL` 1 = 65532
-65534 `shiftL` 2 = 65528
-65534 `shiftL` 3 = 65520
-65534 `shiftL` 32 = 0
-65534 `shiftL` 64 = 0
-
-65535 `shiftL` 0 = 65535
-65535 `shiftL` 1 = 65534
-65535 `shiftL` 2 = 65532
-65535 `shiftL` 3 = 65528
-65535 `shiftL` 32 = 0
-65535 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
-65533 `shiftR` 0 = 65533
-65533 `shiftR` 1 = 32766
-65533 `shiftR` 2 = 16383
-65533 `shiftR` 3 = 8191
-65533 `shiftR` 32 = 0
-65533 `shiftR` 64 = 0
-
-65534 `shiftR` 0 = 65534
-65534 `shiftR` 1 = 32767
-65534 `shiftR` 2 = 16383
-65534 `shiftR` 3 = 8191
-65534 `shiftR` 32 = 0
-65534 `shiftR` 64 = 0
-
-65535 `shiftR` 0 = 65535
-65535 `shiftR` 1 = 32767
-65535 `shiftR` 2 = 16383
-65535 `shiftR` 3 = 8191
-65535 `shiftR` 32 = 0
-65535 `shiftR` 64 = 0
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
-65533 `rotate` -3 = 49151
-65533 `rotate` -2 = 32767
-65533 `rotate` -1 = 65534
-65533 `rotate` 0 = 65533
-65533 `rotate` 1 = 65531
-65533 `rotate` 2 = 65527
-65533 `rotate` 3 = 65519
-
-65534 `rotate` -3 = 57343
-65534 `rotate` -2 = 49151
-65534 `rotate` -1 = 32767
-65534 `rotate` 0 = 65534
-65534 `rotate` 1 = 65533
-65534 `rotate` 2 = 65531
-65534 `rotate` 3 = 65527
-
-65535 `rotate` -3 = 65535
-65535 `rotate` -2 = 65535
-65535 `rotate` -1 = 65535
-65535 `rotate` 0 = 65535
-65535 `rotate` 1 = 65535
-65535 `rotate` 2 = 65535
-65535 `rotate` 3 = 65535
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-
-1 `rotate` -3 = 8192
-1 `rotate` -2 = 16384
-1 `rotate` -1 = 32768
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-
-2 `rotate` -3 = 16384
-2 `rotate` -2 = 32768
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-
-3 `rotate` -3 = 24576
-3 `rotate` -2 = 49152
-3 `rotate` -1 = 32769
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
-65533 `setBit` 0 = 65533
-65533 `setBit` 1 = 65535
-65533 `setBit` 2 = 65533
-65533 `setBit` 3 = 65533
-65533 `setBit` 32 = 65533
-65533 `setBit` 64 = 65533
-
-65534 `setBit` 0 = 65535
-65534 `setBit` 1 = 65534
-65534 `setBit` 2 = 65534
-65534 `setBit` 3 = 65534
-65534 `setBit` 32 = 65534
-65534 `setBit` 64 = 65534
-
-65535 `setBit` 0 = 65535
-65535 `setBit` 1 = 65535
-65535 `setBit` 2 = 65535
-65535 `setBit` 3 = 65535
-65535 `setBit` 32 = 65535
-65535 `setBit` 64 = 65535
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
-65533 `clearBit` 0 = 65532
-65533 `clearBit` 1 = 65533
-65533 `clearBit` 2 = 65529
-65533 `clearBit` 3 = 65525
-65533 `clearBit` 32 = 65533
-65533 `clearBit` 64 = 65533
-
-65534 `clearBit` 0 = 65534
-65534 `clearBit` 1 = 65532
-65534 `clearBit` 2 = 65530
-65534 `clearBit` 3 = 65526
-65534 `clearBit` 32 = 65534
-65534 `clearBit` 64 = 65534
-
-65535 `clearBit` 0 = 65534
-65535 `clearBit` 1 = 65533
-65535 `clearBit` 2 = 65531
-65535 `clearBit` 3 = 65527
-65535 `clearBit` 32 = 65535
-65535 `clearBit` 64 = 65535
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
-65533 `complementBit` 0 = 65532
-65533 `complementBit` 1 = 65535
-65533 `complementBit` 2 = 65529
-65533 `complementBit` 3 = 65525
-65533 `complementBit` 32 = 65533
-65533 `complementBit` 64 = 65533
-
-65534 `complementBit` 0 = 65535
-65534 `complementBit` 1 = 65532
-65534 `complementBit` 2 = 65530
-65534 `complementBit` 3 = 65526
-65534 `complementBit` 32 = 65534
-65534 `complementBit` 64 = 65534
-
-65535 `complementBit` 0 = 65534
-65535 `complementBit` 1 = 65533
-65535 `complementBit` 2 = 65531
-65535 `complementBit` 3 = 65527
-65535 `complementBit` 32 = 65535
-65535 `complementBit` 64 = 65535
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
-65533 `testBit` 0 = True
-65533 `testBit` 1 = False
-65533 `testBit` 2 = True
-65533 `testBit` 3 = True
-65533 `testBit` 32 = False
-65533 `testBit` 64 = False
-
-65534 `testBit` 0 = False
-65534 `testBit` 1 = True
-65534 `testBit` 2 = True
-65534 `testBit` 3 = True
-65534 `testBit` 32 = False
-65534 `testBit` 64 = False
-
-65535 `testBit` 0 = True
-65535 `testBit` 1 = True
-65535 `testBit` 2 = True
-65535 `testBit` 3 = True
-65535 `testBit` 32 = False
-65535 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize 65533 = 16
-bitSize 65534 = 16
-bitSize 65535 = 16
-bitSize 0 = 16
-bitSize 1 = 16
-bitSize 2 = 16
-bitSize 3 = 16
-#
-isSigned 65533 = False
-isSigned 65534 = False
-isSigned 65535 = False
-isSigned 0 = False
-isSigned 1 = False
-isSigned 2 = False
-isSigned 3 = False
-#
---------------------------------
---Testing Word32
---------------------------------
-testBounded
-(4294967295,0,1)
-(4294967294,4294967295,0)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[4294967293,4294967294,4294967295,0,1,2,3]
-[4294967293,4294967294,4294967295,0,1,2,3]
-testEq
-4294967293 == 4294967293 = True
-4294967293 == 4294967294 = False
-4294967293 == 4294967295 = False
-4294967293 == 0 = False
-4294967293 == 1 = False
-4294967293 == 2 = False
-4294967293 == 3 = False
-
-4294967294 == 4294967293 = False
-4294967294 == 4294967294 = True
-4294967294 == 4294967295 = False
-4294967294 == 0 = False
-4294967294 == 1 = False
-4294967294 == 2 = False
-4294967294 == 3 = False
-
-4294967295 == 4294967293 = False
-4294967295 == 4294967294 = False
-4294967295 == 4294967295 = True
-4294967295 == 0 = False
-4294967295 == 1 = False
-4294967295 == 2 = False
-4294967295 == 3 = False
-
-0 == 4294967293 = False
-0 == 4294967294 = False
-0 == 4294967295 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == 4294967293 = False
-1 == 4294967294 = False
-1 == 4294967295 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == 4294967293 = False
-2 == 4294967294 = False
-2 == 4294967295 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == 4294967293 = False
-3 == 4294967294 = False
-3 == 4294967295 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
-4294967293 /= 4294967293 = False
-4294967293 /= 4294967294 = True
-4294967293 /= 4294967295 = True
-4294967293 /= 0 = True
-4294967293 /= 1 = True
-4294967293 /= 2 = True
-4294967293 /= 3 = True
-
-4294967294 /= 4294967293 = True
-4294967294 /= 4294967294 = False
-4294967294 /= 4294967295 = True
-4294967294 /= 0 = True
-4294967294 /= 1 = True
-4294967294 /= 2 = True
-4294967294 /= 3 = True
-
-4294967295 /= 4294967293 = True
-4294967295 /= 4294967294 = True
-4294967295 /= 4294967295 = False
-4294967295 /= 0 = True
-4294967295 /= 1 = True
-4294967295 /= 2 = True
-4294967295 /= 3 = True
-
-0 /= 4294967293 = True
-0 /= 4294967294 = True
-0 /= 4294967295 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= 4294967293 = True
-1 /= 4294967294 = True
-1 /= 4294967295 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= 4294967293 = True
-2 /= 4294967294 = True
-2 /= 4294967295 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= 4294967293 = True
-3 /= 4294967294 = True
-3 /= 4294967295 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
-4294967293 <= 4294967293 = True
-4294967293 <= 4294967294 = True
-4294967293 <= 4294967295 = True
-4294967293 <= 0 = False
-4294967293 <= 1 = False
-4294967293 <= 2 = False
-4294967293 <= 3 = False
-
-4294967294 <= 4294967293 = False
-4294967294 <= 4294967294 = True
-4294967294 <= 4294967295 = True
-4294967294 <= 0 = False
-4294967294 <= 1 = False
-4294967294 <= 2 = False
-4294967294 <= 3 = False
-
-4294967295 <= 4294967293 = False
-4294967295 <= 4294967294 = False
-4294967295 <= 4294967295 = True
-4294967295 <= 0 = False
-4294967295 <= 1 = False
-4294967295 <= 2 = False
-4294967295 <= 3 = False
-
-0 <= 4294967293 = True
-0 <= 4294967294 = True
-0 <= 4294967295 = True
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= 4294967293 = True
-1 <= 4294967294 = True
-1 <= 4294967295 = True
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= 4294967293 = True
-2 <= 4294967294 = True
-2 <= 4294967295 = True
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= 4294967293 = True
-3 <= 4294967294 = True
-3 <= 4294967295 = True
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
-4294967293 < 4294967293 = False
-4294967293 < 4294967294 = True
-4294967293 < 4294967295 = True
-4294967293 < 0 = False
-4294967293 < 1 = False
-4294967293 < 2 = False
-4294967293 < 3 = False
-
-4294967294 < 4294967293 = False
-4294967294 < 4294967294 = False
-4294967294 < 4294967295 = True
-4294967294 < 0 = False
-4294967294 < 1 = False
-4294967294 < 2 = False
-4294967294 < 3 = False
-
-4294967295 < 4294967293 = False
-4294967295 < 4294967294 = False
-4294967295 < 4294967295 = False
-4294967295 < 0 = False
-4294967295 < 1 = False
-4294967295 < 2 = False
-4294967295 < 3 = False
-
-0 < 4294967293 = True
-0 < 4294967294 = True
-0 < 4294967295 = True
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < 4294967293 = True
-1 < 4294967294 = True
-1 < 4294967295 = True
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < 4294967293 = True
-2 < 4294967294 = True
-2 < 4294967295 = True
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < 4294967293 = True
-3 < 4294967294 = True
-3 < 4294967295 = True
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
-4294967293 > 4294967293 = False
-4294967293 > 4294967294 = False
-4294967293 > 4294967295 = False
-4294967293 > 0 = True
-4294967293 > 1 = True
-4294967293 > 2 = True
-4294967293 > 3 = True
-
-4294967294 > 4294967293 = True
-4294967294 > 4294967294 = False
-4294967294 > 4294967295 = False
-4294967294 > 0 = True
-4294967294 > 1 = True
-4294967294 > 2 = True
-4294967294 > 3 = True
-
-4294967295 > 4294967293 = True
-4294967295 > 4294967294 = True
-4294967295 > 4294967295 = False
-4294967295 > 0 = True
-4294967295 > 1 = True
-4294967295 > 2 = True
-4294967295 > 3 = True
-
-0 > 4294967293 = False
-0 > 4294967294 = False
-0 > 4294967295 = False
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > 4294967293 = False
-1 > 4294967294 = False
-1 > 4294967295 = False
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > 4294967293 = False
-2 > 4294967294 = False
-2 > 4294967295 = False
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > 4294967293 = False
-3 > 4294967294 = False
-3 > 4294967295 = False
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
-4294967293 >= 4294967293 = True
-4294967293 >= 4294967294 = False
-4294967293 >= 4294967295 = False
-4294967293 >= 0 = True
-4294967293 >= 1 = True
-4294967293 >= 2 = True
-4294967293 >= 3 = True
-
-4294967294 >= 4294967293 = True
-4294967294 >= 4294967294 = True
-4294967294 >= 4294967295 = False
-4294967294 >= 0 = True
-4294967294 >= 1 = True
-4294967294 >= 2 = True
-4294967294 >= 3 = True
-
-4294967295 >= 4294967293 = True
-4294967295 >= 4294967294 = True
-4294967295 >= 4294967295 = True
-4294967295 >= 0 = True
-4294967295 >= 1 = True
-4294967295 >= 2 = True
-4294967295 >= 3 = True
-
-0 >= 4294967293 = False
-0 >= 4294967294 = False
-0 >= 4294967295 = False
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= 4294967293 = False
-1 >= 4294967294 = False
-1 >= 4294967295 = False
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= 4294967293 = False
-2 >= 4294967294 = False
-2 >= 4294967295 = False
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= 4294967293 = False
-3 >= 4294967294 = False
-3 >= 4294967295 = False
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
-4294967293 `compare` 4294967293 = EQ
-4294967293 `compare` 4294967294 = LT
-4294967293 `compare` 4294967295 = LT
-4294967293 `compare` 0 = GT
-4294967293 `compare` 1 = GT
-4294967293 `compare` 2 = GT
-4294967293 `compare` 3 = GT
-
-4294967294 `compare` 4294967293 = GT
-4294967294 `compare` 4294967294 = EQ
-4294967294 `compare` 4294967295 = LT
-4294967294 `compare` 0 = GT
-4294967294 `compare` 1 = GT
-4294967294 `compare` 2 = GT
-4294967294 `compare` 3 = GT
-
-4294967295 `compare` 4294967293 = GT
-4294967295 `compare` 4294967294 = GT
-4294967295 `compare` 4294967295 = EQ
-4294967295 `compare` 0 = GT
-4294967295 `compare` 1 = GT
-4294967295 `compare` 2 = GT
-4294967295 `compare` 3 = GT
-
-0 `compare` 4294967293 = LT
-0 `compare` 4294967294 = LT
-0 `compare` 4294967295 = LT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` 4294967293 = LT
-1 `compare` 4294967294 = LT
-1 `compare` 4294967295 = LT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` 4294967293 = LT
-2 `compare` 4294967294 = LT
-2 `compare` 4294967295 = LT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` 4294967293 = LT
-3 `compare` 4294967294 = LT
-3 `compare` 4294967295 = LT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
-4294967293 + 4294967293 = 4294967290
-4294967293 + 4294967294 = 4294967291
-4294967293 + 4294967295 = 4294967292
-4294967293 + 0 = 4294967293
-4294967293 + 1 = 4294967294
-4294967293 + 2 = 4294967295
-4294967293 + 3 = 0
-
-4294967294 + 4294967293 = 4294967291
-4294967294 + 4294967294 = 4294967292
-4294967294 + 4294967295 = 4294967293
-4294967294 + 0 = 4294967294
-4294967294 + 1 = 4294967295
-4294967294 + 2 = 0
-4294967294 + 3 = 1
-
-4294967295 + 4294967293 = 4294967292
-4294967295 + 4294967294 = 4294967293
-4294967295 + 4294967295 = 4294967294
-4294967295 + 0 = 4294967295
-4294967295 + 1 = 0
-4294967295 + 2 = 1
-4294967295 + 3 = 2
-
-0 + 4294967293 = 4294967293
-0 + 4294967294 = 4294967294
-0 + 4294967295 = 4294967295
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + 4294967293 = 4294967294
-1 + 4294967294 = 4294967295
-1 + 4294967295 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + 4294967293 = 4294967295
-2 + 4294967294 = 0
-2 + 4294967295 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + 4294967293 = 0
-3 + 4294967294 = 1
-3 + 4294967295 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
-4294967293 - 4294967293 = 0
-4294967293 - 4294967294 = 4294967295
-4294967293 - 4294967295 = 4294967294
-4294967293 - 0 = 4294967293
-4294967293 - 1 = 4294967292
-4294967293 - 2 = 4294967291
-4294967293 - 3 = 4294967290
-
-4294967294 - 4294967293 = 1
-4294967294 - 4294967294 = 0
-4294967294 - 4294967295 = 4294967295
-4294967294 - 0 = 4294967294
-4294967294 - 1 = 4294967293
-4294967294 - 2 = 4294967292
-4294967294 - 3 = 4294967291
-
-4294967295 - 4294967293 = 2
-4294967295 - 4294967294 = 1
-4294967295 - 4294967295 = 0
-4294967295 - 0 = 4294967295
-4294967295 - 1 = 4294967294
-4294967295 - 2 = 4294967293
-4294967295 - 3 = 4294967292
-
-0 - 4294967293 = 3
-0 - 4294967294 = 2
-0 - 4294967295 = 1
-0 - 0 = 0
-0 - 1 = 4294967295
-0 - 2 = 4294967294
-0 - 3 = 4294967293
-
-1 - 4294967293 = 4
-1 - 4294967294 = 3
-1 - 4294967295 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = 4294967295
-1 - 3 = 4294967294
-
-2 - 4294967293 = 5
-2 - 4294967294 = 4
-2 - 4294967295 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = 4294967295
-
-3 - 4294967293 = 6
-3 - 4294967294 = 5
-3 - 4294967295 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
-4294967293 * 4294967293 = 9
-4294967293 * 4294967294 = 6
-4294967293 * 4294967295 = 3
-4294967293 * 0 = 0
-4294967293 * 1 = 4294967293
-4294967293 * 2 = 4294967290
-4294967293 * 3 = 4294967287
-
-4294967294 * 4294967293 = 6
-4294967294 * 4294967294 = 4
-4294967294 * 4294967295 = 2
-4294967294 * 0 = 0
-4294967294 * 1 = 4294967294
-4294967294 * 2 = 4294967292
-4294967294 * 3 = 4294967290
-
-4294967295 * 4294967293 = 3
-4294967295 * 4294967294 = 2
-4294967295 * 4294967295 = 1
-4294967295 * 0 = 0
-4294967295 * 1 = 4294967295
-4294967295 * 2 = 4294967294
-4294967295 * 3 = 4294967293
-
-0 * 4294967293 = 0
-0 * 4294967294 = 0
-0 * 4294967295 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * 4294967293 = 4294967293
-1 * 4294967294 = 4294967294
-1 * 4294967295 = 4294967295
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * 4294967293 = 4294967290
-2 * 4294967294 = 4294967292
-2 * 4294967295 = 4294967294
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * 4294967293 = 4294967287
-3 * 4294967294 = 4294967290
-3 * 4294967295 = 4294967293
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate 4294967293 = 3
-negate 4294967294 = 2
-negate 4294967295 = 1
-negate 0 = 0
-negate 1 = 4294967295
-negate 2 = 4294967294
-negate 3 = 4294967293
-#
-testReal
-toRational 4294967293 = 4294967293 % 1
-toRational 4294967294 = 4294967294 % 1
-toRational 4294967295 = 4294967295 % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
-4294967293 `divMod` 4294967293 = (1,0)
-4294967293 `divMod` 4294967294 = (0,4294967293)
-4294967293 `divMod` 4294967295 = (0,4294967293)
-4294967293 `divMod` 0 = divide by zero
-4294967293 `divMod` 1 = (4294967293,0)
-4294967293 `divMod` 2 = (2147483646,1)
-4294967293 `divMod` 3 = (1431655764,1)
-
-4294967294 `divMod` 4294967293 = (1,1)
-4294967294 `divMod` 4294967294 = (1,0)
-4294967294 `divMod` 4294967295 = (0,4294967294)
-4294967294 `divMod` 0 = divide by zero
-4294967294 `divMod` 1 = (4294967294,0)
-4294967294 `divMod` 2 = (2147483647,0)
-4294967294 `divMod` 3 = (1431655764,2)
-
-4294967295 `divMod` 4294967293 = (1,2)
-4294967295 `divMod` 4294967294 = (1,1)
-4294967295 `divMod` 4294967295 = (1,0)
-4294967295 `divMod` 0 = divide by zero
-4294967295 `divMod` 1 = (4294967295,0)
-4294967295 `divMod` 2 = (2147483647,1)
-4294967295 `divMod` 3 = (1431655765,0)
-
-0 `divMod` 4294967293 = (0,0)
-0 `divMod` 4294967294 = (0,0)
-0 `divMod` 4294967295 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` 4294967293 = (0,1)
-1 `divMod` 4294967294 = (0,1)
-1 `divMod` 4294967295 = (0,1)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` 4294967293 = (0,2)
-2 `divMod` 4294967294 = (0,2)
-2 `divMod` 4294967295 = (0,2)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` 4294967293 = (0,3)
-3 `divMod` 4294967294 = (0,3)
-3 `divMod` 4294967295 = (0,3)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
-4294967293 `div` 4294967293 = 1
-4294967293 `div` 4294967294 = 0
-4294967293 `div` 4294967295 = 0
-4294967293 `div` 0 = divide by zero
-4294967293 `div` 1 = 4294967293
-4294967293 `div` 2 = 2147483646
-4294967293 `div` 3 = 1431655764
-
-4294967294 `div` 4294967293 = 1
-4294967294 `div` 4294967294 = 1
-4294967294 `div` 4294967295 = 0
-4294967294 `div` 0 = divide by zero
-4294967294 `div` 1 = 4294967294
-4294967294 `div` 2 = 2147483647
-4294967294 `div` 3 = 1431655764
-
-4294967295 `div` 4294967293 = 1
-4294967295 `div` 4294967294 = 1
-4294967295 `div` 4294967295 = 1
-4294967295 `div` 0 = divide by zero
-4294967295 `div` 1 = 4294967295
-4294967295 `div` 2 = 2147483647
-4294967295 `div` 3 = 1431655765
-
-0 `div` 4294967293 = 0
-0 `div` 4294967294 = 0
-0 `div` 4294967295 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` 4294967293 = 0
-1 `div` 4294967294 = 0
-1 `div` 4294967295 = 0
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` 4294967293 = 0
-2 `div` 4294967294 = 0
-2 `div` 4294967295 = 0
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` 4294967293 = 0
-3 `div` 4294967294 = 0
-3 `div` 4294967295 = 0
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
-4294967293 `mod` 4294967293 = 0
-4294967293 `mod` 4294967294 = 4294967293
-4294967293 `mod` 4294967295 = 4294967293
-4294967293 `mod` 0 = divide by zero
-4294967293 `mod` 1 = 0
-4294967293 `mod` 2 = 1
-4294967293 `mod` 3 = 1
-
-4294967294 `mod` 4294967293 = 1
-4294967294 `mod` 4294967294 = 0
-4294967294 `mod` 4294967295 = 4294967294
-4294967294 `mod` 0 = divide by zero
-4294967294 `mod` 1 = 0
-4294967294 `mod` 2 = 0
-4294967294 `mod` 3 = 2
-
-4294967295 `mod` 4294967293 = 2
-4294967295 `mod` 4294967294 = 1
-4294967295 `mod` 4294967295 = 0
-4294967295 `mod` 0 = divide by zero
-4294967295 `mod` 1 = 0
-4294967295 `mod` 2 = 1
-4294967295 `mod` 3 = 0
-
-0 `mod` 4294967293 = 0
-0 `mod` 4294967294 = 0
-0 `mod` 4294967295 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` 4294967293 = 1
-1 `mod` 4294967294 = 1
-1 `mod` 4294967295 = 1
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` 4294967293 = 2
-2 `mod` 4294967294 = 2
-2 `mod` 4294967295 = 2
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` 4294967293 = 3
-3 `mod` 4294967294 = 3
-3 `mod` 4294967295 = 3
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
-4294967293 `quotRem` 4294967293 = (1,0)
-4294967293 `quotRem` 4294967294 = (0,4294967293)
-4294967293 `quotRem` 4294967295 = (0,4294967293)
-4294967293 `quotRem` 0 = divide by zero
-4294967293 `quotRem` 1 = (4294967293,0)
-4294967293 `quotRem` 2 = (2147483646,1)
-4294967293 `quotRem` 3 = (1431655764,1)
-
-4294967294 `quotRem` 4294967293 = (1,1)
-4294967294 `quotRem` 4294967294 = (1,0)
-4294967294 `quotRem` 4294967295 = (0,4294967294)
-4294967294 `quotRem` 0 = divide by zero
-4294967294 `quotRem` 1 = (4294967294,0)
-4294967294 `quotRem` 2 = (2147483647,0)
-4294967294 `quotRem` 3 = (1431655764,2)
-
-4294967295 `quotRem` 4294967293 = (1,2)
-4294967295 `quotRem` 4294967294 = (1,1)
-4294967295 `quotRem` 4294967295 = (1,0)
-4294967295 `quotRem` 0 = divide by zero
-4294967295 `quotRem` 1 = (4294967295,0)
-4294967295 `quotRem` 2 = (2147483647,1)
-4294967295 `quotRem` 3 = (1431655765,0)
-
-0 `quotRem` 4294967293 = (0,0)
-0 `quotRem` 4294967294 = (0,0)
-0 `quotRem` 4294967295 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` 4294967293 = (0,1)
-1 `quotRem` 4294967294 = (0,1)
-1 `quotRem` 4294967295 = (0,1)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` 4294967293 = (0,2)
-2 `quotRem` 4294967294 = (0,2)
-2 `quotRem` 4294967295 = (0,2)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` 4294967293 = (0,3)
-3 `quotRem` 4294967294 = (0,3)
-3 `quotRem` 4294967295 = (0,3)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
-4294967293 `quot` 4294967293 = 1
-4294967293 `quot` 4294967294 = 0
-4294967293 `quot` 4294967295 = 0
-4294967293 `quot` 0 = divide by zero
-4294967293 `quot` 1 = 4294967293
-4294967293 `quot` 2 = 2147483646
-4294967293 `quot` 3 = 1431655764
-
-4294967294 `quot` 4294967293 = 1
-4294967294 `quot` 4294967294 = 1
-4294967294 `quot` 4294967295 = 0
-4294967294 `quot` 0 = divide by zero
-4294967294 `quot` 1 = 4294967294
-4294967294 `quot` 2 = 2147483647
-4294967294 `quot` 3 = 1431655764
-
-4294967295 `quot` 4294967293 = 1
-4294967295 `quot` 4294967294 = 1
-4294967295 `quot` 4294967295 = 1
-4294967295 `quot` 0 = divide by zero
-4294967295 `quot` 1 = 4294967295
-4294967295 `quot` 2 = 2147483647
-4294967295 `quot` 3 = 1431655765
-
-0 `quot` 4294967293 = 0
-0 `quot` 4294967294 = 0
-0 `quot` 4294967295 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` 4294967293 = 0
-1 `quot` 4294967294 = 0
-1 `quot` 4294967295 = 0
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` 4294967293 = 0
-2 `quot` 4294967294 = 0
-2 `quot` 4294967295 = 0
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` 4294967293 = 0
-3 `quot` 4294967294 = 0
-3 `quot` 4294967295 = 0
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
-4294967293 `rem` 4294967293 = 0
-4294967293 `rem` 4294967294 = 4294967293
-4294967293 `rem` 4294967295 = 4294967293
-4294967293 `rem` 0 = divide by zero
-4294967293 `rem` 1 = 0
-4294967293 `rem` 2 = 1
-4294967293 `rem` 3 = 1
-
-4294967294 `rem` 4294967293 = 1
-4294967294 `rem` 4294967294 = 0
-4294967294 `rem` 4294967295 = 4294967294
-4294967294 `rem` 0 = divide by zero
-4294967294 `rem` 1 = 0
-4294967294 `rem` 2 = 0
-4294967294 `rem` 3 = 2
-
-4294967295 `rem` 4294967293 = 2
-4294967295 `rem` 4294967294 = 1
-4294967295 `rem` 4294967295 = 0
-4294967295 `rem` 0 = divide by zero
-4294967295 `rem` 1 = 0
-4294967295 `rem` 2 = 1
-4294967295 `rem` 3 = 0
-
-0 `rem` 4294967293 = 0
-0 `rem` 4294967294 = 0
-0 `rem` 4294967295 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` 4294967293 = 1
-1 `rem` 4294967294 = 1
-1 `rem` 4294967295 = 1
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` 4294967293 = 2
-2 `rem` 4294967294 = 2
-2 `rem` 4294967295 = 2
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` 4294967293 = 3
-3 `rem` 4294967294 = 3
-3 `rem` 4294967295 = 3
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [0,0,4294967295]
-Int : [0,0,4294967295]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [0,0,-1]
-Int64 : [0,0,4294967295]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [0,0,4294967295]
-Word64 : [0,0,4294967295]
-testBits
-4294967293 .&. 4294967293 = 4294967293
-4294967293 .&. 4294967294 = 4294967292
-4294967293 .&. 4294967295 = 4294967293
-4294967293 .&. 0 = 0
-4294967293 .&. 1 = 1
-4294967293 .&. 2 = 0
-4294967293 .&. 3 = 1
-
-4294967294 .&. 4294967293 = 4294967292
-4294967294 .&. 4294967294 = 4294967294
-4294967294 .&. 4294967295 = 4294967294
-4294967294 .&. 0 = 0
-4294967294 .&. 1 = 0
-4294967294 .&. 2 = 2
-4294967294 .&. 3 = 2
-
-4294967295 .&. 4294967293 = 4294967293
-4294967295 .&. 4294967294 = 4294967294
-4294967295 .&. 4294967295 = 4294967295
-4294967295 .&. 0 = 0
-4294967295 .&. 1 = 1
-4294967295 .&. 2 = 2
-4294967295 .&. 3 = 3
-
-0 .&. 4294967293 = 0
-0 .&. 4294967294 = 0
-0 .&. 4294967295 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. 4294967293 = 1
-1 .&. 4294967294 = 0
-1 .&. 4294967295 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. 4294967293 = 0
-2 .&. 4294967294 = 2
-2 .&. 4294967295 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. 4294967293 = 1
-3 .&. 4294967294 = 2
-3 .&. 4294967295 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
-4294967293 .|. 4294967293 = 4294967293
-4294967293 .|. 4294967294 = 4294967295
-4294967293 .|. 4294967295 = 4294967295
-4294967293 .|. 0 = 4294967293
-4294967293 .|. 1 = 4294967293
-4294967293 .|. 2 = 4294967295
-4294967293 .|. 3 = 4294967295
-
-4294967294 .|. 4294967293 = 4294967295
-4294967294 .|. 4294967294 = 4294967294
-4294967294 .|. 4294967295 = 4294967295
-4294967294 .|. 0 = 4294967294
-4294967294 .|. 1 = 4294967295
-4294967294 .|. 2 = 4294967294
-4294967294 .|. 3 = 4294967295
-
-4294967295 .|. 4294967293 = 4294967295
-4294967295 .|. 4294967294 = 4294967295
-4294967295 .|. 4294967295 = 4294967295
-4294967295 .|. 0 = 4294967295
-4294967295 .|. 1 = 4294967295
-4294967295 .|. 2 = 4294967295
-4294967295 .|. 3 = 4294967295
-
-0 .|. 4294967293 = 4294967293
-0 .|. 4294967294 = 4294967294
-0 .|. 4294967295 = 4294967295
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. 4294967293 = 4294967293
-1 .|. 4294967294 = 4294967295
-1 .|. 4294967295 = 4294967295
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. 4294967293 = 4294967295
-2 .|. 4294967294 = 4294967294
-2 .|. 4294967295 = 4294967295
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. 4294967293 = 4294967295
-3 .|. 4294967294 = 4294967295
-3 .|. 4294967295 = 4294967295
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
-4294967293 `xor` 4294967293 = 0
-4294967293 `xor` 4294967294 = 3
-4294967293 `xor` 4294967295 = 2
-4294967293 `xor` 0 = 4294967293
-4294967293 `xor` 1 = 4294967292
-4294967293 `xor` 2 = 4294967295
-4294967293 `xor` 3 = 4294967294
-
-4294967294 `xor` 4294967293 = 3
-4294967294 `xor` 4294967294 = 0
-4294967294 `xor` 4294967295 = 1
-4294967294 `xor` 0 = 4294967294
-4294967294 `xor` 1 = 4294967295
-4294967294 `xor` 2 = 4294967292
-4294967294 `xor` 3 = 4294967293
-
-4294967295 `xor` 4294967293 = 2
-4294967295 `xor` 4294967294 = 1
-4294967295 `xor` 4294967295 = 0
-4294967295 `xor` 0 = 4294967295
-4294967295 `xor` 1 = 4294967294
-4294967295 `xor` 2 = 4294967293
-4294967295 `xor` 3 = 4294967292
-
-0 `xor` 4294967293 = 4294967293
-0 `xor` 4294967294 = 4294967294
-0 `xor` 4294967295 = 4294967295
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` 4294967293 = 4294967292
-1 `xor` 4294967294 = 4294967295
-1 `xor` 4294967295 = 4294967294
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` 4294967293 = 4294967295
-2 `xor` 4294967294 = 4294967292
-2 `xor` 4294967295 = 4294967293
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` 4294967293 = 4294967294
-3 `xor` 4294967294 = 4294967293
-3 `xor` 4294967295 = 4294967292
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement 4294967293 = 2
-complement 4294967294 = 1
-complement 4294967295 = 0
-complement 0 = 4294967295
-complement 1 = 4294967294
-complement 2 = 4294967293
-complement 3 = 4294967292
-#
-4294967293 `shiftL` 0 = 4294967293
-4294967293 `shiftL` 1 = 4294967290
-4294967293 `shiftL` 2 = 4294967284
-4294967293 `shiftL` 3 = 4294967272
-4294967293 `shiftL` 32 = 0
-4294967293 `shiftL` 64 = 0
-
-4294967294 `shiftL` 0 = 4294967294
-4294967294 `shiftL` 1 = 4294967292
-4294967294 `shiftL` 2 = 4294967288
-4294967294 `shiftL` 3 = 4294967280
-4294967294 `shiftL` 32 = 0
-4294967294 `shiftL` 64 = 0
-
-4294967295 `shiftL` 0 = 4294967295
-4294967295 `shiftL` 1 = 4294967294
-4294967295 `shiftL` 2 = 4294967292
-4294967295 `shiftL` 3 = 4294967288
-4294967295 `shiftL` 32 = 0
-4294967295 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
-4294967293 `shiftR` 0 = 4294967293
-4294967293 `shiftR` 1 = 2147483646
-4294967293 `shiftR` 2 = 1073741823
-4294967293 `shiftR` 3 = 536870911
-4294967293 `shiftR` 32 = 0
-4294967293 `shiftR` 64 = 0
-
-4294967294 `shiftR` 0 = 4294967294
-4294967294 `shiftR` 1 = 2147483647
-4294967294 `shiftR` 2 = 1073741823
-4294967294 `shiftR` 3 = 536870911
-4294967294 `shiftR` 32 = 0
-4294967294 `shiftR` 64 = 0
-
-4294967295 `shiftR` 0 = 4294967295
-4294967295 `shiftR` 1 = 2147483647
-4294967295 `shiftR` 2 = 1073741823
-4294967295 `shiftR` 3 = 536870911
-4294967295 `shiftR` 32 = 0
-4294967295 `shiftR` 64 = 0
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
-4294967293 `rotate` -3 = 3221225471
-4294967293 `rotate` -2 = 2147483647
-4294967293 `rotate` -1 = 4294967294
-4294967293 `rotate` 0 = 4294967293
-4294967293 `rotate` 1 = 4294967291
-4294967293 `rotate` 2 = 4294967287
-4294967293 `rotate` 3 = 4294967279
-
-4294967294 `rotate` -3 = 3758096383
-4294967294 `rotate` -2 = 3221225471
-4294967294 `rotate` -1 = 2147483647
-4294967294 `rotate` 0 = 4294967294
-4294967294 `rotate` 1 = 4294967293
-4294967294 `rotate` 2 = 4294967291
-4294967294 `rotate` 3 = 4294967287
-
-4294967295 `rotate` -3 = 4294967295
-4294967295 `rotate` -2 = 4294967295
-4294967295 `rotate` -1 = 4294967295
-4294967295 `rotate` 0 = 4294967295
-4294967295 `rotate` 1 = 4294967295
-4294967295 `rotate` 2 = 4294967295
-4294967295 `rotate` 3 = 4294967295
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-
-1 `rotate` -3 = 536870912
-1 `rotate` -2 = 1073741824
-1 `rotate` -1 = 2147483648
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-
-2 `rotate` -3 = 1073741824
-2 `rotate` -2 = 2147483648
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-
-3 `rotate` -3 = 1610612736
-3 `rotate` -2 = 3221225472
-3 `rotate` -1 = 2147483649
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
-4294967293 `setBit` 0 = 4294967293
-4294967293 `setBit` 1 = 4294967295
-4294967293 `setBit` 2 = 4294967293
-4294967293 `setBit` 3 = 4294967293
-4294967293 `setBit` 32 = 4294967293
-4294967293 `setBit` 64 = 4294967293
-
-4294967294 `setBit` 0 = 4294967295
-4294967294 `setBit` 1 = 4294967294
-4294967294 `setBit` 2 = 4294967294
-4294967294 `setBit` 3 = 4294967294
-4294967294 `setBit` 32 = 4294967294
-4294967294 `setBit` 64 = 4294967294
-
-4294967295 `setBit` 0 = 4294967295
-4294967295 `setBit` 1 = 4294967295
-4294967295 `setBit` 2 = 4294967295
-4294967295 `setBit` 3 = 4294967295
-4294967295 `setBit` 32 = 4294967295
-4294967295 `setBit` 64 = 4294967295
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
-4294967293 `clearBit` 0 = 4294967292
-4294967293 `clearBit` 1 = 4294967293
-4294967293 `clearBit` 2 = 4294967289
-4294967293 `clearBit` 3 = 4294967285
-4294967293 `clearBit` 32 = 4294967293
-4294967293 `clearBit` 64 = 4294967293
-
-4294967294 `clearBit` 0 = 4294967294
-4294967294 `clearBit` 1 = 4294967292
-4294967294 `clearBit` 2 = 4294967290
-4294967294 `clearBit` 3 = 4294967286
-4294967294 `clearBit` 32 = 4294967294
-4294967294 `clearBit` 64 = 4294967294
-
-4294967295 `clearBit` 0 = 4294967294
-4294967295 `clearBit` 1 = 4294967293
-4294967295 `clearBit` 2 = 4294967291
-4294967295 `clearBit` 3 = 4294967287
-4294967295 `clearBit` 32 = 4294967295
-4294967295 `clearBit` 64 = 4294967295
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
-4294967293 `complementBit` 0 = 4294967292
-4294967293 `complementBit` 1 = 4294967295
-4294967293 `complementBit` 2 = 4294967289
-4294967293 `complementBit` 3 = 4294967285
-4294967293 `complementBit` 32 = 4294967293
-4294967293 `complementBit` 64 = 4294967293
-
-4294967294 `complementBit` 0 = 4294967295
-4294967294 `complementBit` 1 = 4294967292
-4294967294 `complementBit` 2 = 4294967290
-4294967294 `complementBit` 3 = 4294967286
-4294967294 `complementBit` 32 = 4294967294
-4294967294 `complementBit` 64 = 4294967294
-
-4294967295 `complementBit` 0 = 4294967294
-4294967295 `complementBit` 1 = 4294967293
-4294967295 `complementBit` 2 = 4294967291
-4294967295 `complementBit` 3 = 4294967287
-4294967295 `complementBit` 32 = 4294967295
-4294967295 `complementBit` 64 = 4294967295
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
-4294967293 `testBit` 0 = True
-4294967293 `testBit` 1 = False
-4294967293 `testBit` 2 = True
-4294967293 `testBit` 3 = True
-4294967293 `testBit` 32 = False
-4294967293 `testBit` 64 = False
-
-4294967294 `testBit` 0 = False
-4294967294 `testBit` 1 = True
-4294967294 `testBit` 2 = True
-4294967294 `testBit` 3 = True
-4294967294 `testBit` 32 = False
-4294967294 `testBit` 64 = False
-
-4294967295 `testBit` 0 = True
-4294967295 `testBit` 1 = True
-4294967295 `testBit` 2 = True
-4294967295 `testBit` 3 = True
-4294967295 `testBit` 32 = False
-4294967295 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize 4294967293 = 32
-bitSize 4294967294 = 32
-bitSize 4294967295 = 32
-bitSize 0 = 32
-bitSize 1 = 32
-bitSize 2 = 32
-bitSize 3 = 32
-#
-isSigned 4294967293 = False
-isSigned 4294967294 = False
-isSigned 4294967295 = False
-isSigned 0 = False
-isSigned 1 = False
-isSigned 2 = False
-isSigned 3 = False
-#
---------------------------------
---Testing Word64
---------------------------------
-testBounded
-(18446744073709551615,0,1)
-(18446744073709551614,18446744073709551615,0)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[18446744073709551613,18446744073709551614,18446744073709551615,0,1,2,3]
-[18446744073709551613,18446744073709551614,18446744073709551615,0,1,2,3]
-testEq
-18446744073709551613 == 18446744073709551613 = True
-18446744073709551613 == 18446744073709551614 = False
-18446744073709551613 == 18446744073709551615 = False
-18446744073709551613 == 0 = False
-18446744073709551613 == 1 = False
-18446744073709551613 == 2 = False
-18446744073709551613 == 3 = False
-
-18446744073709551614 == 18446744073709551613 = False
-18446744073709551614 == 18446744073709551614 = True
-18446744073709551614 == 18446744073709551615 = False
-18446744073709551614 == 0 = False
-18446744073709551614 == 1 = False
-18446744073709551614 == 2 = False
-18446744073709551614 == 3 = False
-
-18446744073709551615 == 18446744073709551613 = False
-18446744073709551615 == 18446744073709551614 = False
-18446744073709551615 == 18446744073709551615 = True
-18446744073709551615 == 0 = False
-18446744073709551615 == 1 = False
-18446744073709551615 == 2 = False
-18446744073709551615 == 3 = False
-
-0 == 18446744073709551613 = False
-0 == 18446744073709551614 = False
-0 == 18446744073709551615 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == 18446744073709551613 = False
-1 == 18446744073709551614 = False
-1 == 18446744073709551615 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == 18446744073709551613 = False
-2 == 18446744073709551614 = False
-2 == 18446744073709551615 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == 18446744073709551613 = False
-3 == 18446744073709551614 = False
-3 == 18446744073709551615 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
-18446744073709551613 /= 18446744073709551613 = False
-18446744073709551613 /= 18446744073709551614 = True
-18446744073709551613 /= 18446744073709551615 = True
-18446744073709551613 /= 0 = True
-18446744073709551613 /= 1 = True
-18446744073709551613 /= 2 = True
-18446744073709551613 /= 3 = True
-
-18446744073709551614 /= 18446744073709551613 = True
-18446744073709551614 /= 18446744073709551614 = False
-18446744073709551614 /= 18446744073709551615 = True
-18446744073709551614 /= 0 = True
-18446744073709551614 /= 1 = True
-18446744073709551614 /= 2 = True
-18446744073709551614 /= 3 = True
-
-18446744073709551615 /= 18446744073709551613 = True
-18446744073709551615 /= 18446744073709551614 = True
-18446744073709551615 /= 18446744073709551615 = False
-18446744073709551615 /= 0 = True
-18446744073709551615 /= 1 = True
-18446744073709551615 /= 2 = True
-18446744073709551615 /= 3 = True
-
-0 /= 18446744073709551613 = True
-0 /= 18446744073709551614 = True
-0 /= 18446744073709551615 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= 18446744073709551613 = True
-1 /= 18446744073709551614 = True
-1 /= 18446744073709551615 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= 18446744073709551613 = True
-2 /= 18446744073709551614 = True
-2 /= 18446744073709551615 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= 18446744073709551613 = True
-3 /= 18446744073709551614 = True
-3 /= 18446744073709551615 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
-18446744073709551613 <= 18446744073709551613 = True
-18446744073709551613 <= 18446744073709551614 = True
-18446744073709551613 <= 18446744073709551615 = True
-18446744073709551613 <= 0 = False
-18446744073709551613 <= 1 = False
-18446744073709551613 <= 2 = False
-18446744073709551613 <= 3 = False
-
-18446744073709551614 <= 18446744073709551613 = False
-18446744073709551614 <= 18446744073709551614 = True
-18446744073709551614 <= 18446744073709551615 = True
-18446744073709551614 <= 0 = False
-18446744073709551614 <= 1 = False
-18446744073709551614 <= 2 = False
-18446744073709551614 <= 3 = False
-
-18446744073709551615 <= 18446744073709551613 = False
-18446744073709551615 <= 18446744073709551614 = False
-18446744073709551615 <= 18446744073709551615 = True
-18446744073709551615 <= 0 = False
-18446744073709551615 <= 1 = False
-18446744073709551615 <= 2 = False
-18446744073709551615 <= 3 = False
-
-0 <= 18446744073709551613 = True
-0 <= 18446744073709551614 = True
-0 <= 18446744073709551615 = True
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= 18446744073709551613 = True
-1 <= 18446744073709551614 = True
-1 <= 18446744073709551615 = True
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= 18446744073709551613 = True
-2 <= 18446744073709551614 = True
-2 <= 18446744073709551615 = True
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= 18446744073709551613 = True
-3 <= 18446744073709551614 = True
-3 <= 18446744073709551615 = True
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
-18446744073709551613 < 18446744073709551613 = False
-18446744073709551613 < 18446744073709551614 = True
-18446744073709551613 < 18446744073709551615 = True
-18446744073709551613 < 0 = False
-18446744073709551613 < 1 = False
-18446744073709551613 < 2 = False
-18446744073709551613 < 3 = False
-
-18446744073709551614 < 18446744073709551613 = False
-18446744073709551614 < 18446744073709551614 = False
-18446744073709551614 < 18446744073709551615 = True
-18446744073709551614 < 0 = False
-18446744073709551614 < 1 = False
-18446744073709551614 < 2 = False
-18446744073709551614 < 3 = False
-
-18446744073709551615 < 18446744073709551613 = False
-18446744073709551615 < 18446744073709551614 = False
-18446744073709551615 < 18446744073709551615 = False
-18446744073709551615 < 0 = False
-18446744073709551615 < 1 = False
-18446744073709551615 < 2 = False
-18446744073709551615 < 3 = False
-
-0 < 18446744073709551613 = True
-0 < 18446744073709551614 = True
-0 < 18446744073709551615 = True
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < 18446744073709551613 = True
-1 < 18446744073709551614 = True
-1 < 18446744073709551615 = True
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < 18446744073709551613 = True
-2 < 18446744073709551614 = True
-2 < 18446744073709551615 = True
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < 18446744073709551613 = True
-3 < 18446744073709551614 = True
-3 < 18446744073709551615 = True
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
-18446744073709551613 > 18446744073709551613 = False
-18446744073709551613 > 18446744073709551614 = False
-18446744073709551613 > 18446744073709551615 = False
-18446744073709551613 > 0 = True
-18446744073709551613 > 1 = True
-18446744073709551613 > 2 = True
-18446744073709551613 > 3 = True
-
-18446744073709551614 > 18446744073709551613 = True
-18446744073709551614 > 18446744073709551614 = False
-18446744073709551614 > 18446744073709551615 = False
-18446744073709551614 > 0 = True
-18446744073709551614 > 1 = True
-18446744073709551614 > 2 = True
-18446744073709551614 > 3 = True
-
-18446744073709551615 > 18446744073709551613 = True
-18446744073709551615 > 18446744073709551614 = True
-18446744073709551615 > 18446744073709551615 = False
-18446744073709551615 > 0 = True
-18446744073709551615 > 1 = True
-18446744073709551615 > 2 = True
-18446744073709551615 > 3 = True
-
-0 > 18446744073709551613 = False
-0 > 18446744073709551614 = False
-0 > 18446744073709551615 = False
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > 18446744073709551613 = False
-1 > 18446744073709551614 = False
-1 > 18446744073709551615 = False
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > 18446744073709551613 = False
-2 > 18446744073709551614 = False
-2 > 18446744073709551615 = False
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > 18446744073709551613 = False
-3 > 18446744073709551614 = False
-3 > 18446744073709551615 = False
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
-18446744073709551613 >= 18446744073709551613 = True
-18446744073709551613 >= 18446744073709551614 = False
-18446744073709551613 >= 18446744073709551615 = False
-18446744073709551613 >= 0 = True
-18446744073709551613 >= 1 = True
-18446744073709551613 >= 2 = True
-18446744073709551613 >= 3 = True
-
-18446744073709551614 >= 18446744073709551613 = True
-18446744073709551614 >= 18446744073709551614 = True
-18446744073709551614 >= 18446744073709551615 = False
-18446744073709551614 >= 0 = True
-18446744073709551614 >= 1 = True
-18446744073709551614 >= 2 = True
-18446744073709551614 >= 3 = True
-
-18446744073709551615 >= 18446744073709551613 = True
-18446744073709551615 >= 18446744073709551614 = True
-18446744073709551615 >= 18446744073709551615 = True
-18446744073709551615 >= 0 = True
-18446744073709551615 >= 1 = True
-18446744073709551615 >= 2 = True
-18446744073709551615 >= 3 = True
-
-0 >= 18446744073709551613 = False
-0 >= 18446744073709551614 = False
-0 >= 18446744073709551615 = False
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= 18446744073709551613 = False
-1 >= 18446744073709551614 = False
-1 >= 18446744073709551615 = False
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= 18446744073709551613 = False
-2 >= 18446744073709551614 = False
-2 >= 18446744073709551615 = False
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= 18446744073709551613 = False
-3 >= 18446744073709551614 = False
-3 >= 18446744073709551615 = False
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
-18446744073709551613 `compare` 18446744073709551613 = EQ
-18446744073709551613 `compare` 18446744073709551614 = LT
-18446744073709551613 `compare` 18446744073709551615 = LT
-18446744073709551613 `compare` 0 = GT
-18446744073709551613 `compare` 1 = GT
-18446744073709551613 `compare` 2 = GT
-18446744073709551613 `compare` 3 = GT
-
-18446744073709551614 `compare` 18446744073709551613 = GT
-18446744073709551614 `compare` 18446744073709551614 = EQ
-18446744073709551614 `compare` 18446744073709551615 = LT
-18446744073709551614 `compare` 0 = GT
-18446744073709551614 `compare` 1 = GT
-18446744073709551614 `compare` 2 = GT
-18446744073709551614 `compare` 3 = GT
-
-18446744073709551615 `compare` 18446744073709551613 = GT
-18446744073709551615 `compare` 18446744073709551614 = GT
-18446744073709551615 `compare` 18446744073709551615 = EQ
-18446744073709551615 `compare` 0 = GT
-18446744073709551615 `compare` 1 = GT
-18446744073709551615 `compare` 2 = GT
-18446744073709551615 `compare` 3 = GT
-
-0 `compare` 18446744073709551613 = LT
-0 `compare` 18446744073709551614 = LT
-0 `compare` 18446744073709551615 = LT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` 18446744073709551613 = LT
-1 `compare` 18446744073709551614 = LT
-1 `compare` 18446744073709551615 = LT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` 18446744073709551613 = LT
-2 `compare` 18446744073709551614 = LT
-2 `compare` 18446744073709551615 = LT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` 18446744073709551613 = LT
-3 `compare` 18446744073709551614 = LT
-3 `compare` 18446744073709551615 = LT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
-18446744073709551613 + 18446744073709551613 = 18446744073709551610
-18446744073709551613 + 18446744073709551614 = 18446744073709551611
-18446744073709551613 + 18446744073709551615 = 18446744073709551612
-18446744073709551613 + 0 = 18446744073709551613
-18446744073709551613 + 1 = 18446744073709551614
-18446744073709551613 + 2 = 18446744073709551615
-18446744073709551613 + 3 = 0
-
-18446744073709551614 + 18446744073709551613 = 18446744073709551611
-18446744073709551614 + 18446744073709551614 = 18446744073709551612
-18446744073709551614 + 18446744073709551615 = 18446744073709551613
-18446744073709551614 + 0 = 18446744073709551614
-18446744073709551614 + 1 = 18446744073709551615
-18446744073709551614 + 2 = 0
-18446744073709551614 + 3 = 1
-
-18446744073709551615 + 18446744073709551613 = 18446744073709551612
-18446744073709551615 + 18446744073709551614 = 18446744073709551613
-18446744073709551615 + 18446744073709551615 = 18446744073709551614
-18446744073709551615 + 0 = 18446744073709551615
-18446744073709551615 + 1 = 0
-18446744073709551615 + 2 = 1
-18446744073709551615 + 3 = 2
-
-0 + 18446744073709551613 = 18446744073709551613
-0 + 18446744073709551614 = 18446744073709551614
-0 + 18446744073709551615 = 18446744073709551615
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + 18446744073709551613 = 18446744073709551614
-1 + 18446744073709551614 = 18446744073709551615
-1 + 18446744073709551615 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + 18446744073709551613 = 18446744073709551615
-2 + 18446744073709551614 = 0
-2 + 18446744073709551615 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + 18446744073709551613 = 0
-3 + 18446744073709551614 = 1
-3 + 18446744073709551615 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
-18446744073709551613 - 18446744073709551613 = 0
-18446744073709551613 - 18446744073709551614 = 18446744073709551615
-18446744073709551613 - 18446744073709551615 = 18446744073709551614
-18446744073709551613 - 0 = 18446744073709551613
-18446744073709551613 - 1 = 18446744073709551612
-18446744073709551613 - 2 = 18446744073709551611
-18446744073709551613 - 3 = 18446744073709551610
-
-18446744073709551614 - 18446744073709551613 = 1
-18446744073709551614 - 18446744073709551614 = 0
-18446744073709551614 - 18446744073709551615 = 18446744073709551615
-18446744073709551614 - 0 = 18446744073709551614
-18446744073709551614 - 1 = 18446744073709551613
-18446744073709551614 - 2 = 18446744073709551612
-18446744073709551614 - 3 = 18446744073709551611
-
-18446744073709551615 - 18446744073709551613 = 2
-18446744073709551615 - 18446744073709551614 = 1
-18446744073709551615 - 18446744073709551615 = 0
-18446744073709551615 - 0 = 18446744073709551615
-18446744073709551615 - 1 = 18446744073709551614
-18446744073709551615 - 2 = 18446744073709551613
-18446744073709551615 - 3 = 18446744073709551612
-
-0 - 18446744073709551613 = 3
-0 - 18446744073709551614 = 2
-0 - 18446744073709551615 = 1
-0 - 0 = 0
-0 - 1 = 18446744073709551615
-0 - 2 = 18446744073709551614
-0 - 3 = 18446744073709551613
-
-1 - 18446744073709551613 = 4
-1 - 18446744073709551614 = 3
-1 - 18446744073709551615 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = 18446744073709551615
-1 - 3 = 18446744073709551614
-
-2 - 18446744073709551613 = 5
-2 - 18446744073709551614 = 4
-2 - 18446744073709551615 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = 18446744073709551615
-
-3 - 18446744073709551613 = 6
-3 - 18446744073709551614 = 5
-3 - 18446744073709551615 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
-18446744073709551613 * 18446744073709551613 = 9
-18446744073709551613 * 18446744073709551614 = 6
-18446744073709551613 * 18446744073709551615 = 3
-18446744073709551613 * 0 = 0
-18446744073709551613 * 1 = 18446744073709551613
-18446744073709551613 * 2 = 18446744073709551610
-18446744073709551613 * 3 = 18446744073709551607
-
-18446744073709551614 * 18446744073709551613 = 6
-18446744073709551614 * 18446744073709551614 = 4
-18446744073709551614 * 18446744073709551615 = 2
-18446744073709551614 * 0 = 0
-18446744073709551614 * 1 = 18446744073709551614
-18446744073709551614 * 2 = 18446744073709551612
-18446744073709551614 * 3 = 18446744073709551610
-
-18446744073709551615 * 18446744073709551613 = 3
-18446744073709551615 * 18446744073709551614 = 2
-18446744073709551615 * 18446744073709551615 = 1
-18446744073709551615 * 0 = 0
-18446744073709551615 * 1 = 18446744073709551615
-18446744073709551615 * 2 = 18446744073709551614
-18446744073709551615 * 3 = 18446744073709551613
-
-0 * 18446744073709551613 = 0
-0 * 18446744073709551614 = 0
-0 * 18446744073709551615 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * 18446744073709551613 = 18446744073709551613
-1 * 18446744073709551614 = 18446744073709551614
-1 * 18446744073709551615 = 18446744073709551615
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * 18446744073709551613 = 18446744073709551610
-2 * 18446744073709551614 = 18446744073709551612
-2 * 18446744073709551615 = 18446744073709551614
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * 18446744073709551613 = 18446744073709551607
-3 * 18446744073709551614 = 18446744073709551610
-3 * 18446744073709551615 = 18446744073709551613
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate 18446744073709551613 = 3
-negate 18446744073709551614 = 2
-negate 18446744073709551615 = 1
-negate 0 = 0
-negate 1 = 18446744073709551615
-negate 2 = 18446744073709551614
-negate 3 = 18446744073709551613
-#
-testReal
-toRational 18446744073709551613 = 18446744073709551613 % 1
-toRational 18446744073709551614 = 18446744073709551614 % 1
-toRational 18446744073709551615 = 18446744073709551615 % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
-18446744073709551613 `divMod` 18446744073709551613 = (1,0)
-18446744073709551613 `divMod` 18446744073709551614 = (0,18446744073709551613)
-18446744073709551613 `divMod` 18446744073709551615 = (0,18446744073709551613)
-18446744073709551613 `divMod` 0 = divide by zero
-18446744073709551613 `divMod` 1 = (18446744073709551613,0)
-18446744073709551613 `divMod` 2 = (9223372036854775806,1)
-18446744073709551613 `divMod` 3 = (6148914691236517204,1)
-
-18446744073709551614 `divMod` 18446744073709551613 = (1,1)
-18446744073709551614 `divMod` 18446744073709551614 = (1,0)
-18446744073709551614 `divMod` 18446744073709551615 = (0,18446744073709551614)
-18446744073709551614 `divMod` 0 = divide by zero
-18446744073709551614 `divMod` 1 = (18446744073709551614,0)
-18446744073709551614 `divMod` 2 = (9223372036854775807,0)
-18446744073709551614 `divMod` 3 = (6148914691236517204,2)
-
-18446744073709551615 `divMod` 18446744073709551613 = (1,2)
-18446744073709551615 `divMod` 18446744073709551614 = (1,1)
-18446744073709551615 `divMod` 18446744073709551615 = (1,0)
-18446744073709551615 `divMod` 0 = divide by zero
-18446744073709551615 `divMod` 1 = (18446744073709551615,0)
-18446744073709551615 `divMod` 2 = (9223372036854775807,1)
-18446744073709551615 `divMod` 3 = (6148914691236517205,0)
-
-0 `divMod` 18446744073709551613 = (0,0)
-0 `divMod` 18446744073709551614 = (0,0)
-0 `divMod` 18446744073709551615 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` 18446744073709551613 = (0,1)
-1 `divMod` 18446744073709551614 = (0,1)
-1 `divMod` 18446744073709551615 = (0,1)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` 18446744073709551613 = (0,2)
-2 `divMod` 18446744073709551614 = (0,2)
-2 `divMod` 18446744073709551615 = (0,2)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` 18446744073709551613 = (0,3)
-3 `divMod` 18446744073709551614 = (0,3)
-3 `divMod` 18446744073709551615 = (0,3)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
-18446744073709551613 `div` 18446744073709551613 = 1
-18446744073709551613 `div` 18446744073709551614 = 0
-18446744073709551613 `div` 18446744073709551615 = 0
-18446744073709551613 `div` 0 = divide by zero
-18446744073709551613 `div` 1 = 18446744073709551613
-18446744073709551613 `div` 2 = 9223372036854775806
-18446744073709551613 `div` 3 = 6148914691236517204
-
-18446744073709551614 `div` 18446744073709551613 = 1
-18446744073709551614 `div` 18446744073709551614 = 1
-18446744073709551614 `div` 18446744073709551615 = 0
-18446744073709551614 `div` 0 = divide by zero
-18446744073709551614 `div` 1 = 18446744073709551614
-18446744073709551614 `div` 2 = 9223372036854775807
-18446744073709551614 `div` 3 = 6148914691236517204
-
-18446744073709551615 `div` 18446744073709551613 = 1
-18446744073709551615 `div` 18446744073709551614 = 1
-18446744073709551615 `div` 18446744073709551615 = 1
-18446744073709551615 `div` 0 = divide by zero
-18446744073709551615 `div` 1 = 18446744073709551615
-18446744073709551615 `div` 2 = 9223372036854775807
-18446744073709551615 `div` 3 = 6148914691236517205
-
-0 `div` 18446744073709551613 = 0
-0 `div` 18446744073709551614 = 0
-0 `div` 18446744073709551615 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` 18446744073709551613 = 0
-1 `div` 18446744073709551614 = 0
-1 `div` 18446744073709551615 = 0
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` 18446744073709551613 = 0
-2 `div` 18446744073709551614 = 0
-2 `div` 18446744073709551615 = 0
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` 18446744073709551613 = 0
-3 `div` 18446744073709551614 = 0
-3 `div` 18446744073709551615 = 0
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
-18446744073709551613 `mod` 18446744073709551613 = 0
-18446744073709551613 `mod` 18446744073709551614 = 18446744073709551613
-18446744073709551613 `mod` 18446744073709551615 = 18446744073709551613
-18446744073709551613 `mod` 0 = divide by zero
-18446744073709551613 `mod` 1 = 0
-18446744073709551613 `mod` 2 = 1
-18446744073709551613 `mod` 3 = 1
-
-18446744073709551614 `mod` 18446744073709551613 = 1
-18446744073709551614 `mod` 18446744073709551614 = 0
-18446744073709551614 `mod` 18446744073709551615 = 18446744073709551614
-18446744073709551614 `mod` 0 = divide by zero
-18446744073709551614 `mod` 1 = 0
-18446744073709551614 `mod` 2 = 0
-18446744073709551614 `mod` 3 = 2
-
-18446744073709551615 `mod` 18446744073709551613 = 2
-18446744073709551615 `mod` 18446744073709551614 = 1
-18446744073709551615 `mod` 18446744073709551615 = 0
-18446744073709551615 `mod` 0 = divide by zero
-18446744073709551615 `mod` 1 = 0
-18446744073709551615 `mod` 2 = 1
-18446744073709551615 `mod` 3 = 0
-
-0 `mod` 18446744073709551613 = 0
-0 `mod` 18446744073709551614 = 0
-0 `mod` 18446744073709551615 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` 18446744073709551613 = 1
-1 `mod` 18446744073709551614 = 1
-1 `mod` 18446744073709551615 = 1
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` 18446744073709551613 = 2
-2 `mod` 18446744073709551614 = 2
-2 `mod` 18446744073709551615 = 2
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` 18446744073709551613 = 3
-3 `mod` 18446744073709551614 = 3
-3 `mod` 18446744073709551615 = 3
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
-18446744073709551613 `quotRem` 18446744073709551613 = (1,0)
-18446744073709551613 `quotRem` 18446744073709551614 = (0,18446744073709551613)
-18446744073709551613 `quotRem` 18446744073709551615 = (0,18446744073709551613)
-18446744073709551613 `quotRem` 0 = divide by zero
-18446744073709551613 `quotRem` 1 = (18446744073709551613,0)
-18446744073709551613 `quotRem` 2 = (9223372036854775806,1)
-18446744073709551613 `quotRem` 3 = (6148914691236517204,1)
-
-18446744073709551614 `quotRem` 18446744073709551613 = (1,1)
-18446744073709551614 `quotRem` 18446744073709551614 = (1,0)
-18446744073709551614 `quotRem` 18446744073709551615 = (0,18446744073709551614)
-18446744073709551614 `quotRem` 0 = divide by zero
-18446744073709551614 `quotRem` 1 = (18446744073709551614,0)
-18446744073709551614 `quotRem` 2 = (9223372036854775807,0)
-18446744073709551614 `quotRem` 3 = (6148914691236517204,2)
-
-18446744073709551615 `quotRem` 18446744073709551613 = (1,2)
-18446744073709551615 `quotRem` 18446744073709551614 = (1,1)
-18446744073709551615 `quotRem` 18446744073709551615 = (1,0)
-18446744073709551615 `quotRem` 0 = divide by zero
-18446744073709551615 `quotRem` 1 = (18446744073709551615,0)
-18446744073709551615 `quotRem` 2 = (9223372036854775807,1)
-18446744073709551615 `quotRem` 3 = (6148914691236517205,0)
-
-0 `quotRem` 18446744073709551613 = (0,0)
-0 `quotRem` 18446744073709551614 = (0,0)
-0 `quotRem` 18446744073709551615 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` 18446744073709551613 = (0,1)
-1 `quotRem` 18446744073709551614 = (0,1)
-1 `quotRem` 18446744073709551615 = (0,1)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` 18446744073709551613 = (0,2)
-2 `quotRem` 18446744073709551614 = (0,2)
-2 `quotRem` 18446744073709551615 = (0,2)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` 18446744073709551613 = (0,3)
-3 `quotRem` 18446744073709551614 = (0,3)
-3 `quotRem` 18446744073709551615 = (0,3)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
-18446744073709551613 `quot` 18446744073709551613 = 1
-18446744073709551613 `quot` 18446744073709551614 = 0
-18446744073709551613 `quot` 18446744073709551615 = 0
-18446744073709551613 `quot` 0 = divide by zero
-18446744073709551613 `quot` 1 = 18446744073709551613
-18446744073709551613 `quot` 2 = 9223372036854775806
-18446744073709551613 `quot` 3 = 6148914691236517204
-
-18446744073709551614 `quot` 18446744073709551613 = 1
-18446744073709551614 `quot` 18446744073709551614 = 1
-18446744073709551614 `quot` 18446744073709551615 = 0
-18446744073709551614 `quot` 0 = divide by zero
-18446744073709551614 `quot` 1 = 18446744073709551614
-18446744073709551614 `quot` 2 = 9223372036854775807
-18446744073709551614 `quot` 3 = 6148914691236517204
-
-18446744073709551615 `quot` 18446744073709551613 = 1
-18446744073709551615 `quot` 18446744073709551614 = 1
-18446744073709551615 `quot` 18446744073709551615 = 1
-18446744073709551615 `quot` 0 = divide by zero
-18446744073709551615 `quot` 1 = 18446744073709551615
-18446744073709551615 `quot` 2 = 9223372036854775807
-18446744073709551615 `quot` 3 = 6148914691236517205
-
-0 `quot` 18446744073709551613 = 0
-0 `quot` 18446744073709551614 = 0
-0 `quot` 18446744073709551615 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` 18446744073709551613 = 0
-1 `quot` 18446744073709551614 = 0
-1 `quot` 18446744073709551615 = 0
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` 18446744073709551613 = 0
-2 `quot` 18446744073709551614 = 0
-2 `quot` 18446744073709551615 = 0
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` 18446744073709551613 = 0
-3 `quot` 18446744073709551614 = 0
-3 `quot` 18446744073709551615 = 0
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
-18446744073709551613 `rem` 18446744073709551613 = 0
-18446744073709551613 `rem` 18446744073709551614 = 18446744073709551613
-18446744073709551613 `rem` 18446744073709551615 = 18446744073709551613
-18446744073709551613 `rem` 0 = divide by zero
-18446744073709551613 `rem` 1 = 0
-18446744073709551613 `rem` 2 = 1
-18446744073709551613 `rem` 3 = 1
-
-18446744073709551614 `rem` 18446744073709551613 = 1
-18446744073709551614 `rem` 18446744073709551614 = 0
-18446744073709551614 `rem` 18446744073709551615 = 18446744073709551614
-18446744073709551614 `rem` 0 = divide by zero
-18446744073709551614 `rem` 1 = 0
-18446744073709551614 `rem` 2 = 0
-18446744073709551614 `rem` 3 = 2
-
-18446744073709551615 `rem` 18446744073709551613 = 2
-18446744073709551615 `rem` 18446744073709551614 = 1
-18446744073709551615 `rem` 18446744073709551615 = 0
-18446744073709551615 `rem` 0 = divide by zero
-18446744073709551615 `rem` 1 = 0
-18446744073709551615 `rem` 2 = 1
-18446744073709551615 `rem` 3 = 0
-
-0 `rem` 18446744073709551613 = 0
-0 `rem` 18446744073709551614 = 0
-0 `rem` 18446744073709551615 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` 18446744073709551613 = 1
-1 `rem` 18446744073709551614 = 1
-1 `rem` 18446744073709551615 = 1
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` 18446744073709551613 = 2
-2 `rem` 18446744073709551614 = 2
-2 `rem` 18446744073709551615 = 2
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` 18446744073709551613 = 3
-3 `rem` 18446744073709551614 = 3
-3 `rem` 18446744073709551615 = 3
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [0,0,18446744073709551615]
-Int : [0,0,-1]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [0,0,-1]
-Int64 : [0,0,-1]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [0,0,4294967295]
-Word64 : [0,0,18446744073709551615]
-testBits
-18446744073709551613 .&. 18446744073709551613 = 18446744073709551613
-18446744073709551613 .&. 18446744073709551614 = 18446744073709551612
-18446744073709551613 .&. 18446744073709551615 = 18446744073709551613
-18446744073709551613 .&. 0 = 0
-18446744073709551613 .&. 1 = 1
-18446744073709551613 .&. 2 = 0
-18446744073709551613 .&. 3 = 1
-
-18446744073709551614 .&. 18446744073709551613 = 18446744073709551612
-18446744073709551614 .&. 18446744073709551614 = 18446744073709551614
-18446744073709551614 .&. 18446744073709551615 = 18446744073709551614
-18446744073709551614 .&. 0 = 0
-18446744073709551614 .&. 1 = 0
-18446744073709551614 .&. 2 = 2
-18446744073709551614 .&. 3 = 2
-
-18446744073709551615 .&. 18446744073709551613 = 18446744073709551613
-18446744073709551615 .&. 18446744073709551614 = 18446744073709551614
-18446744073709551615 .&. 18446744073709551615 = 18446744073709551615
-18446744073709551615 .&. 0 = 0
-18446744073709551615 .&. 1 = 1
-18446744073709551615 .&. 2 = 2
-18446744073709551615 .&. 3 = 3
-
-0 .&. 18446744073709551613 = 0
-0 .&. 18446744073709551614 = 0
-0 .&. 18446744073709551615 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. 18446744073709551613 = 1
-1 .&. 18446744073709551614 = 0
-1 .&. 18446744073709551615 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. 18446744073709551613 = 0
-2 .&. 18446744073709551614 = 2
-2 .&. 18446744073709551615 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. 18446744073709551613 = 1
-3 .&. 18446744073709551614 = 2
-3 .&. 18446744073709551615 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
-18446744073709551613 .|. 18446744073709551613 = 18446744073709551613
-18446744073709551613 .|. 18446744073709551614 = 18446744073709551615
-18446744073709551613 .|. 18446744073709551615 = 18446744073709551615
-18446744073709551613 .|. 0 = 18446744073709551613
-18446744073709551613 .|. 1 = 18446744073709551613
-18446744073709551613 .|. 2 = 18446744073709551615
-18446744073709551613 .|. 3 = 18446744073709551615
-
-18446744073709551614 .|. 18446744073709551613 = 18446744073709551615
-18446744073709551614 .|. 18446744073709551614 = 18446744073709551614
-18446744073709551614 .|. 18446744073709551615 = 18446744073709551615
-18446744073709551614 .|. 0 = 18446744073709551614
-18446744073709551614 .|. 1 = 18446744073709551615
-18446744073709551614 .|. 2 = 18446744073709551614
-18446744073709551614 .|. 3 = 18446744073709551615
-
-18446744073709551615 .|. 18446744073709551613 = 18446744073709551615
-18446744073709551615 .|. 18446744073709551614 = 18446744073709551615
-18446744073709551615 .|. 18446744073709551615 = 18446744073709551615
-18446744073709551615 .|. 0 = 18446744073709551615
-18446744073709551615 .|. 1 = 18446744073709551615
-18446744073709551615 .|. 2 = 18446744073709551615
-18446744073709551615 .|. 3 = 18446744073709551615
-
-0 .|. 18446744073709551613 = 18446744073709551613
-0 .|. 18446744073709551614 = 18446744073709551614
-0 .|. 18446744073709551615 = 18446744073709551615
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. 18446744073709551613 = 18446744073709551613
-1 .|. 18446744073709551614 = 18446744073709551615
-1 .|. 18446744073709551615 = 18446744073709551615
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. 18446744073709551613 = 18446744073709551615
-2 .|. 18446744073709551614 = 18446744073709551614
-2 .|. 18446744073709551615 = 18446744073709551615
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. 18446744073709551613 = 18446744073709551615
-3 .|. 18446744073709551614 = 18446744073709551615
-3 .|. 18446744073709551615 = 18446744073709551615
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
-18446744073709551613 `xor` 18446744073709551613 = 0
-18446744073709551613 `xor` 18446744073709551614 = 3
-18446744073709551613 `xor` 18446744073709551615 = 2
-18446744073709551613 `xor` 0 = 18446744073709551613
-18446744073709551613 `xor` 1 = 18446744073709551612
-18446744073709551613 `xor` 2 = 18446744073709551615
-18446744073709551613 `xor` 3 = 18446744073709551614
-
-18446744073709551614 `xor` 18446744073709551613 = 3
-18446744073709551614 `xor` 18446744073709551614 = 0
-18446744073709551614 `xor` 18446744073709551615 = 1
-18446744073709551614 `xor` 0 = 18446744073709551614
-18446744073709551614 `xor` 1 = 18446744073709551615
-18446744073709551614 `xor` 2 = 18446744073709551612
-18446744073709551614 `xor` 3 = 18446744073709551613
-
-18446744073709551615 `xor` 18446744073709551613 = 2
-18446744073709551615 `xor` 18446744073709551614 = 1
-18446744073709551615 `xor` 18446744073709551615 = 0
-18446744073709551615 `xor` 0 = 18446744073709551615
-18446744073709551615 `xor` 1 = 18446744073709551614
-18446744073709551615 `xor` 2 = 18446744073709551613
-18446744073709551615 `xor` 3 = 18446744073709551612
-
-0 `xor` 18446744073709551613 = 18446744073709551613
-0 `xor` 18446744073709551614 = 18446744073709551614
-0 `xor` 18446744073709551615 = 18446744073709551615
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` 18446744073709551613 = 18446744073709551612
-1 `xor` 18446744073709551614 = 18446744073709551615
-1 `xor` 18446744073709551615 = 18446744073709551614
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` 18446744073709551613 = 18446744073709551615
-2 `xor` 18446744073709551614 = 18446744073709551612
-2 `xor` 18446744073709551615 = 18446744073709551613
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` 18446744073709551613 = 18446744073709551614
-3 `xor` 18446744073709551614 = 18446744073709551613
-3 `xor` 18446744073709551615 = 18446744073709551612
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement 18446744073709551613 = 2
-complement 18446744073709551614 = 1
-complement 18446744073709551615 = 0
-complement 0 = 18446744073709551615
-complement 1 = 18446744073709551614
-complement 2 = 18446744073709551613
-complement 3 = 18446744073709551612
-#
-18446744073709551613 `shiftL` 0 = 18446744073709551613
-18446744073709551613 `shiftL` 1 = 18446744073709551610
-18446744073709551613 `shiftL` 2 = 18446744073709551604
-18446744073709551613 `shiftL` 3 = 18446744073709551592
-18446744073709551613 `shiftL` 32 = 18446744060824649728
-18446744073709551613 `shiftL` 64 = 0
-
-18446744073709551614 `shiftL` 0 = 18446744073709551614
-18446744073709551614 `shiftL` 1 = 18446744073709551612
-18446744073709551614 `shiftL` 2 = 18446744073709551608
-18446744073709551614 `shiftL` 3 = 18446744073709551600
-18446744073709551614 `shiftL` 32 = 18446744065119617024
-18446744073709551614 `shiftL` 64 = 0
-
-18446744073709551615 `shiftL` 0 = 18446744073709551615
-18446744073709551615 `shiftL` 1 = 18446744073709551614
-18446744073709551615 `shiftL` 2 = 18446744073709551612
-18446744073709551615 `shiftL` 3 = 18446744073709551608
-18446744073709551615 `shiftL` 32 = 18446744069414584320
-18446744073709551615 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 4294967296
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 8589934592
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 12884901888
-3 `shiftL` 64 = 0
-
-#
-18446744073709551613 `shiftR` 0 = 18446744073709551613
-18446744073709551613 `shiftR` 1 = 9223372036854775806
-18446744073709551613 `shiftR` 2 = 4611686018427387903
-18446744073709551613 `shiftR` 3 = 2305843009213693951
-18446744073709551613 `shiftR` 32 = 4294967295
-18446744073709551613 `shiftR` 64 = 0
-
-18446744073709551614 `shiftR` 0 = 18446744073709551614
-18446744073709551614 `shiftR` 1 = 9223372036854775807
-18446744073709551614 `shiftR` 2 = 4611686018427387903
-18446744073709551614 `shiftR` 3 = 2305843009213693951
-18446744073709551614 `shiftR` 32 = 4294967295
-18446744073709551614 `shiftR` 64 = 0
-
-18446744073709551615 `shiftR` 0 = 18446744073709551615
-18446744073709551615 `shiftR` 1 = 9223372036854775807
-18446744073709551615 `shiftR` 2 = 4611686018427387903
-18446744073709551615 `shiftR` 3 = 2305843009213693951
-18446744073709551615 `shiftR` 32 = 4294967295
-18446744073709551615 `shiftR` 64 = 0
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
-18446744073709551613 `rotate` -3 = 13835058055282163711
-18446744073709551613 `rotate` -2 = 9223372036854775807
-18446744073709551613 `rotate` -1 = 18446744073709551614
-18446744073709551613 `rotate` 0 = 18446744073709551613
-18446744073709551613 `rotate` 1 = 18446744073709551611
-18446744073709551613 `rotate` 2 = 18446744073709551607
-18446744073709551613 `rotate` 3 = 18446744073709551599
-
-18446744073709551614 `rotate` -3 = 16140901064495857663
-18446744073709551614 `rotate` -2 = 13835058055282163711
-18446744073709551614 `rotate` -1 = 9223372036854775807
-18446744073709551614 `rotate` 0 = 18446744073709551614
-18446744073709551614 `rotate` 1 = 18446744073709551613
-18446744073709551614 `rotate` 2 = 18446744073709551611
-18446744073709551614 `rotate` 3 = 18446744073709551607
-
-18446744073709551615 `rotate` -3 = 18446744073709551615
-18446744073709551615 `rotate` -2 = 18446744073709551615
-18446744073709551615 `rotate` -1 = 18446744073709551615
-18446744073709551615 `rotate` 0 = 18446744073709551615
-18446744073709551615 `rotate` 1 = 18446744073709551615
-18446744073709551615 `rotate` 2 = 18446744073709551615
-18446744073709551615 `rotate` 3 = 18446744073709551615
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-
-1 `rotate` -3 = 2305843009213693952
-1 `rotate` -2 = 4611686018427387904
-1 `rotate` -1 = 9223372036854775808
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-
-2 `rotate` -3 = 4611686018427387904
-2 `rotate` -2 = 9223372036854775808
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-
-3 `rotate` -3 = 6917529027641081856
-3 `rotate` -2 = 13835058055282163712
-3 `rotate` -1 = 9223372036854775809
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
-18446744073709551613 `setBit` 0 = 18446744073709551613
-18446744073709551613 `setBit` 1 = 18446744073709551615
-18446744073709551613 `setBit` 2 = 18446744073709551613
-18446744073709551613 `setBit` 3 = 18446744073709551613
-18446744073709551613 `setBit` 32 = 18446744073709551613
-18446744073709551613 `setBit` 64 = 18446744073709551613
-
-18446744073709551614 `setBit` 0 = 18446744073709551615
-18446744073709551614 `setBit` 1 = 18446744073709551614
-18446744073709551614 `setBit` 2 = 18446744073709551614
-18446744073709551614 `setBit` 3 = 18446744073709551614
-18446744073709551614 `setBit` 32 = 18446744073709551614
-18446744073709551614 `setBit` 64 = 18446744073709551614
-
-18446744073709551615 `setBit` 0 = 18446744073709551615
-18446744073709551615 `setBit` 1 = 18446744073709551615
-18446744073709551615 `setBit` 2 = 18446744073709551615
-18446744073709551615 `setBit` 3 = 18446744073709551615
-18446744073709551615 `setBit` 32 = 18446744073709551615
-18446744073709551615 `setBit` 64 = 18446744073709551615
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 4294967296
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 4294967297
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 4294967298
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 4294967299
-3 `setBit` 64 = 3
-
-#
-18446744073709551613 `clearBit` 0 = 18446744073709551612
-18446744073709551613 `clearBit` 1 = 18446744073709551613
-18446744073709551613 `clearBit` 2 = 18446744073709551609
-18446744073709551613 `clearBit` 3 = 18446744073709551605
-18446744073709551613 `clearBit` 32 = 18446744069414584317
-18446744073709551613 `clearBit` 64 = 18446744073709551613
-
-18446744073709551614 `clearBit` 0 = 18446744073709551614
-18446744073709551614 `clearBit` 1 = 18446744073709551612
-18446744073709551614 `clearBit` 2 = 18446744073709551610
-18446744073709551614 `clearBit` 3 = 18446744073709551606
-18446744073709551614 `clearBit` 32 = 18446744069414584318
-18446744073709551614 `clearBit` 64 = 18446744073709551614
-
-18446744073709551615 `clearBit` 0 = 18446744073709551614
-18446744073709551615 `clearBit` 1 = 18446744073709551613
-18446744073709551615 `clearBit` 2 = 18446744073709551611
-18446744073709551615 `clearBit` 3 = 18446744073709551607
-18446744073709551615 `clearBit` 32 = 18446744069414584319
-18446744073709551615 `clearBit` 64 = 18446744073709551615
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
-18446744073709551613 `complementBit` 0 = 18446744073709551612
-18446744073709551613 `complementBit` 1 = 18446744073709551615
-18446744073709551613 `complementBit` 2 = 18446744073709551609
-18446744073709551613 `complementBit` 3 = 18446744073709551605
-18446744073709551613 `complementBit` 32 = 18446744069414584317
-18446744073709551613 `complementBit` 64 = 18446744073709551613
-
-18446744073709551614 `complementBit` 0 = 18446744073709551615
-18446744073709551614 `complementBit` 1 = 18446744073709551612
-18446744073709551614 `complementBit` 2 = 18446744073709551610
-18446744073709551614 `complementBit` 3 = 18446744073709551606
-18446744073709551614 `complementBit` 32 = 18446744069414584318
-18446744073709551614 `complementBit` 64 = 18446744073709551614
-
-18446744073709551615 `complementBit` 0 = 18446744073709551614
-18446744073709551615 `complementBit` 1 = 18446744073709551613
-18446744073709551615 `complementBit` 2 = 18446744073709551611
-18446744073709551615 `complementBit` 3 = 18446744073709551607
-18446744073709551615 `complementBit` 32 = 18446744069414584319
-18446744073709551615 `complementBit` 64 = 18446744073709551615
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 4294967296
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 4294967297
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 4294967298
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 4294967299
-3 `complementBit` 64 = 3
-
-#
-18446744073709551613 `testBit` 0 = True
-18446744073709551613 `testBit` 1 = False
-18446744073709551613 `testBit` 2 = True
-18446744073709551613 `testBit` 3 = True
-18446744073709551613 `testBit` 32 = True
-18446744073709551613 `testBit` 64 = False
-
-18446744073709551614 `testBit` 0 = False
-18446744073709551614 `testBit` 1 = True
-18446744073709551614 `testBit` 2 = True
-18446744073709551614 `testBit` 3 = True
-18446744073709551614 `testBit` 32 = True
-18446744073709551614 `testBit` 64 = False
-
-18446744073709551615 `testBit` 0 = True
-18446744073709551615 `testBit` 1 = True
-18446744073709551615 `testBit` 2 = True
-18446744073709551615 `testBit` 3 = True
-18446744073709551615 `testBit` 32 = True
-18446744073709551615 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize 18446744073709551613 = 64
-bitSize 18446744073709551614 = 64
-bitSize 18446744073709551615 = 64
-bitSize 0 = 64
-bitSize 1 = 64
-bitSize 2 = 64
-bitSize 3 = 64
-#
-isSigned 18446744073709551613 = False
-isSigned 18446744073709551614 = False
-isSigned 18446744073709551615 = False
-isSigned 0 = False
-isSigned 1 = False
-isSigned 2 = False
-isSigned 3 = False
-#
---------------------------------
---Testing Integer
---------------------------------
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 0 = divide by zero
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 0 = divide by zero
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 0 = divide by zero
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 0 = divide by zero
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 0 = divide by zero
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 0 = divide by zero
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 0 = divide by zero
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 0 = divide by zero
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 0 = divide by zero
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 0 = divide by zero
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 0 = divide by zero
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 0 = divide by zero
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 0 = divide by zero
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 0 = divide by zero
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 0 = divide by zero
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 0 = divide by zero
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 0 = divide by zero
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 0 = divide by zero
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 0 = 0
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 0 = 0
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 0 = 0
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 0 = -3
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 0 = -2
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 0 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 0 = -3
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 0 = -2
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 0 = -1
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = -12884901888
--3 `shiftL` 64 = -55340232221128654848
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = -8589934592
--2 `shiftL` 64 = -36893488147419103232
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = -4294967296
--1 `shiftL` 64 = -18446744073709551616
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 4294967296
-1 `shiftL` 64 = 18446744073709551616
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 8589934592
-2 `shiftL` 64 = 36893488147419103232
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 12884901888
-3 `shiftL` 64 = 55340232221128654848
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -1
--3 `rotate` -2 = -1
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -6
--3 `rotate` 2 = -12
--3 `rotate` 3 = -24
-
--2 `rotate` -3 = -1
--2 `rotate` -2 = -1
--2 `rotate` -1 = -1
--2 `rotate` 0 = -2
--2 `rotate` 1 = -4
--2 `rotate` 2 = -8
--2 `rotate` 3 = -16
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -2
--1 `rotate` 2 = -4
--1 `rotate` 3 = -8
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-
-1 `rotate` -3 = 0
-1 `rotate` -2 = 0
-1 `rotate` -1 = 0
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-
-2 `rotate` -3 = 0
-2 `rotate` -2 = 0
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-
-3 `rotate` -3 = 0
-3 `rotate` -2 = 0
-3 `rotate` -1 = 1
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 4294967296
-0 `setBit` 64 = 18446744073709551616
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 4294967297
-1 `setBit` 64 = 18446744073709551617
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 4294967298
-2 `setBit` 64 = 18446744073709551618
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 4294967299
-3 `setBit` 64 = 18446744073709551619
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -4294967299
--3 `clearBit` 64 = -18446744073709551619
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -4294967298
--2 `clearBit` 64 = -18446744073709551618
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -4294967297
--1 `clearBit` 64 = -18446744073709551617
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -4294967299
--3 `complementBit` 64 = -18446744073709551619
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -4294967298
--2 `complementBit` 64 = -18446744073709551618
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -4294967297
--1 `complementBit` 64 = -18446744073709551617
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 4294967296
-0 `complementBit` 64 = 18446744073709551616
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 4294967297
-1 `complementBit` 64 = 18446744073709551617
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 4294967298
-2 `complementBit` 64 = 18446744073709551618
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 4294967299
-3 `complementBit` 64 = 18446744073709551619
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = True
--3 `testBit` 64 = True
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = True
--2 `testBit` 64 = True
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = True
--1 `testBit` 64 = True
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith011.stdout-ws-64 b/testsuite/tests/ghc-regress/numeric/should_run/arith011.stdout-ws-64
deleted file mode 100644
index ff064a071d..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith011.stdout-ws-64
+++ /dev/null
@@ -1,15418 +0,0 @@
---------------------------------
---Testing Int
---------------------------------
-testBounded
-(9223372036854775807,-9223372036854775808,-9223372036854775807)
-(9223372036854775806,9223372036854775807,-9223372036854775808)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 0 = divide by zero
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 0 = divide by zero
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 0 = divide by zero
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 0 = divide by zero
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 0 = divide by zero
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 0 = divide by zero
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 0 = divide by zero
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 0 = divide by zero
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 0 = divide by zero
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 0 = divide by zero
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 0 = divide by zero
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 0 = divide by zero
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 0 = divide by zero
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 0 = divide by zero
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 0 = divide by zero
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 0 = divide by zero
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 0 = divide by zero
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 0 = divide by zero
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [-9223372036854775808,0,9223372036854775807]
-Int : [-9223372036854775808,0,9223372036854775807]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [0,0,-1]
-Int64 : [-9223372036854775808,0,9223372036854775807]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [0,0,4294967295]
-Word64 : [9223372036854775808,0,9223372036854775807]
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 0 = 0
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 0 = 0
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 0 = 0
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 0 = -3
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 0 = -2
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 0 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 0 = -3
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 0 = -2
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 0 = -1
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = -12884901888
--3 `shiftL` 64 = 0
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = -8589934592
--2 `shiftL` 64 = 0
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = -4294967296
--1 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 4294967296
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 8589934592
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 12884901888
-3 `shiftL` 64 = 0
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -4611686018427387905
--3 `rotate` -2 = 9223372036854775807
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -5
--3 `rotate` 2 = -9
--3 `rotate` 3 = -17
--3 `rotate` -64 = -3
--3 `rotate` -32 = -8589934593
--3 `rotate` 32 = -8589934593
--3 `rotate` 64 = -3
-
--2 `rotate` -3 = -2305843009213693953
--2 `rotate` -2 = -4611686018427387905
--2 `rotate` -1 = 9223372036854775807
--2 `rotate` 0 = -2
--2 `rotate` 1 = -3
--2 `rotate` 2 = -5
--2 `rotate` 3 = -9
--2 `rotate` -64 = -2
--2 `rotate` -32 = -4294967297
--2 `rotate` 32 = -4294967297
--2 `rotate` 64 = -2
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -1
--1 `rotate` 2 = -1
--1 `rotate` 3 = -1
--1 `rotate` -64 = -1
--1 `rotate` -32 = -1
--1 `rotate` 32 = -1
--1 `rotate` 64 = -1
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-0 `rotate` -64 = 0
-0 `rotate` -32 = 0
-0 `rotate` 32 = 0
-0 `rotate` 64 = 0
-
-1 `rotate` -3 = 2305843009213693952
-1 `rotate` -2 = 4611686018427387904
-1 `rotate` -1 = -9223372036854775808
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-1 `rotate` -64 = 1
-1 `rotate` -32 = 4294967296
-1 `rotate` 32 = 4294967296
-1 `rotate` 64 = 1
-
-2 `rotate` -3 = 4611686018427387904
-2 `rotate` -2 = -9223372036854775808
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-2 `rotate` -64 = 2
-2 `rotate` -32 = 8589934592
-2 `rotate` 32 = 8589934592
-2 `rotate` 64 = 2
-
-3 `rotate` -3 = 6917529027641081856
-3 `rotate` -2 = -4611686018427387904
-3 `rotate` -1 = -9223372036854775807
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-3 `rotate` -64 = 3
-3 `rotate` -32 = 12884901888
-3 `rotate` 32 = 12884901888
-3 `rotate` 64 = 3
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 4294967296
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 4294967297
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 4294967298
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 4294967299
-3 `setBit` 64 = 3
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -4294967299
--3 `clearBit` 64 = -3
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -4294967298
--2 `clearBit` 64 = -2
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -4294967297
--1 `clearBit` 64 = -1
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -4294967299
--3 `complementBit` 64 = -3
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -4294967298
--2 `complementBit` 64 = -2
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -4294967297
--1 `complementBit` 64 = -1
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 4294967296
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 4294967297
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 4294967298
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 4294967299
-3 `complementBit` 64 = 3
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = True
--3 `testBit` 64 = False
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = True
--2 `testBit` 64 = False
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = True
--1 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize -3 = 64
-bitSize -2 = 64
-bitSize -1 = 64
-bitSize 0 = 64
-bitSize 1 = 64
-bitSize 2 = 64
-bitSize 3 = 64
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
---------------------------------
---Testing Int8
---------------------------------
-testBounded
-(127,-128,-127)
-(126,127,-128)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 0 = divide by zero
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 0 = divide by zero
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 0 = divide by zero
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 0 = divide by zero
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 0 = divide by zero
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 0 = divide by zero
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 0 = divide by zero
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 0 = divide by zero
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 0 = divide by zero
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 0 = divide by zero
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 0 = divide by zero
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 0 = divide by zero
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 0 = divide by zero
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 0 = divide by zero
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 0 = divide by zero
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 0 = divide by zero
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 0 = divide by zero
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 0 = divide by zero
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [-128,0,127]
-Int : [-128,0,127]
-Int8 : [-128,0,127]
-Int16 : [-128,0,127]
-Int32 : [-128,0,127]
-Int64 : [-128,0,127]
-Word8 : [128,0,127]
-Word16 : [65408,0,127]
-Word32 : [4294967168,0,127]
-Word64 : [18446744073709551488,0,127]
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 0 = 0
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 0 = 0
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 0 = 0
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 0 = -3
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 0 = -2
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 0 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 0 = -3
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 0 = -2
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 0 = -1
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = 0
--3 `shiftL` 64 = 0
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = 0
--2 `shiftL` 64 = 0
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = 0
--1 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -65
--3 `rotate` -2 = 127
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -5
--3 `rotate` 2 = -9
--3 `rotate` 3 = -17
--3 `rotate` -64 = -3
--3 `rotate` -32 = -3
--3 `rotate` 32 = -3
--3 `rotate` 64 = -3
-
--2 `rotate` -3 = -33
--2 `rotate` -2 = -65
--2 `rotate` -1 = 127
--2 `rotate` 0 = -2
--2 `rotate` 1 = -3
--2 `rotate` 2 = -5
--2 `rotate` 3 = -9
--2 `rotate` -64 = -2
--2 `rotate` -32 = -2
--2 `rotate` 32 = -2
--2 `rotate` 64 = -2
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -1
--1 `rotate` 2 = -1
--1 `rotate` 3 = -1
--1 `rotate` -64 = -1
--1 `rotate` -32 = -1
--1 `rotate` 32 = -1
--1 `rotate` 64 = -1
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-0 `rotate` -64 = 0
-0 `rotate` -32 = 0
-0 `rotate` 32 = 0
-0 `rotate` 64 = 0
-
-1 `rotate` -3 = 32
-1 `rotate` -2 = 64
-1 `rotate` -1 = -128
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-1 `rotate` -64 = 1
-1 `rotate` -32 = 1
-1 `rotate` 32 = 1
-1 `rotate` 64 = 1
-
-2 `rotate` -3 = 64
-2 `rotate` -2 = -128
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-2 `rotate` -64 = 2
-2 `rotate` -32 = 2
-2 `rotate` 32 = 2
-2 `rotate` 64 = 2
-
-3 `rotate` -3 = 96
-3 `rotate` -2 = -64
-3 `rotate` -1 = -127
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-3 `rotate` -64 = 3
-3 `rotate` -32 = 3
-3 `rotate` 32 = 3
-3 `rotate` 64 = 3
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -3
--3 `clearBit` 64 = -3
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -2
--2 `clearBit` 64 = -2
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -1
--1 `clearBit` 64 = -1
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -3
--3 `complementBit` 64 = -3
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -2
--2 `complementBit` 64 = -2
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -1
--1 `complementBit` 64 = -1
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = False
--3 `testBit` 64 = False
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = False
--2 `testBit` 64 = False
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = False
--1 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize -3 = 8
-bitSize -2 = 8
-bitSize -1 = 8
-bitSize 0 = 8
-bitSize 1 = 8
-bitSize 2 = 8
-bitSize 3 = 8
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
---------------------------------
---Testing Int16
---------------------------------
-testBounded
-(32767,-32768,-32767)
-(32766,32767,-32768)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 0 = divide by zero
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 0 = divide by zero
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 0 = divide by zero
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 0 = divide by zero
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 0 = divide by zero
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 0 = divide by zero
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 0 = divide by zero
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 0 = divide by zero
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 0 = divide by zero
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 0 = divide by zero
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 0 = divide by zero
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 0 = divide by zero
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 0 = divide by zero
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 0 = divide by zero
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 0 = divide by zero
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 0 = divide by zero
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 0 = divide by zero
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 0 = divide by zero
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [-32768,0,32767]
-Int : [-32768,0,32767]
-Int8 : [0,0,-1]
-Int16 : [-32768,0,32767]
-Int32 : [-32768,0,32767]
-Int64 : [-32768,0,32767]
-Word8 : [0,0,255]
-Word16 : [32768,0,32767]
-Word32 : [4294934528,0,32767]
-Word64 : [18446744073709518848,0,32767]
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 0 = 0
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 0 = 0
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 0 = 0
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 0 = -3
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 0 = -2
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 0 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 0 = -3
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 0 = -2
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 0 = -1
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = 0
--3 `shiftL` 64 = 0
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = 0
--2 `shiftL` 64 = 0
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = 0
--1 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -16385
--3 `rotate` -2 = 32767
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -5
--3 `rotate` 2 = -9
--3 `rotate` 3 = -17
--3 `rotate` -64 = -3
--3 `rotate` -32 = -3
--3 `rotate` 32 = -3
--3 `rotate` 64 = -3
-
--2 `rotate` -3 = -8193
--2 `rotate` -2 = -16385
--2 `rotate` -1 = 32767
--2 `rotate` 0 = -2
--2 `rotate` 1 = -3
--2 `rotate` 2 = -5
--2 `rotate` 3 = -9
--2 `rotate` -64 = -2
--2 `rotate` -32 = -2
--2 `rotate` 32 = -2
--2 `rotate` 64 = -2
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -1
--1 `rotate` 2 = -1
--1 `rotate` 3 = -1
--1 `rotate` -64 = -1
--1 `rotate` -32 = -1
--1 `rotate` 32 = -1
--1 `rotate` 64 = -1
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-0 `rotate` -64 = 0
-0 `rotate` -32 = 0
-0 `rotate` 32 = 0
-0 `rotate` 64 = 0
-
-1 `rotate` -3 = 8192
-1 `rotate` -2 = 16384
-1 `rotate` -1 = -32768
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-1 `rotate` -64 = 1
-1 `rotate` -32 = 1
-1 `rotate` 32 = 1
-1 `rotate` 64 = 1
-
-2 `rotate` -3 = 16384
-2 `rotate` -2 = -32768
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-2 `rotate` -64 = 2
-2 `rotate` -32 = 2
-2 `rotate` 32 = 2
-2 `rotate` 64 = 2
-
-3 `rotate` -3 = 24576
-3 `rotate` -2 = -16384
-3 `rotate` -1 = -32767
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-3 `rotate` -64 = 3
-3 `rotate` -32 = 3
-3 `rotate` 32 = 3
-3 `rotate` 64 = 3
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -3
--3 `clearBit` 64 = -3
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -2
--2 `clearBit` 64 = -2
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -1
--1 `clearBit` 64 = -1
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -3
--3 `complementBit` 64 = -3
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -2
--2 `complementBit` 64 = -2
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -1
--1 `complementBit` 64 = -1
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = False
--3 `testBit` 64 = False
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = False
--2 `testBit` 64 = False
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = False
--1 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize -3 = 16
-bitSize -2 = 16
-bitSize -1 = 16
-bitSize 0 = 16
-bitSize 1 = 16
-bitSize 2 = 16
-bitSize 3 = 16
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
---------------------------------
---Testing Int32
---------------------------------
-testBounded
-(2147483647,-2147483648,-2147483647)
-(2147483646,2147483647,-2147483648)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 0 = divide by zero
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 0 = divide by zero
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 0 = divide by zero
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 0 = divide by zero
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 0 = divide by zero
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 0 = divide by zero
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 0 = divide by zero
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 0 = divide by zero
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 0 = divide by zero
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 0 = divide by zero
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 0 = divide by zero
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 0 = divide by zero
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 0 = divide by zero
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 0 = divide by zero
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 0 = divide by zero
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 0 = divide by zero
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 0 = divide by zero
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 0 = divide by zero
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [-2147483648,0,2147483647]
-Int : [-2147483648,0,2147483647]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [-2147483648,0,2147483647]
-Int64 : [-2147483648,0,2147483647]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [2147483648,0,2147483647]
-Word64 : [18446744071562067968,0,2147483647]
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 0 = 0
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 0 = 0
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 0 = 0
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 0 = -3
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 0 = -2
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 0 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 0 = -3
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 0 = -2
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 0 = -1
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = 0
--3 `shiftL` 64 = 0
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = 0
--2 `shiftL` 64 = 0
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = 0
--1 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -1073741825
--3 `rotate` -2 = 2147483647
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -5
--3 `rotate` 2 = -9
--3 `rotate` 3 = -17
--3 `rotate` -64 = -3
--3 `rotate` -32 = -3
--3 `rotate` 32 = -3
--3 `rotate` 64 = -3
-
--2 `rotate` -3 = -536870913
--2 `rotate` -2 = -1073741825
--2 `rotate` -1 = 2147483647
--2 `rotate` 0 = -2
--2 `rotate` 1 = -3
--2 `rotate` 2 = -5
--2 `rotate` 3 = -9
--2 `rotate` -64 = -2
--2 `rotate` -32 = -2
--2 `rotate` 32 = -2
--2 `rotate` 64 = -2
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -1
--1 `rotate` 2 = -1
--1 `rotate` 3 = -1
--1 `rotate` -64 = -1
--1 `rotate` -32 = -1
--1 `rotate` 32 = -1
--1 `rotate` 64 = -1
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-0 `rotate` -64 = 0
-0 `rotate` -32 = 0
-0 `rotate` 32 = 0
-0 `rotate` 64 = 0
-
-1 `rotate` -3 = 536870912
-1 `rotate` -2 = 1073741824
-1 `rotate` -1 = -2147483648
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-1 `rotate` -64 = 1
-1 `rotate` -32 = 1
-1 `rotate` 32 = 1
-1 `rotate` 64 = 1
-
-2 `rotate` -3 = 1073741824
-2 `rotate` -2 = -2147483648
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-2 `rotate` -64 = 2
-2 `rotate` -32 = 2
-2 `rotate` 32 = 2
-2 `rotate` 64 = 2
-
-3 `rotate` -3 = 1610612736
-3 `rotate` -2 = -1073741824
-3 `rotate` -1 = -2147483647
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-3 `rotate` -64 = 3
-3 `rotate` -32 = 3
-3 `rotate` 32 = 3
-3 `rotate` 64 = 3
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -3
--3 `clearBit` 64 = -3
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -2
--2 `clearBit` 64 = -2
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -1
--1 `clearBit` 64 = -1
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -3
--3 `complementBit` 64 = -3
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -2
--2 `complementBit` 64 = -2
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -1
--1 `complementBit` 64 = -1
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = False
--3 `testBit` 64 = False
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = False
--2 `testBit` 64 = False
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = False
--1 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize -3 = 32
-bitSize -2 = 32
-bitSize -1 = 32
-bitSize 0 = 32
-bitSize 1 = 32
-bitSize 2 = 32
-bitSize 3 = 32
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
---------------------------------
---Testing Int64
---------------------------------
-testBounded
-(9223372036854775807,-9223372036854775808,-9223372036854775807)
-(9223372036854775806,9223372036854775807,-9223372036854775808)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 0 = divide by zero
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 0 = divide by zero
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 0 = divide by zero
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 0 = divide by zero
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 0 = divide by zero
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 0 = divide by zero
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 0 = divide by zero
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 0 = divide by zero
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 0 = divide by zero
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 0 = divide by zero
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 0 = divide by zero
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 0 = divide by zero
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 0 = divide by zero
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 0 = divide by zero
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 0 = divide by zero
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 0 = divide by zero
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 0 = divide by zero
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 0 = divide by zero
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [-9223372036854775808,0,9223372036854775807]
-Int : [-9223372036854775808,0,9223372036854775807]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [0,0,-1]
-Int64 : [-9223372036854775808,0,9223372036854775807]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [0,0,4294967295]
-Word64 : [9223372036854775808,0,9223372036854775807]
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 0 = 0
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 0 = 0
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 0 = 0
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 0 = -3
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 0 = -2
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 0 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 0 = -3
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 0 = -2
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 0 = -1
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = -12884901888
--3 `shiftL` 64 = 0
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = -8589934592
--2 `shiftL` 64 = 0
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = -4294967296
--1 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 4294967296
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 8589934592
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 12884901888
-3 `shiftL` 64 = 0
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -4611686018427387905
--3 `rotate` -2 = 9223372036854775807
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -5
--3 `rotate` 2 = -9
--3 `rotate` 3 = -17
--3 `rotate` -64 = -3
--3 `rotate` -32 = -8589934593
--3 `rotate` 32 = -8589934593
--3 `rotate` 64 = -3
-
--2 `rotate` -3 = -2305843009213693953
--2 `rotate` -2 = -4611686018427387905
--2 `rotate` -1 = 9223372036854775807
--2 `rotate` 0 = -2
--2 `rotate` 1 = -3
--2 `rotate` 2 = -5
--2 `rotate` 3 = -9
--2 `rotate` -64 = -2
--2 `rotate` -32 = -4294967297
--2 `rotate` 32 = -4294967297
--2 `rotate` 64 = -2
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -1
--1 `rotate` 2 = -1
--1 `rotate` 3 = -1
--1 `rotate` -64 = -1
--1 `rotate` -32 = -1
--1 `rotate` 32 = -1
--1 `rotate` 64 = -1
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-0 `rotate` -64 = 0
-0 `rotate` -32 = 0
-0 `rotate` 32 = 0
-0 `rotate` 64 = 0
-
-1 `rotate` -3 = 2305843009213693952
-1 `rotate` -2 = 4611686018427387904
-1 `rotate` -1 = -9223372036854775808
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-1 `rotate` -64 = 1
-1 `rotate` -32 = 4294967296
-1 `rotate` 32 = 4294967296
-1 `rotate` 64 = 1
-
-2 `rotate` -3 = 4611686018427387904
-2 `rotate` -2 = -9223372036854775808
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-2 `rotate` -64 = 2
-2 `rotate` -32 = 8589934592
-2 `rotate` 32 = 8589934592
-2 `rotate` 64 = 2
-
-3 `rotate` -3 = 6917529027641081856
-3 `rotate` -2 = -4611686018427387904
-3 `rotate` -1 = -9223372036854775807
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-3 `rotate` -64 = 3
-3 `rotate` -32 = 12884901888
-3 `rotate` 32 = 12884901888
-3 `rotate` 64 = 3
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 4294967296
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 4294967297
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 4294967298
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 4294967299
-3 `setBit` 64 = 3
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -4294967299
--3 `clearBit` 64 = -3
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -4294967298
--2 `clearBit` 64 = -2
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -4294967297
--1 `clearBit` 64 = -1
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -4294967299
--3 `complementBit` 64 = -3
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -4294967298
--2 `complementBit` 64 = -2
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -4294967297
--1 `complementBit` 64 = -1
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 4294967296
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 4294967297
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 4294967298
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 4294967299
-3 `complementBit` 64 = 3
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = True
--3 `testBit` 64 = False
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = True
--2 `testBit` 64 = False
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = True
--1 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize -3 = 64
-bitSize -2 = 64
-bitSize -1 = 64
-bitSize 0 = 64
-bitSize 1 = 64
-bitSize 2 = 64
-bitSize 3 = 64
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
---------------------------------
---Testing Word8
---------------------------------
-testBounded
-(255,0,1)
-(254,255,0)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[253,254,255,0,1,2,3]
-[253,254,255,0,1,2,3]
-testEq
-253 == 253 = True
-253 == 254 = False
-253 == 255 = False
-253 == 0 = False
-253 == 1 = False
-253 == 2 = False
-253 == 3 = False
-
-254 == 253 = False
-254 == 254 = True
-254 == 255 = False
-254 == 0 = False
-254 == 1 = False
-254 == 2 = False
-254 == 3 = False
-
-255 == 253 = False
-255 == 254 = False
-255 == 255 = True
-255 == 0 = False
-255 == 1 = False
-255 == 2 = False
-255 == 3 = False
-
-0 == 253 = False
-0 == 254 = False
-0 == 255 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == 253 = False
-1 == 254 = False
-1 == 255 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == 253 = False
-2 == 254 = False
-2 == 255 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == 253 = False
-3 == 254 = False
-3 == 255 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
-253 /= 253 = False
-253 /= 254 = True
-253 /= 255 = True
-253 /= 0 = True
-253 /= 1 = True
-253 /= 2 = True
-253 /= 3 = True
-
-254 /= 253 = True
-254 /= 254 = False
-254 /= 255 = True
-254 /= 0 = True
-254 /= 1 = True
-254 /= 2 = True
-254 /= 3 = True
-
-255 /= 253 = True
-255 /= 254 = True
-255 /= 255 = False
-255 /= 0 = True
-255 /= 1 = True
-255 /= 2 = True
-255 /= 3 = True
-
-0 /= 253 = True
-0 /= 254 = True
-0 /= 255 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= 253 = True
-1 /= 254 = True
-1 /= 255 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= 253 = True
-2 /= 254 = True
-2 /= 255 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= 253 = True
-3 /= 254 = True
-3 /= 255 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
-253 <= 253 = True
-253 <= 254 = True
-253 <= 255 = True
-253 <= 0 = False
-253 <= 1 = False
-253 <= 2 = False
-253 <= 3 = False
-
-254 <= 253 = False
-254 <= 254 = True
-254 <= 255 = True
-254 <= 0 = False
-254 <= 1 = False
-254 <= 2 = False
-254 <= 3 = False
-
-255 <= 253 = False
-255 <= 254 = False
-255 <= 255 = True
-255 <= 0 = False
-255 <= 1 = False
-255 <= 2 = False
-255 <= 3 = False
-
-0 <= 253 = True
-0 <= 254 = True
-0 <= 255 = True
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= 253 = True
-1 <= 254 = True
-1 <= 255 = True
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= 253 = True
-2 <= 254 = True
-2 <= 255 = True
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= 253 = True
-3 <= 254 = True
-3 <= 255 = True
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
-253 < 253 = False
-253 < 254 = True
-253 < 255 = True
-253 < 0 = False
-253 < 1 = False
-253 < 2 = False
-253 < 3 = False
-
-254 < 253 = False
-254 < 254 = False
-254 < 255 = True
-254 < 0 = False
-254 < 1 = False
-254 < 2 = False
-254 < 3 = False
-
-255 < 253 = False
-255 < 254 = False
-255 < 255 = False
-255 < 0 = False
-255 < 1 = False
-255 < 2 = False
-255 < 3 = False
-
-0 < 253 = True
-0 < 254 = True
-0 < 255 = True
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < 253 = True
-1 < 254 = True
-1 < 255 = True
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < 253 = True
-2 < 254 = True
-2 < 255 = True
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < 253 = True
-3 < 254 = True
-3 < 255 = True
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
-253 > 253 = False
-253 > 254 = False
-253 > 255 = False
-253 > 0 = True
-253 > 1 = True
-253 > 2 = True
-253 > 3 = True
-
-254 > 253 = True
-254 > 254 = False
-254 > 255 = False
-254 > 0 = True
-254 > 1 = True
-254 > 2 = True
-254 > 3 = True
-
-255 > 253 = True
-255 > 254 = True
-255 > 255 = False
-255 > 0 = True
-255 > 1 = True
-255 > 2 = True
-255 > 3 = True
-
-0 > 253 = False
-0 > 254 = False
-0 > 255 = False
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > 253 = False
-1 > 254 = False
-1 > 255 = False
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > 253 = False
-2 > 254 = False
-2 > 255 = False
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > 253 = False
-3 > 254 = False
-3 > 255 = False
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
-253 >= 253 = True
-253 >= 254 = False
-253 >= 255 = False
-253 >= 0 = True
-253 >= 1 = True
-253 >= 2 = True
-253 >= 3 = True
-
-254 >= 253 = True
-254 >= 254 = True
-254 >= 255 = False
-254 >= 0 = True
-254 >= 1 = True
-254 >= 2 = True
-254 >= 3 = True
-
-255 >= 253 = True
-255 >= 254 = True
-255 >= 255 = True
-255 >= 0 = True
-255 >= 1 = True
-255 >= 2 = True
-255 >= 3 = True
-
-0 >= 253 = False
-0 >= 254 = False
-0 >= 255 = False
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= 253 = False
-1 >= 254 = False
-1 >= 255 = False
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= 253 = False
-2 >= 254 = False
-2 >= 255 = False
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= 253 = False
-3 >= 254 = False
-3 >= 255 = False
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
-253 `compare` 253 = EQ
-253 `compare` 254 = LT
-253 `compare` 255 = LT
-253 `compare` 0 = GT
-253 `compare` 1 = GT
-253 `compare` 2 = GT
-253 `compare` 3 = GT
-
-254 `compare` 253 = GT
-254 `compare` 254 = EQ
-254 `compare` 255 = LT
-254 `compare` 0 = GT
-254 `compare` 1 = GT
-254 `compare` 2 = GT
-254 `compare` 3 = GT
-
-255 `compare` 253 = GT
-255 `compare` 254 = GT
-255 `compare` 255 = EQ
-255 `compare` 0 = GT
-255 `compare` 1 = GT
-255 `compare` 2 = GT
-255 `compare` 3 = GT
-
-0 `compare` 253 = LT
-0 `compare` 254 = LT
-0 `compare` 255 = LT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` 253 = LT
-1 `compare` 254 = LT
-1 `compare` 255 = LT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` 253 = LT
-2 `compare` 254 = LT
-2 `compare` 255 = LT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` 253 = LT
-3 `compare` 254 = LT
-3 `compare` 255 = LT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
-253 + 253 = 250
-253 + 254 = 251
-253 + 255 = 252
-253 + 0 = 253
-253 + 1 = 254
-253 + 2 = 255
-253 + 3 = 0
-
-254 + 253 = 251
-254 + 254 = 252
-254 + 255 = 253
-254 + 0 = 254
-254 + 1 = 255
-254 + 2 = 0
-254 + 3 = 1
-
-255 + 253 = 252
-255 + 254 = 253
-255 + 255 = 254
-255 + 0 = 255
-255 + 1 = 0
-255 + 2 = 1
-255 + 3 = 2
-
-0 + 253 = 253
-0 + 254 = 254
-0 + 255 = 255
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + 253 = 254
-1 + 254 = 255
-1 + 255 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + 253 = 255
-2 + 254 = 0
-2 + 255 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + 253 = 0
-3 + 254 = 1
-3 + 255 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
-253 - 253 = 0
-253 - 254 = 255
-253 - 255 = 254
-253 - 0 = 253
-253 - 1 = 252
-253 - 2 = 251
-253 - 3 = 250
-
-254 - 253 = 1
-254 - 254 = 0
-254 - 255 = 255
-254 - 0 = 254
-254 - 1 = 253
-254 - 2 = 252
-254 - 3 = 251
-
-255 - 253 = 2
-255 - 254 = 1
-255 - 255 = 0
-255 - 0 = 255
-255 - 1 = 254
-255 - 2 = 253
-255 - 3 = 252
-
-0 - 253 = 3
-0 - 254 = 2
-0 - 255 = 1
-0 - 0 = 0
-0 - 1 = 255
-0 - 2 = 254
-0 - 3 = 253
-
-1 - 253 = 4
-1 - 254 = 3
-1 - 255 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = 255
-1 - 3 = 254
-
-2 - 253 = 5
-2 - 254 = 4
-2 - 255 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = 255
-
-3 - 253 = 6
-3 - 254 = 5
-3 - 255 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
-253 * 253 = 9
-253 * 254 = 6
-253 * 255 = 3
-253 * 0 = 0
-253 * 1 = 253
-253 * 2 = 250
-253 * 3 = 247
-
-254 * 253 = 6
-254 * 254 = 4
-254 * 255 = 2
-254 * 0 = 0
-254 * 1 = 254
-254 * 2 = 252
-254 * 3 = 250
-
-255 * 253 = 3
-255 * 254 = 2
-255 * 255 = 1
-255 * 0 = 0
-255 * 1 = 255
-255 * 2 = 254
-255 * 3 = 253
-
-0 * 253 = 0
-0 * 254 = 0
-0 * 255 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * 253 = 253
-1 * 254 = 254
-1 * 255 = 255
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * 253 = 250
-2 * 254 = 252
-2 * 255 = 254
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * 253 = 247
-3 * 254 = 250
-3 * 255 = 253
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate 253 = 3
-negate 254 = 2
-negate 255 = 1
-negate 0 = 0
-negate 1 = 255
-negate 2 = 254
-negate 3 = 253
-#
-testReal
-toRational 253 = 253 % 1
-toRational 254 = 254 % 1
-toRational 255 = 255 % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
-253 `divMod` 253 = (1,0)
-253 `divMod` 254 = (0,253)
-253 `divMod` 255 = (0,253)
-253 `divMod` 0 = divide by zero
-253 `divMod` 1 = (253,0)
-253 `divMod` 2 = (126,1)
-253 `divMod` 3 = (84,1)
-
-254 `divMod` 253 = (1,1)
-254 `divMod` 254 = (1,0)
-254 `divMod` 255 = (0,254)
-254 `divMod` 0 = divide by zero
-254 `divMod` 1 = (254,0)
-254 `divMod` 2 = (127,0)
-254 `divMod` 3 = (84,2)
-
-255 `divMod` 253 = (1,2)
-255 `divMod` 254 = (1,1)
-255 `divMod` 255 = (1,0)
-255 `divMod` 0 = divide by zero
-255 `divMod` 1 = (255,0)
-255 `divMod` 2 = (127,1)
-255 `divMod` 3 = (85,0)
-
-0 `divMod` 253 = (0,0)
-0 `divMod` 254 = (0,0)
-0 `divMod` 255 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` 253 = (0,1)
-1 `divMod` 254 = (0,1)
-1 `divMod` 255 = (0,1)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` 253 = (0,2)
-2 `divMod` 254 = (0,2)
-2 `divMod` 255 = (0,2)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` 253 = (0,3)
-3 `divMod` 254 = (0,3)
-3 `divMod` 255 = (0,3)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
-253 `div` 253 = 1
-253 `div` 254 = 0
-253 `div` 255 = 0
-253 `div` 0 = divide by zero
-253 `div` 1 = 253
-253 `div` 2 = 126
-253 `div` 3 = 84
-
-254 `div` 253 = 1
-254 `div` 254 = 1
-254 `div` 255 = 0
-254 `div` 0 = divide by zero
-254 `div` 1 = 254
-254 `div` 2 = 127
-254 `div` 3 = 84
-
-255 `div` 253 = 1
-255 `div` 254 = 1
-255 `div` 255 = 1
-255 `div` 0 = divide by zero
-255 `div` 1 = 255
-255 `div` 2 = 127
-255 `div` 3 = 85
-
-0 `div` 253 = 0
-0 `div` 254 = 0
-0 `div` 255 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` 253 = 0
-1 `div` 254 = 0
-1 `div` 255 = 0
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` 253 = 0
-2 `div` 254 = 0
-2 `div` 255 = 0
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` 253 = 0
-3 `div` 254 = 0
-3 `div` 255 = 0
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
-253 `mod` 253 = 0
-253 `mod` 254 = 253
-253 `mod` 255 = 253
-253 `mod` 0 = divide by zero
-253 `mod` 1 = 0
-253 `mod` 2 = 1
-253 `mod` 3 = 1
-
-254 `mod` 253 = 1
-254 `mod` 254 = 0
-254 `mod` 255 = 254
-254 `mod` 0 = divide by zero
-254 `mod` 1 = 0
-254 `mod` 2 = 0
-254 `mod` 3 = 2
-
-255 `mod` 253 = 2
-255 `mod` 254 = 1
-255 `mod` 255 = 0
-255 `mod` 0 = divide by zero
-255 `mod` 1 = 0
-255 `mod` 2 = 1
-255 `mod` 3 = 0
-
-0 `mod` 253 = 0
-0 `mod` 254 = 0
-0 `mod` 255 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` 253 = 1
-1 `mod` 254 = 1
-1 `mod` 255 = 1
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` 253 = 2
-2 `mod` 254 = 2
-2 `mod` 255 = 2
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` 253 = 3
-3 `mod` 254 = 3
-3 `mod` 255 = 3
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
-253 `quotRem` 253 = (1,0)
-253 `quotRem` 254 = (0,253)
-253 `quotRem` 255 = (0,253)
-253 `quotRem` 0 = divide by zero
-253 `quotRem` 1 = (253,0)
-253 `quotRem` 2 = (126,1)
-253 `quotRem` 3 = (84,1)
-
-254 `quotRem` 253 = (1,1)
-254 `quotRem` 254 = (1,0)
-254 `quotRem` 255 = (0,254)
-254 `quotRem` 0 = divide by zero
-254 `quotRem` 1 = (254,0)
-254 `quotRem` 2 = (127,0)
-254 `quotRem` 3 = (84,2)
-
-255 `quotRem` 253 = (1,2)
-255 `quotRem` 254 = (1,1)
-255 `quotRem` 255 = (1,0)
-255 `quotRem` 0 = divide by zero
-255 `quotRem` 1 = (255,0)
-255 `quotRem` 2 = (127,1)
-255 `quotRem` 3 = (85,0)
-
-0 `quotRem` 253 = (0,0)
-0 `quotRem` 254 = (0,0)
-0 `quotRem` 255 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` 253 = (0,1)
-1 `quotRem` 254 = (0,1)
-1 `quotRem` 255 = (0,1)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` 253 = (0,2)
-2 `quotRem` 254 = (0,2)
-2 `quotRem` 255 = (0,2)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` 253 = (0,3)
-3 `quotRem` 254 = (0,3)
-3 `quotRem` 255 = (0,3)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
-253 `quot` 253 = 1
-253 `quot` 254 = 0
-253 `quot` 255 = 0
-253 `quot` 0 = divide by zero
-253 `quot` 1 = 253
-253 `quot` 2 = 126
-253 `quot` 3 = 84
-
-254 `quot` 253 = 1
-254 `quot` 254 = 1
-254 `quot` 255 = 0
-254 `quot` 0 = divide by zero
-254 `quot` 1 = 254
-254 `quot` 2 = 127
-254 `quot` 3 = 84
-
-255 `quot` 253 = 1
-255 `quot` 254 = 1
-255 `quot` 255 = 1
-255 `quot` 0 = divide by zero
-255 `quot` 1 = 255
-255 `quot` 2 = 127
-255 `quot` 3 = 85
-
-0 `quot` 253 = 0
-0 `quot` 254 = 0
-0 `quot` 255 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` 253 = 0
-1 `quot` 254 = 0
-1 `quot` 255 = 0
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` 253 = 0
-2 `quot` 254 = 0
-2 `quot` 255 = 0
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` 253 = 0
-3 `quot` 254 = 0
-3 `quot` 255 = 0
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
-253 `rem` 253 = 0
-253 `rem` 254 = 253
-253 `rem` 255 = 253
-253 `rem` 0 = divide by zero
-253 `rem` 1 = 0
-253 `rem` 2 = 1
-253 `rem` 3 = 1
-
-254 `rem` 253 = 1
-254 `rem` 254 = 0
-254 `rem` 255 = 254
-254 `rem` 0 = divide by zero
-254 `rem` 1 = 0
-254 `rem` 2 = 0
-254 `rem` 3 = 2
-
-255 `rem` 253 = 2
-255 `rem` 254 = 1
-255 `rem` 255 = 0
-255 `rem` 0 = divide by zero
-255 `rem` 1 = 0
-255 `rem` 2 = 1
-255 `rem` 3 = 0
-
-0 `rem` 253 = 0
-0 `rem` 254 = 0
-0 `rem` 255 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` 253 = 1
-1 `rem` 254 = 1
-1 `rem` 255 = 1
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` 253 = 2
-2 `rem` 254 = 2
-2 `rem` 255 = 2
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` 253 = 3
-3 `rem` 254 = 3
-3 `rem` 255 = 3
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [0,0,255]
-Int : [0,0,255]
-Int8 : [0,0,-1]
-Int16 : [0,0,255]
-Int32 : [0,0,255]
-Int64 : [0,0,255]
-Word8 : [0,0,255]
-Word16 : [0,0,255]
-Word32 : [0,0,255]
-Word64 : [0,0,255]
-testBits
-253 .&. 253 = 253
-253 .&. 254 = 252
-253 .&. 255 = 253
-253 .&. 0 = 0
-253 .&. 1 = 1
-253 .&. 2 = 0
-253 .&. 3 = 1
-
-254 .&. 253 = 252
-254 .&. 254 = 254
-254 .&. 255 = 254
-254 .&. 0 = 0
-254 .&. 1 = 0
-254 .&. 2 = 2
-254 .&. 3 = 2
-
-255 .&. 253 = 253
-255 .&. 254 = 254
-255 .&. 255 = 255
-255 .&. 0 = 0
-255 .&. 1 = 1
-255 .&. 2 = 2
-255 .&. 3 = 3
-
-0 .&. 253 = 0
-0 .&. 254 = 0
-0 .&. 255 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. 253 = 1
-1 .&. 254 = 0
-1 .&. 255 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. 253 = 0
-2 .&. 254 = 2
-2 .&. 255 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. 253 = 1
-3 .&. 254 = 2
-3 .&. 255 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
-253 .|. 253 = 253
-253 .|. 254 = 255
-253 .|. 255 = 255
-253 .|. 0 = 253
-253 .|. 1 = 253
-253 .|. 2 = 255
-253 .|. 3 = 255
-
-254 .|. 253 = 255
-254 .|. 254 = 254
-254 .|. 255 = 255
-254 .|. 0 = 254
-254 .|. 1 = 255
-254 .|. 2 = 254
-254 .|. 3 = 255
-
-255 .|. 253 = 255
-255 .|. 254 = 255
-255 .|. 255 = 255
-255 .|. 0 = 255
-255 .|. 1 = 255
-255 .|. 2 = 255
-255 .|. 3 = 255
-
-0 .|. 253 = 253
-0 .|. 254 = 254
-0 .|. 255 = 255
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. 253 = 253
-1 .|. 254 = 255
-1 .|. 255 = 255
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. 253 = 255
-2 .|. 254 = 254
-2 .|. 255 = 255
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. 253 = 255
-3 .|. 254 = 255
-3 .|. 255 = 255
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
-253 `xor` 253 = 0
-253 `xor` 254 = 3
-253 `xor` 255 = 2
-253 `xor` 0 = 253
-253 `xor` 1 = 252
-253 `xor` 2 = 255
-253 `xor` 3 = 254
-
-254 `xor` 253 = 3
-254 `xor` 254 = 0
-254 `xor` 255 = 1
-254 `xor` 0 = 254
-254 `xor` 1 = 255
-254 `xor` 2 = 252
-254 `xor` 3 = 253
-
-255 `xor` 253 = 2
-255 `xor` 254 = 1
-255 `xor` 255 = 0
-255 `xor` 0 = 255
-255 `xor` 1 = 254
-255 `xor` 2 = 253
-255 `xor` 3 = 252
-
-0 `xor` 253 = 253
-0 `xor` 254 = 254
-0 `xor` 255 = 255
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` 253 = 252
-1 `xor` 254 = 255
-1 `xor` 255 = 254
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` 253 = 255
-2 `xor` 254 = 252
-2 `xor` 255 = 253
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` 253 = 254
-3 `xor` 254 = 253
-3 `xor` 255 = 252
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement 253 = 2
-complement 254 = 1
-complement 255 = 0
-complement 0 = 255
-complement 1 = 254
-complement 2 = 253
-complement 3 = 252
-#
-253 `shiftL` 0 = 253
-253 `shiftL` 1 = 250
-253 `shiftL` 2 = 244
-253 `shiftL` 3 = 232
-253 `shiftL` 32 = 0
-253 `shiftL` 64 = 0
-
-254 `shiftL` 0 = 254
-254 `shiftL` 1 = 252
-254 `shiftL` 2 = 248
-254 `shiftL` 3 = 240
-254 `shiftL` 32 = 0
-254 `shiftL` 64 = 0
-
-255 `shiftL` 0 = 255
-255 `shiftL` 1 = 254
-255 `shiftL` 2 = 252
-255 `shiftL` 3 = 248
-255 `shiftL` 32 = 0
-255 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
-253 `shiftR` 0 = 253
-253 `shiftR` 1 = 126
-253 `shiftR` 2 = 63
-253 `shiftR` 3 = 31
-253 `shiftR` 32 = 0
-253 `shiftR` 64 = 0
-
-254 `shiftR` 0 = 254
-254 `shiftR` 1 = 127
-254 `shiftR` 2 = 63
-254 `shiftR` 3 = 31
-254 `shiftR` 32 = 0
-254 `shiftR` 64 = 0
-
-255 `shiftR` 0 = 255
-255 `shiftR` 1 = 127
-255 `shiftR` 2 = 63
-255 `shiftR` 3 = 31
-255 `shiftR` 32 = 0
-255 `shiftR` 64 = 0
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
-253 `rotate` -3 = 191
-253 `rotate` -2 = 127
-253 `rotate` -1 = 254
-253 `rotate` 0 = 253
-253 `rotate` 1 = 251
-253 `rotate` 2 = 247
-253 `rotate` 3 = 239
-253 `rotate` -64 = 253
-253 `rotate` -32 = 253
-253 `rotate` 32 = 253
-253 `rotate` 64 = 253
-
-254 `rotate` -3 = 223
-254 `rotate` -2 = 191
-254 `rotate` -1 = 127
-254 `rotate` 0 = 254
-254 `rotate` 1 = 253
-254 `rotate` 2 = 251
-254 `rotate` 3 = 247
-254 `rotate` -64 = 254
-254 `rotate` -32 = 254
-254 `rotate` 32 = 254
-254 `rotate` 64 = 254
-
-255 `rotate` -3 = 255
-255 `rotate` -2 = 255
-255 `rotate` -1 = 255
-255 `rotate` 0 = 255
-255 `rotate` 1 = 255
-255 `rotate` 2 = 255
-255 `rotate` 3 = 255
-255 `rotate` -64 = 255
-255 `rotate` -32 = 255
-255 `rotate` 32 = 255
-255 `rotate` 64 = 255
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-0 `rotate` -64 = 0
-0 `rotate` -32 = 0
-0 `rotate` 32 = 0
-0 `rotate` 64 = 0
-
-1 `rotate` -3 = 32
-1 `rotate` -2 = 64
-1 `rotate` -1 = 128
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-1 `rotate` -64 = 1
-1 `rotate` -32 = 1
-1 `rotate` 32 = 1
-1 `rotate` 64 = 1
-
-2 `rotate` -3 = 64
-2 `rotate` -2 = 128
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-2 `rotate` -64 = 2
-2 `rotate` -32 = 2
-2 `rotate` 32 = 2
-2 `rotate` 64 = 2
-
-3 `rotate` -3 = 96
-3 `rotate` -2 = 192
-3 `rotate` -1 = 129
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-3 `rotate` -64 = 3
-3 `rotate` -32 = 3
-3 `rotate` 32 = 3
-3 `rotate` 64 = 3
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
-253 `setBit` 0 = 253
-253 `setBit` 1 = 255
-253 `setBit` 2 = 253
-253 `setBit` 3 = 253
-253 `setBit` 32 = 253
-253 `setBit` 64 = 253
-
-254 `setBit` 0 = 255
-254 `setBit` 1 = 254
-254 `setBit` 2 = 254
-254 `setBit` 3 = 254
-254 `setBit` 32 = 254
-254 `setBit` 64 = 254
-
-255 `setBit` 0 = 255
-255 `setBit` 1 = 255
-255 `setBit` 2 = 255
-255 `setBit` 3 = 255
-255 `setBit` 32 = 255
-255 `setBit` 64 = 255
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
-253 `clearBit` 0 = 252
-253 `clearBit` 1 = 253
-253 `clearBit` 2 = 249
-253 `clearBit` 3 = 245
-253 `clearBit` 32 = 253
-253 `clearBit` 64 = 253
-
-254 `clearBit` 0 = 254
-254 `clearBit` 1 = 252
-254 `clearBit` 2 = 250
-254 `clearBit` 3 = 246
-254 `clearBit` 32 = 254
-254 `clearBit` 64 = 254
-
-255 `clearBit` 0 = 254
-255 `clearBit` 1 = 253
-255 `clearBit` 2 = 251
-255 `clearBit` 3 = 247
-255 `clearBit` 32 = 255
-255 `clearBit` 64 = 255
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
-253 `complementBit` 0 = 252
-253 `complementBit` 1 = 255
-253 `complementBit` 2 = 249
-253 `complementBit` 3 = 245
-253 `complementBit` 32 = 253
-253 `complementBit` 64 = 253
-
-254 `complementBit` 0 = 255
-254 `complementBit` 1 = 252
-254 `complementBit` 2 = 250
-254 `complementBit` 3 = 246
-254 `complementBit` 32 = 254
-254 `complementBit` 64 = 254
-
-255 `complementBit` 0 = 254
-255 `complementBit` 1 = 253
-255 `complementBit` 2 = 251
-255 `complementBit` 3 = 247
-255 `complementBit` 32 = 255
-255 `complementBit` 64 = 255
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
-253 `testBit` 0 = True
-253 `testBit` 1 = False
-253 `testBit` 2 = True
-253 `testBit` 3 = True
-253 `testBit` 32 = False
-253 `testBit` 64 = False
-
-254 `testBit` 0 = False
-254 `testBit` 1 = True
-254 `testBit` 2 = True
-254 `testBit` 3 = True
-254 `testBit` 32 = False
-254 `testBit` 64 = False
-
-255 `testBit` 0 = True
-255 `testBit` 1 = True
-255 `testBit` 2 = True
-255 `testBit` 3 = True
-255 `testBit` 32 = False
-255 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize 253 = 8
-bitSize 254 = 8
-bitSize 255 = 8
-bitSize 0 = 8
-bitSize 1 = 8
-bitSize 2 = 8
-bitSize 3 = 8
-#
-isSigned 253 = False
-isSigned 254 = False
-isSigned 255 = False
-isSigned 0 = False
-isSigned 1 = False
-isSigned 2 = False
-isSigned 3 = False
-#
---------------------------------
---Testing Word16
---------------------------------
-testBounded
-(65535,0,1)
-(65534,65535,0)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[65533,65534,65535,0,1,2,3]
-[65533,65534,65535,0,1,2,3]
-testEq
-65533 == 65533 = True
-65533 == 65534 = False
-65533 == 65535 = False
-65533 == 0 = False
-65533 == 1 = False
-65533 == 2 = False
-65533 == 3 = False
-
-65534 == 65533 = False
-65534 == 65534 = True
-65534 == 65535 = False
-65534 == 0 = False
-65534 == 1 = False
-65534 == 2 = False
-65534 == 3 = False
-
-65535 == 65533 = False
-65535 == 65534 = False
-65535 == 65535 = True
-65535 == 0 = False
-65535 == 1 = False
-65535 == 2 = False
-65535 == 3 = False
-
-0 == 65533 = False
-0 == 65534 = False
-0 == 65535 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == 65533 = False
-1 == 65534 = False
-1 == 65535 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == 65533 = False
-2 == 65534 = False
-2 == 65535 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == 65533 = False
-3 == 65534 = False
-3 == 65535 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
-65533 /= 65533 = False
-65533 /= 65534 = True
-65533 /= 65535 = True
-65533 /= 0 = True
-65533 /= 1 = True
-65533 /= 2 = True
-65533 /= 3 = True
-
-65534 /= 65533 = True
-65534 /= 65534 = False
-65534 /= 65535 = True
-65534 /= 0 = True
-65534 /= 1 = True
-65534 /= 2 = True
-65534 /= 3 = True
-
-65535 /= 65533 = True
-65535 /= 65534 = True
-65535 /= 65535 = False
-65535 /= 0 = True
-65535 /= 1 = True
-65535 /= 2 = True
-65535 /= 3 = True
-
-0 /= 65533 = True
-0 /= 65534 = True
-0 /= 65535 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= 65533 = True
-1 /= 65534 = True
-1 /= 65535 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= 65533 = True
-2 /= 65534 = True
-2 /= 65535 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= 65533 = True
-3 /= 65534 = True
-3 /= 65535 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
-65533 <= 65533 = True
-65533 <= 65534 = True
-65533 <= 65535 = True
-65533 <= 0 = False
-65533 <= 1 = False
-65533 <= 2 = False
-65533 <= 3 = False
-
-65534 <= 65533 = False
-65534 <= 65534 = True
-65534 <= 65535 = True
-65534 <= 0 = False
-65534 <= 1 = False
-65534 <= 2 = False
-65534 <= 3 = False
-
-65535 <= 65533 = False
-65535 <= 65534 = False
-65535 <= 65535 = True
-65535 <= 0 = False
-65535 <= 1 = False
-65535 <= 2 = False
-65535 <= 3 = False
-
-0 <= 65533 = True
-0 <= 65534 = True
-0 <= 65535 = True
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= 65533 = True
-1 <= 65534 = True
-1 <= 65535 = True
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= 65533 = True
-2 <= 65534 = True
-2 <= 65535 = True
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= 65533 = True
-3 <= 65534 = True
-3 <= 65535 = True
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
-65533 < 65533 = False
-65533 < 65534 = True
-65533 < 65535 = True
-65533 < 0 = False
-65533 < 1 = False
-65533 < 2 = False
-65533 < 3 = False
-
-65534 < 65533 = False
-65534 < 65534 = False
-65534 < 65535 = True
-65534 < 0 = False
-65534 < 1 = False
-65534 < 2 = False
-65534 < 3 = False
-
-65535 < 65533 = False
-65535 < 65534 = False
-65535 < 65535 = False
-65535 < 0 = False
-65535 < 1 = False
-65535 < 2 = False
-65535 < 3 = False
-
-0 < 65533 = True
-0 < 65534 = True
-0 < 65535 = True
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < 65533 = True
-1 < 65534 = True
-1 < 65535 = True
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < 65533 = True
-2 < 65534 = True
-2 < 65535 = True
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < 65533 = True
-3 < 65534 = True
-3 < 65535 = True
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
-65533 > 65533 = False
-65533 > 65534 = False
-65533 > 65535 = False
-65533 > 0 = True
-65533 > 1 = True
-65533 > 2 = True
-65533 > 3 = True
-
-65534 > 65533 = True
-65534 > 65534 = False
-65534 > 65535 = False
-65534 > 0 = True
-65534 > 1 = True
-65534 > 2 = True
-65534 > 3 = True
-
-65535 > 65533 = True
-65535 > 65534 = True
-65535 > 65535 = False
-65535 > 0 = True
-65535 > 1 = True
-65535 > 2 = True
-65535 > 3 = True
-
-0 > 65533 = False
-0 > 65534 = False
-0 > 65535 = False
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > 65533 = False
-1 > 65534 = False
-1 > 65535 = False
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > 65533 = False
-2 > 65534 = False
-2 > 65535 = False
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > 65533 = False
-3 > 65534 = False
-3 > 65535 = False
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
-65533 >= 65533 = True
-65533 >= 65534 = False
-65533 >= 65535 = False
-65533 >= 0 = True
-65533 >= 1 = True
-65533 >= 2 = True
-65533 >= 3 = True
-
-65534 >= 65533 = True
-65534 >= 65534 = True
-65534 >= 65535 = False
-65534 >= 0 = True
-65534 >= 1 = True
-65534 >= 2 = True
-65534 >= 3 = True
-
-65535 >= 65533 = True
-65535 >= 65534 = True
-65535 >= 65535 = True
-65535 >= 0 = True
-65535 >= 1 = True
-65535 >= 2 = True
-65535 >= 3 = True
-
-0 >= 65533 = False
-0 >= 65534 = False
-0 >= 65535 = False
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= 65533 = False
-1 >= 65534 = False
-1 >= 65535 = False
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= 65533 = False
-2 >= 65534 = False
-2 >= 65535 = False
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= 65533 = False
-3 >= 65534 = False
-3 >= 65535 = False
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
-65533 `compare` 65533 = EQ
-65533 `compare` 65534 = LT
-65533 `compare` 65535 = LT
-65533 `compare` 0 = GT
-65533 `compare` 1 = GT
-65533 `compare` 2 = GT
-65533 `compare` 3 = GT
-
-65534 `compare` 65533 = GT
-65534 `compare` 65534 = EQ
-65534 `compare` 65535 = LT
-65534 `compare` 0 = GT
-65534 `compare` 1 = GT
-65534 `compare` 2 = GT
-65534 `compare` 3 = GT
-
-65535 `compare` 65533 = GT
-65535 `compare` 65534 = GT
-65535 `compare` 65535 = EQ
-65535 `compare` 0 = GT
-65535 `compare` 1 = GT
-65535 `compare` 2 = GT
-65535 `compare` 3 = GT
-
-0 `compare` 65533 = LT
-0 `compare` 65534 = LT
-0 `compare` 65535 = LT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` 65533 = LT
-1 `compare` 65534 = LT
-1 `compare` 65535 = LT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` 65533 = LT
-2 `compare` 65534 = LT
-2 `compare` 65535 = LT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` 65533 = LT
-3 `compare` 65534 = LT
-3 `compare` 65535 = LT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
-65533 + 65533 = 65530
-65533 + 65534 = 65531
-65533 + 65535 = 65532
-65533 + 0 = 65533
-65533 + 1 = 65534
-65533 + 2 = 65535
-65533 + 3 = 0
-
-65534 + 65533 = 65531
-65534 + 65534 = 65532
-65534 + 65535 = 65533
-65534 + 0 = 65534
-65534 + 1 = 65535
-65534 + 2 = 0
-65534 + 3 = 1
-
-65535 + 65533 = 65532
-65535 + 65534 = 65533
-65535 + 65535 = 65534
-65535 + 0 = 65535
-65535 + 1 = 0
-65535 + 2 = 1
-65535 + 3 = 2
-
-0 + 65533 = 65533
-0 + 65534 = 65534
-0 + 65535 = 65535
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + 65533 = 65534
-1 + 65534 = 65535
-1 + 65535 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + 65533 = 65535
-2 + 65534 = 0
-2 + 65535 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + 65533 = 0
-3 + 65534 = 1
-3 + 65535 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
-65533 - 65533 = 0
-65533 - 65534 = 65535
-65533 - 65535 = 65534
-65533 - 0 = 65533
-65533 - 1 = 65532
-65533 - 2 = 65531
-65533 - 3 = 65530
-
-65534 - 65533 = 1
-65534 - 65534 = 0
-65534 - 65535 = 65535
-65534 - 0 = 65534
-65534 - 1 = 65533
-65534 - 2 = 65532
-65534 - 3 = 65531
-
-65535 - 65533 = 2
-65535 - 65534 = 1
-65535 - 65535 = 0
-65535 - 0 = 65535
-65535 - 1 = 65534
-65535 - 2 = 65533
-65535 - 3 = 65532
-
-0 - 65533 = 3
-0 - 65534 = 2
-0 - 65535 = 1
-0 - 0 = 0
-0 - 1 = 65535
-0 - 2 = 65534
-0 - 3 = 65533
-
-1 - 65533 = 4
-1 - 65534 = 3
-1 - 65535 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = 65535
-1 - 3 = 65534
-
-2 - 65533 = 5
-2 - 65534 = 4
-2 - 65535 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = 65535
-
-3 - 65533 = 6
-3 - 65534 = 5
-3 - 65535 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
-65533 * 65533 = 9
-65533 * 65534 = 6
-65533 * 65535 = 3
-65533 * 0 = 0
-65533 * 1 = 65533
-65533 * 2 = 65530
-65533 * 3 = 65527
-
-65534 * 65533 = 6
-65534 * 65534 = 4
-65534 * 65535 = 2
-65534 * 0 = 0
-65534 * 1 = 65534
-65534 * 2 = 65532
-65534 * 3 = 65530
-
-65535 * 65533 = 3
-65535 * 65534 = 2
-65535 * 65535 = 1
-65535 * 0 = 0
-65535 * 1 = 65535
-65535 * 2 = 65534
-65535 * 3 = 65533
-
-0 * 65533 = 0
-0 * 65534 = 0
-0 * 65535 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * 65533 = 65533
-1 * 65534 = 65534
-1 * 65535 = 65535
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * 65533 = 65530
-2 * 65534 = 65532
-2 * 65535 = 65534
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * 65533 = 65527
-3 * 65534 = 65530
-3 * 65535 = 65533
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate 65533 = 3
-negate 65534 = 2
-negate 65535 = 1
-negate 0 = 0
-negate 1 = 65535
-negate 2 = 65534
-negate 3 = 65533
-#
-testReal
-toRational 65533 = 65533 % 1
-toRational 65534 = 65534 % 1
-toRational 65535 = 65535 % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
-65533 `divMod` 65533 = (1,0)
-65533 `divMod` 65534 = (0,65533)
-65533 `divMod` 65535 = (0,65533)
-65533 `divMod` 0 = divide by zero
-65533 `divMod` 1 = (65533,0)
-65533 `divMod` 2 = (32766,1)
-65533 `divMod` 3 = (21844,1)
-
-65534 `divMod` 65533 = (1,1)
-65534 `divMod` 65534 = (1,0)
-65534 `divMod` 65535 = (0,65534)
-65534 `divMod` 0 = divide by zero
-65534 `divMod` 1 = (65534,0)
-65534 `divMod` 2 = (32767,0)
-65534 `divMod` 3 = (21844,2)
-
-65535 `divMod` 65533 = (1,2)
-65535 `divMod` 65534 = (1,1)
-65535 `divMod` 65535 = (1,0)
-65535 `divMod` 0 = divide by zero
-65535 `divMod` 1 = (65535,0)
-65535 `divMod` 2 = (32767,1)
-65535 `divMod` 3 = (21845,0)
-
-0 `divMod` 65533 = (0,0)
-0 `divMod` 65534 = (0,0)
-0 `divMod` 65535 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` 65533 = (0,1)
-1 `divMod` 65534 = (0,1)
-1 `divMod` 65535 = (0,1)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` 65533 = (0,2)
-2 `divMod` 65534 = (0,2)
-2 `divMod` 65535 = (0,2)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` 65533 = (0,3)
-3 `divMod` 65534 = (0,3)
-3 `divMod` 65535 = (0,3)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
-65533 `div` 65533 = 1
-65533 `div` 65534 = 0
-65533 `div` 65535 = 0
-65533 `div` 0 = divide by zero
-65533 `div` 1 = 65533
-65533 `div` 2 = 32766
-65533 `div` 3 = 21844
-
-65534 `div` 65533 = 1
-65534 `div` 65534 = 1
-65534 `div` 65535 = 0
-65534 `div` 0 = divide by zero
-65534 `div` 1 = 65534
-65534 `div` 2 = 32767
-65534 `div` 3 = 21844
-
-65535 `div` 65533 = 1
-65535 `div` 65534 = 1
-65535 `div` 65535 = 1
-65535 `div` 0 = divide by zero
-65535 `div` 1 = 65535
-65535 `div` 2 = 32767
-65535 `div` 3 = 21845
-
-0 `div` 65533 = 0
-0 `div` 65534 = 0
-0 `div` 65535 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` 65533 = 0
-1 `div` 65534 = 0
-1 `div` 65535 = 0
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` 65533 = 0
-2 `div` 65534 = 0
-2 `div` 65535 = 0
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` 65533 = 0
-3 `div` 65534 = 0
-3 `div` 65535 = 0
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
-65533 `mod` 65533 = 0
-65533 `mod` 65534 = 65533
-65533 `mod` 65535 = 65533
-65533 `mod` 0 = divide by zero
-65533 `mod` 1 = 0
-65533 `mod` 2 = 1
-65533 `mod` 3 = 1
-
-65534 `mod` 65533 = 1
-65534 `mod` 65534 = 0
-65534 `mod` 65535 = 65534
-65534 `mod` 0 = divide by zero
-65534 `mod` 1 = 0
-65534 `mod` 2 = 0
-65534 `mod` 3 = 2
-
-65535 `mod` 65533 = 2
-65535 `mod` 65534 = 1
-65535 `mod` 65535 = 0
-65535 `mod` 0 = divide by zero
-65535 `mod` 1 = 0
-65535 `mod` 2 = 1
-65535 `mod` 3 = 0
-
-0 `mod` 65533 = 0
-0 `mod` 65534 = 0
-0 `mod` 65535 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` 65533 = 1
-1 `mod` 65534 = 1
-1 `mod` 65535 = 1
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` 65533 = 2
-2 `mod` 65534 = 2
-2 `mod` 65535 = 2
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` 65533 = 3
-3 `mod` 65534 = 3
-3 `mod` 65535 = 3
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
-65533 `quotRem` 65533 = (1,0)
-65533 `quotRem` 65534 = (0,65533)
-65533 `quotRem` 65535 = (0,65533)
-65533 `quotRem` 0 = divide by zero
-65533 `quotRem` 1 = (65533,0)
-65533 `quotRem` 2 = (32766,1)
-65533 `quotRem` 3 = (21844,1)
-
-65534 `quotRem` 65533 = (1,1)
-65534 `quotRem` 65534 = (1,0)
-65534 `quotRem` 65535 = (0,65534)
-65534 `quotRem` 0 = divide by zero
-65534 `quotRem` 1 = (65534,0)
-65534 `quotRem` 2 = (32767,0)
-65534 `quotRem` 3 = (21844,2)
-
-65535 `quotRem` 65533 = (1,2)
-65535 `quotRem` 65534 = (1,1)
-65535 `quotRem` 65535 = (1,0)
-65535 `quotRem` 0 = divide by zero
-65535 `quotRem` 1 = (65535,0)
-65535 `quotRem` 2 = (32767,1)
-65535 `quotRem` 3 = (21845,0)
-
-0 `quotRem` 65533 = (0,0)
-0 `quotRem` 65534 = (0,0)
-0 `quotRem` 65535 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` 65533 = (0,1)
-1 `quotRem` 65534 = (0,1)
-1 `quotRem` 65535 = (0,1)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` 65533 = (0,2)
-2 `quotRem` 65534 = (0,2)
-2 `quotRem` 65535 = (0,2)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` 65533 = (0,3)
-3 `quotRem` 65534 = (0,3)
-3 `quotRem` 65535 = (0,3)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
-65533 `quot` 65533 = 1
-65533 `quot` 65534 = 0
-65533 `quot` 65535 = 0
-65533 `quot` 0 = divide by zero
-65533 `quot` 1 = 65533
-65533 `quot` 2 = 32766
-65533 `quot` 3 = 21844
-
-65534 `quot` 65533 = 1
-65534 `quot` 65534 = 1
-65534 `quot` 65535 = 0
-65534 `quot` 0 = divide by zero
-65534 `quot` 1 = 65534
-65534 `quot` 2 = 32767
-65534 `quot` 3 = 21844
-
-65535 `quot` 65533 = 1
-65535 `quot` 65534 = 1
-65535 `quot` 65535 = 1
-65535 `quot` 0 = divide by zero
-65535 `quot` 1 = 65535
-65535 `quot` 2 = 32767
-65535 `quot` 3 = 21845
-
-0 `quot` 65533 = 0
-0 `quot` 65534 = 0
-0 `quot` 65535 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` 65533 = 0
-1 `quot` 65534 = 0
-1 `quot` 65535 = 0
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` 65533 = 0
-2 `quot` 65534 = 0
-2 `quot` 65535 = 0
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` 65533 = 0
-3 `quot` 65534 = 0
-3 `quot` 65535 = 0
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
-65533 `rem` 65533 = 0
-65533 `rem` 65534 = 65533
-65533 `rem` 65535 = 65533
-65533 `rem` 0 = divide by zero
-65533 `rem` 1 = 0
-65533 `rem` 2 = 1
-65533 `rem` 3 = 1
-
-65534 `rem` 65533 = 1
-65534 `rem` 65534 = 0
-65534 `rem` 65535 = 65534
-65534 `rem` 0 = divide by zero
-65534 `rem` 1 = 0
-65534 `rem` 2 = 0
-65534 `rem` 3 = 2
-
-65535 `rem` 65533 = 2
-65535 `rem` 65534 = 1
-65535 `rem` 65535 = 0
-65535 `rem` 0 = divide by zero
-65535 `rem` 1 = 0
-65535 `rem` 2 = 1
-65535 `rem` 3 = 0
-
-0 `rem` 65533 = 0
-0 `rem` 65534 = 0
-0 `rem` 65535 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` 65533 = 1
-1 `rem` 65534 = 1
-1 `rem` 65535 = 1
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` 65533 = 2
-2 `rem` 65534 = 2
-2 `rem` 65535 = 2
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` 65533 = 3
-3 `rem` 65534 = 3
-3 `rem` 65535 = 3
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [0,0,65535]
-Int : [0,0,65535]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [0,0,65535]
-Int64 : [0,0,65535]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [0,0,65535]
-Word64 : [0,0,65535]
-testBits
-65533 .&. 65533 = 65533
-65533 .&. 65534 = 65532
-65533 .&. 65535 = 65533
-65533 .&. 0 = 0
-65533 .&. 1 = 1
-65533 .&. 2 = 0
-65533 .&. 3 = 1
-
-65534 .&. 65533 = 65532
-65534 .&. 65534 = 65534
-65534 .&. 65535 = 65534
-65534 .&. 0 = 0
-65534 .&. 1 = 0
-65534 .&. 2 = 2
-65534 .&. 3 = 2
-
-65535 .&. 65533 = 65533
-65535 .&. 65534 = 65534
-65535 .&. 65535 = 65535
-65535 .&. 0 = 0
-65535 .&. 1 = 1
-65535 .&. 2 = 2
-65535 .&. 3 = 3
-
-0 .&. 65533 = 0
-0 .&. 65534 = 0
-0 .&. 65535 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. 65533 = 1
-1 .&. 65534 = 0
-1 .&. 65535 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. 65533 = 0
-2 .&. 65534 = 2
-2 .&. 65535 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. 65533 = 1
-3 .&. 65534 = 2
-3 .&. 65535 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
-65533 .|. 65533 = 65533
-65533 .|. 65534 = 65535
-65533 .|. 65535 = 65535
-65533 .|. 0 = 65533
-65533 .|. 1 = 65533
-65533 .|. 2 = 65535
-65533 .|. 3 = 65535
-
-65534 .|. 65533 = 65535
-65534 .|. 65534 = 65534
-65534 .|. 65535 = 65535
-65534 .|. 0 = 65534
-65534 .|. 1 = 65535
-65534 .|. 2 = 65534
-65534 .|. 3 = 65535
-
-65535 .|. 65533 = 65535
-65535 .|. 65534 = 65535
-65535 .|. 65535 = 65535
-65535 .|. 0 = 65535
-65535 .|. 1 = 65535
-65535 .|. 2 = 65535
-65535 .|. 3 = 65535
-
-0 .|. 65533 = 65533
-0 .|. 65534 = 65534
-0 .|. 65535 = 65535
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. 65533 = 65533
-1 .|. 65534 = 65535
-1 .|. 65535 = 65535
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. 65533 = 65535
-2 .|. 65534 = 65534
-2 .|. 65535 = 65535
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. 65533 = 65535
-3 .|. 65534 = 65535
-3 .|. 65535 = 65535
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
-65533 `xor` 65533 = 0
-65533 `xor` 65534 = 3
-65533 `xor` 65535 = 2
-65533 `xor` 0 = 65533
-65533 `xor` 1 = 65532
-65533 `xor` 2 = 65535
-65533 `xor` 3 = 65534
-
-65534 `xor` 65533 = 3
-65534 `xor` 65534 = 0
-65534 `xor` 65535 = 1
-65534 `xor` 0 = 65534
-65534 `xor` 1 = 65535
-65534 `xor` 2 = 65532
-65534 `xor` 3 = 65533
-
-65535 `xor` 65533 = 2
-65535 `xor` 65534 = 1
-65535 `xor` 65535 = 0
-65535 `xor` 0 = 65535
-65535 `xor` 1 = 65534
-65535 `xor` 2 = 65533
-65535 `xor` 3 = 65532
-
-0 `xor` 65533 = 65533
-0 `xor` 65534 = 65534
-0 `xor` 65535 = 65535
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` 65533 = 65532
-1 `xor` 65534 = 65535
-1 `xor` 65535 = 65534
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` 65533 = 65535
-2 `xor` 65534 = 65532
-2 `xor` 65535 = 65533
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` 65533 = 65534
-3 `xor` 65534 = 65533
-3 `xor` 65535 = 65532
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement 65533 = 2
-complement 65534 = 1
-complement 65535 = 0
-complement 0 = 65535
-complement 1 = 65534
-complement 2 = 65533
-complement 3 = 65532
-#
-65533 `shiftL` 0 = 65533
-65533 `shiftL` 1 = 65530
-65533 `shiftL` 2 = 65524
-65533 `shiftL` 3 = 65512
-65533 `shiftL` 32 = 0
-65533 `shiftL` 64 = 0
-
-65534 `shiftL` 0 = 65534
-65534 `shiftL` 1 = 65532
-65534 `shiftL` 2 = 65528
-65534 `shiftL` 3 = 65520
-65534 `shiftL` 32 = 0
-65534 `shiftL` 64 = 0
-
-65535 `shiftL` 0 = 65535
-65535 `shiftL` 1 = 65534
-65535 `shiftL` 2 = 65532
-65535 `shiftL` 3 = 65528
-65535 `shiftL` 32 = 0
-65535 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
-65533 `shiftR` 0 = 65533
-65533 `shiftR` 1 = 32766
-65533 `shiftR` 2 = 16383
-65533 `shiftR` 3 = 8191
-65533 `shiftR` 32 = 0
-65533 `shiftR` 64 = 0
-
-65534 `shiftR` 0 = 65534
-65534 `shiftR` 1 = 32767
-65534 `shiftR` 2 = 16383
-65534 `shiftR` 3 = 8191
-65534 `shiftR` 32 = 0
-65534 `shiftR` 64 = 0
-
-65535 `shiftR` 0 = 65535
-65535 `shiftR` 1 = 32767
-65535 `shiftR` 2 = 16383
-65535 `shiftR` 3 = 8191
-65535 `shiftR` 32 = 0
-65535 `shiftR` 64 = 0
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
-65533 `rotate` -3 = 49151
-65533 `rotate` -2 = 32767
-65533 `rotate` -1 = 65534
-65533 `rotate` 0 = 65533
-65533 `rotate` 1 = 65531
-65533 `rotate` 2 = 65527
-65533 `rotate` 3 = 65519
-65533 `rotate` -64 = 65533
-65533 `rotate` -32 = 65533
-65533 `rotate` 32 = 65533
-65533 `rotate` 64 = 65533
-
-65534 `rotate` -3 = 57343
-65534 `rotate` -2 = 49151
-65534 `rotate` -1 = 32767
-65534 `rotate` 0 = 65534
-65534 `rotate` 1 = 65533
-65534 `rotate` 2 = 65531
-65534 `rotate` 3 = 65527
-65534 `rotate` -64 = 65534
-65534 `rotate` -32 = 65534
-65534 `rotate` 32 = 65534
-65534 `rotate` 64 = 65534
-
-65535 `rotate` -3 = 65535
-65535 `rotate` -2 = 65535
-65535 `rotate` -1 = 65535
-65535 `rotate` 0 = 65535
-65535 `rotate` 1 = 65535
-65535 `rotate` 2 = 65535
-65535 `rotate` 3 = 65535
-65535 `rotate` -64 = 65535
-65535 `rotate` -32 = 65535
-65535 `rotate` 32 = 65535
-65535 `rotate` 64 = 65535
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-0 `rotate` -64 = 0
-0 `rotate` -32 = 0
-0 `rotate` 32 = 0
-0 `rotate` 64 = 0
-
-1 `rotate` -3 = 8192
-1 `rotate` -2 = 16384
-1 `rotate` -1 = 32768
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-1 `rotate` -64 = 1
-1 `rotate` -32 = 1
-1 `rotate` 32 = 1
-1 `rotate` 64 = 1
-
-2 `rotate` -3 = 16384
-2 `rotate` -2 = 32768
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-2 `rotate` -64 = 2
-2 `rotate` -32 = 2
-2 `rotate` 32 = 2
-2 `rotate` 64 = 2
-
-3 `rotate` -3 = 24576
-3 `rotate` -2 = 49152
-3 `rotate` -1 = 32769
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-3 `rotate` -64 = 3
-3 `rotate` -32 = 3
-3 `rotate` 32 = 3
-3 `rotate` 64 = 3
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
-65533 `setBit` 0 = 65533
-65533 `setBit` 1 = 65535
-65533 `setBit` 2 = 65533
-65533 `setBit` 3 = 65533
-65533 `setBit` 32 = 65533
-65533 `setBit` 64 = 65533
-
-65534 `setBit` 0 = 65535
-65534 `setBit` 1 = 65534
-65534 `setBit` 2 = 65534
-65534 `setBit` 3 = 65534
-65534 `setBit` 32 = 65534
-65534 `setBit` 64 = 65534
-
-65535 `setBit` 0 = 65535
-65535 `setBit` 1 = 65535
-65535 `setBit` 2 = 65535
-65535 `setBit` 3 = 65535
-65535 `setBit` 32 = 65535
-65535 `setBit` 64 = 65535
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
-65533 `clearBit` 0 = 65532
-65533 `clearBit` 1 = 65533
-65533 `clearBit` 2 = 65529
-65533 `clearBit` 3 = 65525
-65533 `clearBit` 32 = 65533
-65533 `clearBit` 64 = 65533
-
-65534 `clearBit` 0 = 65534
-65534 `clearBit` 1 = 65532
-65534 `clearBit` 2 = 65530
-65534 `clearBit` 3 = 65526
-65534 `clearBit` 32 = 65534
-65534 `clearBit` 64 = 65534
-
-65535 `clearBit` 0 = 65534
-65535 `clearBit` 1 = 65533
-65535 `clearBit` 2 = 65531
-65535 `clearBit` 3 = 65527
-65535 `clearBit` 32 = 65535
-65535 `clearBit` 64 = 65535
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
-65533 `complementBit` 0 = 65532
-65533 `complementBit` 1 = 65535
-65533 `complementBit` 2 = 65529
-65533 `complementBit` 3 = 65525
-65533 `complementBit` 32 = 65533
-65533 `complementBit` 64 = 65533
-
-65534 `complementBit` 0 = 65535
-65534 `complementBit` 1 = 65532
-65534 `complementBit` 2 = 65530
-65534 `complementBit` 3 = 65526
-65534 `complementBit` 32 = 65534
-65534 `complementBit` 64 = 65534
-
-65535 `complementBit` 0 = 65534
-65535 `complementBit` 1 = 65533
-65535 `complementBit` 2 = 65531
-65535 `complementBit` 3 = 65527
-65535 `complementBit` 32 = 65535
-65535 `complementBit` 64 = 65535
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
-65533 `testBit` 0 = True
-65533 `testBit` 1 = False
-65533 `testBit` 2 = True
-65533 `testBit` 3 = True
-65533 `testBit` 32 = False
-65533 `testBit` 64 = False
-
-65534 `testBit` 0 = False
-65534 `testBit` 1 = True
-65534 `testBit` 2 = True
-65534 `testBit` 3 = True
-65534 `testBit` 32 = False
-65534 `testBit` 64 = False
-
-65535 `testBit` 0 = True
-65535 `testBit` 1 = True
-65535 `testBit` 2 = True
-65535 `testBit` 3 = True
-65535 `testBit` 32 = False
-65535 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize 65533 = 16
-bitSize 65534 = 16
-bitSize 65535 = 16
-bitSize 0 = 16
-bitSize 1 = 16
-bitSize 2 = 16
-bitSize 3 = 16
-#
-isSigned 65533 = False
-isSigned 65534 = False
-isSigned 65535 = False
-isSigned 0 = False
-isSigned 1 = False
-isSigned 2 = False
-isSigned 3 = False
-#
---------------------------------
---Testing Word32
---------------------------------
-testBounded
-(4294967295,0,1)
-(4294967294,4294967295,0)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[4294967293,4294967294,4294967295,0,1,2,3]
-[4294967293,4294967294,4294967295,0,1,2,3]
-testEq
-4294967293 == 4294967293 = True
-4294967293 == 4294967294 = False
-4294967293 == 4294967295 = False
-4294967293 == 0 = False
-4294967293 == 1 = False
-4294967293 == 2 = False
-4294967293 == 3 = False
-
-4294967294 == 4294967293 = False
-4294967294 == 4294967294 = True
-4294967294 == 4294967295 = False
-4294967294 == 0 = False
-4294967294 == 1 = False
-4294967294 == 2 = False
-4294967294 == 3 = False
-
-4294967295 == 4294967293 = False
-4294967295 == 4294967294 = False
-4294967295 == 4294967295 = True
-4294967295 == 0 = False
-4294967295 == 1 = False
-4294967295 == 2 = False
-4294967295 == 3 = False
-
-0 == 4294967293 = False
-0 == 4294967294 = False
-0 == 4294967295 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == 4294967293 = False
-1 == 4294967294 = False
-1 == 4294967295 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == 4294967293 = False
-2 == 4294967294 = False
-2 == 4294967295 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == 4294967293 = False
-3 == 4294967294 = False
-3 == 4294967295 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
-4294967293 /= 4294967293 = False
-4294967293 /= 4294967294 = True
-4294967293 /= 4294967295 = True
-4294967293 /= 0 = True
-4294967293 /= 1 = True
-4294967293 /= 2 = True
-4294967293 /= 3 = True
-
-4294967294 /= 4294967293 = True
-4294967294 /= 4294967294 = False
-4294967294 /= 4294967295 = True
-4294967294 /= 0 = True
-4294967294 /= 1 = True
-4294967294 /= 2 = True
-4294967294 /= 3 = True
-
-4294967295 /= 4294967293 = True
-4294967295 /= 4294967294 = True
-4294967295 /= 4294967295 = False
-4294967295 /= 0 = True
-4294967295 /= 1 = True
-4294967295 /= 2 = True
-4294967295 /= 3 = True
-
-0 /= 4294967293 = True
-0 /= 4294967294 = True
-0 /= 4294967295 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= 4294967293 = True
-1 /= 4294967294 = True
-1 /= 4294967295 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= 4294967293 = True
-2 /= 4294967294 = True
-2 /= 4294967295 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= 4294967293 = True
-3 /= 4294967294 = True
-3 /= 4294967295 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
-4294967293 <= 4294967293 = True
-4294967293 <= 4294967294 = True
-4294967293 <= 4294967295 = True
-4294967293 <= 0 = False
-4294967293 <= 1 = False
-4294967293 <= 2 = False
-4294967293 <= 3 = False
-
-4294967294 <= 4294967293 = False
-4294967294 <= 4294967294 = True
-4294967294 <= 4294967295 = True
-4294967294 <= 0 = False
-4294967294 <= 1 = False
-4294967294 <= 2 = False
-4294967294 <= 3 = False
-
-4294967295 <= 4294967293 = False
-4294967295 <= 4294967294 = False
-4294967295 <= 4294967295 = True
-4294967295 <= 0 = False
-4294967295 <= 1 = False
-4294967295 <= 2 = False
-4294967295 <= 3 = False
-
-0 <= 4294967293 = True
-0 <= 4294967294 = True
-0 <= 4294967295 = True
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= 4294967293 = True
-1 <= 4294967294 = True
-1 <= 4294967295 = True
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= 4294967293 = True
-2 <= 4294967294 = True
-2 <= 4294967295 = True
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= 4294967293 = True
-3 <= 4294967294 = True
-3 <= 4294967295 = True
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
-4294967293 < 4294967293 = False
-4294967293 < 4294967294 = True
-4294967293 < 4294967295 = True
-4294967293 < 0 = False
-4294967293 < 1 = False
-4294967293 < 2 = False
-4294967293 < 3 = False
-
-4294967294 < 4294967293 = False
-4294967294 < 4294967294 = False
-4294967294 < 4294967295 = True
-4294967294 < 0 = False
-4294967294 < 1 = False
-4294967294 < 2 = False
-4294967294 < 3 = False
-
-4294967295 < 4294967293 = False
-4294967295 < 4294967294 = False
-4294967295 < 4294967295 = False
-4294967295 < 0 = False
-4294967295 < 1 = False
-4294967295 < 2 = False
-4294967295 < 3 = False
-
-0 < 4294967293 = True
-0 < 4294967294 = True
-0 < 4294967295 = True
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < 4294967293 = True
-1 < 4294967294 = True
-1 < 4294967295 = True
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < 4294967293 = True
-2 < 4294967294 = True
-2 < 4294967295 = True
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < 4294967293 = True
-3 < 4294967294 = True
-3 < 4294967295 = True
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
-4294967293 > 4294967293 = False
-4294967293 > 4294967294 = False
-4294967293 > 4294967295 = False
-4294967293 > 0 = True
-4294967293 > 1 = True
-4294967293 > 2 = True
-4294967293 > 3 = True
-
-4294967294 > 4294967293 = True
-4294967294 > 4294967294 = False
-4294967294 > 4294967295 = False
-4294967294 > 0 = True
-4294967294 > 1 = True
-4294967294 > 2 = True
-4294967294 > 3 = True
-
-4294967295 > 4294967293 = True
-4294967295 > 4294967294 = True
-4294967295 > 4294967295 = False
-4294967295 > 0 = True
-4294967295 > 1 = True
-4294967295 > 2 = True
-4294967295 > 3 = True
-
-0 > 4294967293 = False
-0 > 4294967294 = False
-0 > 4294967295 = False
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > 4294967293 = False
-1 > 4294967294 = False
-1 > 4294967295 = False
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > 4294967293 = False
-2 > 4294967294 = False
-2 > 4294967295 = False
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > 4294967293 = False
-3 > 4294967294 = False
-3 > 4294967295 = False
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
-4294967293 >= 4294967293 = True
-4294967293 >= 4294967294 = False
-4294967293 >= 4294967295 = False
-4294967293 >= 0 = True
-4294967293 >= 1 = True
-4294967293 >= 2 = True
-4294967293 >= 3 = True
-
-4294967294 >= 4294967293 = True
-4294967294 >= 4294967294 = True
-4294967294 >= 4294967295 = False
-4294967294 >= 0 = True
-4294967294 >= 1 = True
-4294967294 >= 2 = True
-4294967294 >= 3 = True
-
-4294967295 >= 4294967293 = True
-4294967295 >= 4294967294 = True
-4294967295 >= 4294967295 = True
-4294967295 >= 0 = True
-4294967295 >= 1 = True
-4294967295 >= 2 = True
-4294967295 >= 3 = True
-
-0 >= 4294967293 = False
-0 >= 4294967294 = False
-0 >= 4294967295 = False
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= 4294967293 = False
-1 >= 4294967294 = False
-1 >= 4294967295 = False
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= 4294967293 = False
-2 >= 4294967294 = False
-2 >= 4294967295 = False
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= 4294967293 = False
-3 >= 4294967294 = False
-3 >= 4294967295 = False
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
-4294967293 `compare` 4294967293 = EQ
-4294967293 `compare` 4294967294 = LT
-4294967293 `compare` 4294967295 = LT
-4294967293 `compare` 0 = GT
-4294967293 `compare` 1 = GT
-4294967293 `compare` 2 = GT
-4294967293 `compare` 3 = GT
-
-4294967294 `compare` 4294967293 = GT
-4294967294 `compare` 4294967294 = EQ
-4294967294 `compare` 4294967295 = LT
-4294967294 `compare` 0 = GT
-4294967294 `compare` 1 = GT
-4294967294 `compare` 2 = GT
-4294967294 `compare` 3 = GT
-
-4294967295 `compare` 4294967293 = GT
-4294967295 `compare` 4294967294 = GT
-4294967295 `compare` 4294967295 = EQ
-4294967295 `compare` 0 = GT
-4294967295 `compare` 1 = GT
-4294967295 `compare` 2 = GT
-4294967295 `compare` 3 = GT
-
-0 `compare` 4294967293 = LT
-0 `compare` 4294967294 = LT
-0 `compare` 4294967295 = LT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` 4294967293 = LT
-1 `compare` 4294967294 = LT
-1 `compare` 4294967295 = LT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` 4294967293 = LT
-2 `compare` 4294967294 = LT
-2 `compare` 4294967295 = LT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` 4294967293 = LT
-3 `compare` 4294967294 = LT
-3 `compare` 4294967295 = LT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
-4294967293 + 4294967293 = 4294967290
-4294967293 + 4294967294 = 4294967291
-4294967293 + 4294967295 = 4294967292
-4294967293 + 0 = 4294967293
-4294967293 + 1 = 4294967294
-4294967293 + 2 = 4294967295
-4294967293 + 3 = 0
-
-4294967294 + 4294967293 = 4294967291
-4294967294 + 4294967294 = 4294967292
-4294967294 + 4294967295 = 4294967293
-4294967294 + 0 = 4294967294
-4294967294 + 1 = 4294967295
-4294967294 + 2 = 0
-4294967294 + 3 = 1
-
-4294967295 + 4294967293 = 4294967292
-4294967295 + 4294967294 = 4294967293
-4294967295 + 4294967295 = 4294967294
-4294967295 + 0 = 4294967295
-4294967295 + 1 = 0
-4294967295 + 2 = 1
-4294967295 + 3 = 2
-
-0 + 4294967293 = 4294967293
-0 + 4294967294 = 4294967294
-0 + 4294967295 = 4294967295
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + 4294967293 = 4294967294
-1 + 4294967294 = 4294967295
-1 + 4294967295 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + 4294967293 = 4294967295
-2 + 4294967294 = 0
-2 + 4294967295 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + 4294967293 = 0
-3 + 4294967294 = 1
-3 + 4294967295 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
-4294967293 - 4294967293 = 0
-4294967293 - 4294967294 = 4294967295
-4294967293 - 4294967295 = 4294967294
-4294967293 - 0 = 4294967293
-4294967293 - 1 = 4294967292
-4294967293 - 2 = 4294967291
-4294967293 - 3 = 4294967290
-
-4294967294 - 4294967293 = 1
-4294967294 - 4294967294 = 0
-4294967294 - 4294967295 = 4294967295
-4294967294 - 0 = 4294967294
-4294967294 - 1 = 4294967293
-4294967294 - 2 = 4294967292
-4294967294 - 3 = 4294967291
-
-4294967295 - 4294967293 = 2
-4294967295 - 4294967294 = 1
-4294967295 - 4294967295 = 0
-4294967295 - 0 = 4294967295
-4294967295 - 1 = 4294967294
-4294967295 - 2 = 4294967293
-4294967295 - 3 = 4294967292
-
-0 - 4294967293 = 3
-0 - 4294967294 = 2
-0 - 4294967295 = 1
-0 - 0 = 0
-0 - 1 = 4294967295
-0 - 2 = 4294967294
-0 - 3 = 4294967293
-
-1 - 4294967293 = 4
-1 - 4294967294 = 3
-1 - 4294967295 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = 4294967295
-1 - 3 = 4294967294
-
-2 - 4294967293 = 5
-2 - 4294967294 = 4
-2 - 4294967295 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = 4294967295
-
-3 - 4294967293 = 6
-3 - 4294967294 = 5
-3 - 4294967295 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
-4294967293 * 4294967293 = 9
-4294967293 * 4294967294 = 6
-4294967293 * 4294967295 = 3
-4294967293 * 0 = 0
-4294967293 * 1 = 4294967293
-4294967293 * 2 = 4294967290
-4294967293 * 3 = 4294967287
-
-4294967294 * 4294967293 = 6
-4294967294 * 4294967294 = 4
-4294967294 * 4294967295 = 2
-4294967294 * 0 = 0
-4294967294 * 1 = 4294967294
-4294967294 * 2 = 4294967292
-4294967294 * 3 = 4294967290
-
-4294967295 * 4294967293 = 3
-4294967295 * 4294967294 = 2
-4294967295 * 4294967295 = 1
-4294967295 * 0 = 0
-4294967295 * 1 = 4294967295
-4294967295 * 2 = 4294967294
-4294967295 * 3 = 4294967293
-
-0 * 4294967293 = 0
-0 * 4294967294 = 0
-0 * 4294967295 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * 4294967293 = 4294967293
-1 * 4294967294 = 4294967294
-1 * 4294967295 = 4294967295
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * 4294967293 = 4294967290
-2 * 4294967294 = 4294967292
-2 * 4294967295 = 4294967294
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * 4294967293 = 4294967287
-3 * 4294967294 = 4294967290
-3 * 4294967295 = 4294967293
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate 4294967293 = 3
-negate 4294967294 = 2
-negate 4294967295 = 1
-negate 0 = 0
-negate 1 = 4294967295
-negate 2 = 4294967294
-negate 3 = 4294967293
-#
-testReal
-toRational 4294967293 = 4294967293 % 1
-toRational 4294967294 = 4294967294 % 1
-toRational 4294967295 = 4294967295 % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
-4294967293 `divMod` 4294967293 = (1,0)
-4294967293 `divMod` 4294967294 = (0,4294967293)
-4294967293 `divMod` 4294967295 = (0,4294967293)
-4294967293 `divMod` 0 = divide by zero
-4294967293 `divMod` 1 = (4294967293,0)
-4294967293 `divMod` 2 = (2147483646,1)
-4294967293 `divMod` 3 = (1431655764,1)
-
-4294967294 `divMod` 4294967293 = (1,1)
-4294967294 `divMod` 4294967294 = (1,0)
-4294967294 `divMod` 4294967295 = (0,4294967294)
-4294967294 `divMod` 0 = divide by zero
-4294967294 `divMod` 1 = (4294967294,0)
-4294967294 `divMod` 2 = (2147483647,0)
-4294967294 `divMod` 3 = (1431655764,2)
-
-4294967295 `divMod` 4294967293 = (1,2)
-4294967295 `divMod` 4294967294 = (1,1)
-4294967295 `divMod` 4294967295 = (1,0)
-4294967295 `divMod` 0 = divide by zero
-4294967295 `divMod` 1 = (4294967295,0)
-4294967295 `divMod` 2 = (2147483647,1)
-4294967295 `divMod` 3 = (1431655765,0)
-
-0 `divMod` 4294967293 = (0,0)
-0 `divMod` 4294967294 = (0,0)
-0 `divMod` 4294967295 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` 4294967293 = (0,1)
-1 `divMod` 4294967294 = (0,1)
-1 `divMod` 4294967295 = (0,1)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` 4294967293 = (0,2)
-2 `divMod` 4294967294 = (0,2)
-2 `divMod` 4294967295 = (0,2)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` 4294967293 = (0,3)
-3 `divMod` 4294967294 = (0,3)
-3 `divMod` 4294967295 = (0,3)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
-4294967293 `div` 4294967293 = 1
-4294967293 `div` 4294967294 = 0
-4294967293 `div` 4294967295 = 0
-4294967293 `div` 0 = divide by zero
-4294967293 `div` 1 = 4294967293
-4294967293 `div` 2 = 2147483646
-4294967293 `div` 3 = 1431655764
-
-4294967294 `div` 4294967293 = 1
-4294967294 `div` 4294967294 = 1
-4294967294 `div` 4294967295 = 0
-4294967294 `div` 0 = divide by zero
-4294967294 `div` 1 = 4294967294
-4294967294 `div` 2 = 2147483647
-4294967294 `div` 3 = 1431655764
-
-4294967295 `div` 4294967293 = 1
-4294967295 `div` 4294967294 = 1
-4294967295 `div` 4294967295 = 1
-4294967295 `div` 0 = divide by zero
-4294967295 `div` 1 = 4294967295
-4294967295 `div` 2 = 2147483647
-4294967295 `div` 3 = 1431655765
-
-0 `div` 4294967293 = 0
-0 `div` 4294967294 = 0
-0 `div` 4294967295 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` 4294967293 = 0
-1 `div` 4294967294 = 0
-1 `div` 4294967295 = 0
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` 4294967293 = 0
-2 `div` 4294967294 = 0
-2 `div` 4294967295 = 0
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` 4294967293 = 0
-3 `div` 4294967294 = 0
-3 `div` 4294967295 = 0
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
-4294967293 `mod` 4294967293 = 0
-4294967293 `mod` 4294967294 = 4294967293
-4294967293 `mod` 4294967295 = 4294967293
-4294967293 `mod` 0 = divide by zero
-4294967293 `mod` 1 = 0
-4294967293 `mod` 2 = 1
-4294967293 `mod` 3 = 1
-
-4294967294 `mod` 4294967293 = 1
-4294967294 `mod` 4294967294 = 0
-4294967294 `mod` 4294967295 = 4294967294
-4294967294 `mod` 0 = divide by zero
-4294967294 `mod` 1 = 0
-4294967294 `mod` 2 = 0
-4294967294 `mod` 3 = 2
-
-4294967295 `mod` 4294967293 = 2
-4294967295 `mod` 4294967294 = 1
-4294967295 `mod` 4294967295 = 0
-4294967295 `mod` 0 = divide by zero
-4294967295 `mod` 1 = 0
-4294967295 `mod` 2 = 1
-4294967295 `mod` 3 = 0
-
-0 `mod` 4294967293 = 0
-0 `mod` 4294967294 = 0
-0 `mod` 4294967295 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` 4294967293 = 1
-1 `mod` 4294967294 = 1
-1 `mod` 4294967295 = 1
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` 4294967293 = 2
-2 `mod` 4294967294 = 2
-2 `mod` 4294967295 = 2
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` 4294967293 = 3
-3 `mod` 4294967294 = 3
-3 `mod` 4294967295 = 3
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
-4294967293 `quotRem` 4294967293 = (1,0)
-4294967293 `quotRem` 4294967294 = (0,4294967293)
-4294967293 `quotRem` 4294967295 = (0,4294967293)
-4294967293 `quotRem` 0 = divide by zero
-4294967293 `quotRem` 1 = (4294967293,0)
-4294967293 `quotRem` 2 = (2147483646,1)
-4294967293 `quotRem` 3 = (1431655764,1)
-
-4294967294 `quotRem` 4294967293 = (1,1)
-4294967294 `quotRem` 4294967294 = (1,0)
-4294967294 `quotRem` 4294967295 = (0,4294967294)
-4294967294 `quotRem` 0 = divide by zero
-4294967294 `quotRem` 1 = (4294967294,0)
-4294967294 `quotRem` 2 = (2147483647,0)
-4294967294 `quotRem` 3 = (1431655764,2)
-
-4294967295 `quotRem` 4294967293 = (1,2)
-4294967295 `quotRem` 4294967294 = (1,1)
-4294967295 `quotRem` 4294967295 = (1,0)
-4294967295 `quotRem` 0 = divide by zero
-4294967295 `quotRem` 1 = (4294967295,0)
-4294967295 `quotRem` 2 = (2147483647,1)
-4294967295 `quotRem` 3 = (1431655765,0)
-
-0 `quotRem` 4294967293 = (0,0)
-0 `quotRem` 4294967294 = (0,0)
-0 `quotRem` 4294967295 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` 4294967293 = (0,1)
-1 `quotRem` 4294967294 = (0,1)
-1 `quotRem` 4294967295 = (0,1)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` 4294967293 = (0,2)
-2 `quotRem` 4294967294 = (0,2)
-2 `quotRem` 4294967295 = (0,2)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` 4294967293 = (0,3)
-3 `quotRem` 4294967294 = (0,3)
-3 `quotRem` 4294967295 = (0,3)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
-4294967293 `quot` 4294967293 = 1
-4294967293 `quot` 4294967294 = 0
-4294967293 `quot` 4294967295 = 0
-4294967293 `quot` 0 = divide by zero
-4294967293 `quot` 1 = 4294967293
-4294967293 `quot` 2 = 2147483646
-4294967293 `quot` 3 = 1431655764
-
-4294967294 `quot` 4294967293 = 1
-4294967294 `quot` 4294967294 = 1
-4294967294 `quot` 4294967295 = 0
-4294967294 `quot` 0 = divide by zero
-4294967294 `quot` 1 = 4294967294
-4294967294 `quot` 2 = 2147483647
-4294967294 `quot` 3 = 1431655764
-
-4294967295 `quot` 4294967293 = 1
-4294967295 `quot` 4294967294 = 1
-4294967295 `quot` 4294967295 = 1
-4294967295 `quot` 0 = divide by zero
-4294967295 `quot` 1 = 4294967295
-4294967295 `quot` 2 = 2147483647
-4294967295 `quot` 3 = 1431655765
-
-0 `quot` 4294967293 = 0
-0 `quot` 4294967294 = 0
-0 `quot` 4294967295 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` 4294967293 = 0
-1 `quot` 4294967294 = 0
-1 `quot` 4294967295 = 0
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` 4294967293 = 0
-2 `quot` 4294967294 = 0
-2 `quot` 4294967295 = 0
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` 4294967293 = 0
-3 `quot` 4294967294 = 0
-3 `quot` 4294967295 = 0
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
-4294967293 `rem` 4294967293 = 0
-4294967293 `rem` 4294967294 = 4294967293
-4294967293 `rem` 4294967295 = 4294967293
-4294967293 `rem` 0 = divide by zero
-4294967293 `rem` 1 = 0
-4294967293 `rem` 2 = 1
-4294967293 `rem` 3 = 1
-
-4294967294 `rem` 4294967293 = 1
-4294967294 `rem` 4294967294 = 0
-4294967294 `rem` 4294967295 = 4294967294
-4294967294 `rem` 0 = divide by zero
-4294967294 `rem` 1 = 0
-4294967294 `rem` 2 = 0
-4294967294 `rem` 3 = 2
-
-4294967295 `rem` 4294967293 = 2
-4294967295 `rem` 4294967294 = 1
-4294967295 `rem` 4294967295 = 0
-4294967295 `rem` 0 = divide by zero
-4294967295 `rem` 1 = 0
-4294967295 `rem` 2 = 1
-4294967295 `rem` 3 = 0
-
-0 `rem` 4294967293 = 0
-0 `rem` 4294967294 = 0
-0 `rem` 4294967295 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` 4294967293 = 1
-1 `rem` 4294967294 = 1
-1 `rem` 4294967295 = 1
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` 4294967293 = 2
-2 `rem` 4294967294 = 2
-2 `rem` 4294967295 = 2
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` 4294967293 = 3
-3 `rem` 4294967294 = 3
-3 `rem` 4294967295 = 3
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [0,0,4294967295]
-Int : [0,0,4294967295]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [0,0,-1]
-Int64 : [0,0,4294967295]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [0,0,4294967295]
-Word64 : [0,0,4294967295]
-testBits
-4294967293 .&. 4294967293 = 4294967293
-4294967293 .&. 4294967294 = 4294967292
-4294967293 .&. 4294967295 = 4294967293
-4294967293 .&. 0 = 0
-4294967293 .&. 1 = 1
-4294967293 .&. 2 = 0
-4294967293 .&. 3 = 1
-
-4294967294 .&. 4294967293 = 4294967292
-4294967294 .&. 4294967294 = 4294967294
-4294967294 .&. 4294967295 = 4294967294
-4294967294 .&. 0 = 0
-4294967294 .&. 1 = 0
-4294967294 .&. 2 = 2
-4294967294 .&. 3 = 2
-
-4294967295 .&. 4294967293 = 4294967293
-4294967295 .&. 4294967294 = 4294967294
-4294967295 .&. 4294967295 = 4294967295
-4294967295 .&. 0 = 0
-4294967295 .&. 1 = 1
-4294967295 .&. 2 = 2
-4294967295 .&. 3 = 3
-
-0 .&. 4294967293 = 0
-0 .&. 4294967294 = 0
-0 .&. 4294967295 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. 4294967293 = 1
-1 .&. 4294967294 = 0
-1 .&. 4294967295 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. 4294967293 = 0
-2 .&. 4294967294 = 2
-2 .&. 4294967295 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. 4294967293 = 1
-3 .&. 4294967294 = 2
-3 .&. 4294967295 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
-4294967293 .|. 4294967293 = 4294967293
-4294967293 .|. 4294967294 = 4294967295
-4294967293 .|. 4294967295 = 4294967295
-4294967293 .|. 0 = 4294967293
-4294967293 .|. 1 = 4294967293
-4294967293 .|. 2 = 4294967295
-4294967293 .|. 3 = 4294967295
-
-4294967294 .|. 4294967293 = 4294967295
-4294967294 .|. 4294967294 = 4294967294
-4294967294 .|. 4294967295 = 4294967295
-4294967294 .|. 0 = 4294967294
-4294967294 .|. 1 = 4294967295
-4294967294 .|. 2 = 4294967294
-4294967294 .|. 3 = 4294967295
-
-4294967295 .|. 4294967293 = 4294967295
-4294967295 .|. 4294967294 = 4294967295
-4294967295 .|. 4294967295 = 4294967295
-4294967295 .|. 0 = 4294967295
-4294967295 .|. 1 = 4294967295
-4294967295 .|. 2 = 4294967295
-4294967295 .|. 3 = 4294967295
-
-0 .|. 4294967293 = 4294967293
-0 .|. 4294967294 = 4294967294
-0 .|. 4294967295 = 4294967295
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. 4294967293 = 4294967293
-1 .|. 4294967294 = 4294967295
-1 .|. 4294967295 = 4294967295
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. 4294967293 = 4294967295
-2 .|. 4294967294 = 4294967294
-2 .|. 4294967295 = 4294967295
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. 4294967293 = 4294967295
-3 .|. 4294967294 = 4294967295
-3 .|. 4294967295 = 4294967295
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
-4294967293 `xor` 4294967293 = 0
-4294967293 `xor` 4294967294 = 3
-4294967293 `xor` 4294967295 = 2
-4294967293 `xor` 0 = 4294967293
-4294967293 `xor` 1 = 4294967292
-4294967293 `xor` 2 = 4294967295
-4294967293 `xor` 3 = 4294967294
-
-4294967294 `xor` 4294967293 = 3
-4294967294 `xor` 4294967294 = 0
-4294967294 `xor` 4294967295 = 1
-4294967294 `xor` 0 = 4294967294
-4294967294 `xor` 1 = 4294967295
-4294967294 `xor` 2 = 4294967292
-4294967294 `xor` 3 = 4294967293
-
-4294967295 `xor` 4294967293 = 2
-4294967295 `xor` 4294967294 = 1
-4294967295 `xor` 4294967295 = 0
-4294967295 `xor` 0 = 4294967295
-4294967295 `xor` 1 = 4294967294
-4294967295 `xor` 2 = 4294967293
-4294967295 `xor` 3 = 4294967292
-
-0 `xor` 4294967293 = 4294967293
-0 `xor` 4294967294 = 4294967294
-0 `xor` 4294967295 = 4294967295
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` 4294967293 = 4294967292
-1 `xor` 4294967294 = 4294967295
-1 `xor` 4294967295 = 4294967294
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` 4294967293 = 4294967295
-2 `xor` 4294967294 = 4294967292
-2 `xor` 4294967295 = 4294967293
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` 4294967293 = 4294967294
-3 `xor` 4294967294 = 4294967293
-3 `xor` 4294967295 = 4294967292
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement 4294967293 = 2
-complement 4294967294 = 1
-complement 4294967295 = 0
-complement 0 = 4294967295
-complement 1 = 4294967294
-complement 2 = 4294967293
-complement 3 = 4294967292
-#
-4294967293 `shiftL` 0 = 4294967293
-4294967293 `shiftL` 1 = 4294967290
-4294967293 `shiftL` 2 = 4294967284
-4294967293 `shiftL` 3 = 4294967272
-4294967293 `shiftL` 32 = 0
-4294967293 `shiftL` 64 = 0
-
-4294967294 `shiftL` 0 = 4294967294
-4294967294 `shiftL` 1 = 4294967292
-4294967294 `shiftL` 2 = 4294967288
-4294967294 `shiftL` 3 = 4294967280
-4294967294 `shiftL` 32 = 0
-4294967294 `shiftL` 64 = 0
-
-4294967295 `shiftL` 0 = 4294967295
-4294967295 `shiftL` 1 = 4294967294
-4294967295 `shiftL` 2 = 4294967292
-4294967295 `shiftL` 3 = 4294967288
-4294967295 `shiftL` 32 = 0
-4294967295 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 0
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 0
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 0
-3 `shiftL` 64 = 0
-
-#
-4294967293 `shiftR` 0 = 4294967293
-4294967293 `shiftR` 1 = 2147483646
-4294967293 `shiftR` 2 = 1073741823
-4294967293 `shiftR` 3 = 536870911
-4294967293 `shiftR` 32 = 0
-4294967293 `shiftR` 64 = 0
-
-4294967294 `shiftR` 0 = 4294967294
-4294967294 `shiftR` 1 = 2147483647
-4294967294 `shiftR` 2 = 1073741823
-4294967294 `shiftR` 3 = 536870911
-4294967294 `shiftR` 32 = 0
-4294967294 `shiftR` 64 = 0
-
-4294967295 `shiftR` 0 = 4294967295
-4294967295 `shiftR` 1 = 2147483647
-4294967295 `shiftR` 2 = 1073741823
-4294967295 `shiftR` 3 = 536870911
-4294967295 `shiftR` 32 = 0
-4294967295 `shiftR` 64 = 0
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
-4294967293 `rotate` -3 = 3221225471
-4294967293 `rotate` -2 = 2147483647
-4294967293 `rotate` -1 = 4294967294
-4294967293 `rotate` 0 = 4294967293
-4294967293 `rotate` 1 = 4294967291
-4294967293 `rotate` 2 = 4294967287
-4294967293 `rotate` 3 = 4294967279
-4294967293 `rotate` -64 = 4294967293
-4294967293 `rotate` -32 = 4294967293
-4294967293 `rotate` 32 = 4294967293
-4294967293 `rotate` 64 = 4294967293
-
-4294967294 `rotate` -3 = 3758096383
-4294967294 `rotate` -2 = 3221225471
-4294967294 `rotate` -1 = 2147483647
-4294967294 `rotate` 0 = 4294967294
-4294967294 `rotate` 1 = 4294967293
-4294967294 `rotate` 2 = 4294967291
-4294967294 `rotate` 3 = 4294967287
-4294967294 `rotate` -64 = 4294967294
-4294967294 `rotate` -32 = 4294967294
-4294967294 `rotate` 32 = 4294967294
-4294967294 `rotate` 64 = 4294967294
-
-4294967295 `rotate` -3 = 4294967295
-4294967295 `rotate` -2 = 4294967295
-4294967295 `rotate` -1 = 4294967295
-4294967295 `rotate` 0 = 4294967295
-4294967295 `rotate` 1 = 4294967295
-4294967295 `rotate` 2 = 4294967295
-4294967295 `rotate` 3 = 4294967295
-4294967295 `rotate` -64 = 4294967295
-4294967295 `rotate` -32 = 4294967295
-4294967295 `rotate` 32 = 4294967295
-4294967295 `rotate` 64 = 4294967295
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-0 `rotate` -64 = 0
-0 `rotate` -32 = 0
-0 `rotate` 32 = 0
-0 `rotate` 64 = 0
-
-1 `rotate` -3 = 536870912
-1 `rotate` -2 = 1073741824
-1 `rotate` -1 = 2147483648
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-1 `rotate` -64 = 1
-1 `rotate` -32 = 1
-1 `rotate` 32 = 1
-1 `rotate` 64 = 1
-
-2 `rotate` -3 = 1073741824
-2 `rotate` -2 = 2147483648
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-2 `rotate` -64 = 2
-2 `rotate` -32 = 2
-2 `rotate` 32 = 2
-2 `rotate` 64 = 2
-
-3 `rotate` -3 = 1610612736
-3 `rotate` -2 = 3221225472
-3 `rotate` -1 = 2147483649
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-3 `rotate` -64 = 3
-3 `rotate` -32 = 3
-3 `rotate` 32 = 3
-3 `rotate` 64 = 3
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
-4294967293 `setBit` 0 = 4294967293
-4294967293 `setBit` 1 = 4294967295
-4294967293 `setBit` 2 = 4294967293
-4294967293 `setBit` 3 = 4294967293
-4294967293 `setBit` 32 = 4294967293
-4294967293 `setBit` 64 = 4294967293
-
-4294967294 `setBit` 0 = 4294967295
-4294967294 `setBit` 1 = 4294967294
-4294967294 `setBit` 2 = 4294967294
-4294967294 `setBit` 3 = 4294967294
-4294967294 `setBit` 32 = 4294967294
-4294967294 `setBit` 64 = 4294967294
-
-4294967295 `setBit` 0 = 4294967295
-4294967295 `setBit` 1 = 4294967295
-4294967295 `setBit` 2 = 4294967295
-4294967295 `setBit` 3 = 4294967295
-4294967295 `setBit` 32 = 4294967295
-4294967295 `setBit` 64 = 4294967295
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 0
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 1
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 2
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 3
-3 `setBit` 64 = 3
-
-#
-4294967293 `clearBit` 0 = 4294967292
-4294967293 `clearBit` 1 = 4294967293
-4294967293 `clearBit` 2 = 4294967289
-4294967293 `clearBit` 3 = 4294967285
-4294967293 `clearBit` 32 = 4294967293
-4294967293 `clearBit` 64 = 4294967293
-
-4294967294 `clearBit` 0 = 4294967294
-4294967294 `clearBit` 1 = 4294967292
-4294967294 `clearBit` 2 = 4294967290
-4294967294 `clearBit` 3 = 4294967286
-4294967294 `clearBit` 32 = 4294967294
-4294967294 `clearBit` 64 = 4294967294
-
-4294967295 `clearBit` 0 = 4294967294
-4294967295 `clearBit` 1 = 4294967293
-4294967295 `clearBit` 2 = 4294967291
-4294967295 `clearBit` 3 = 4294967287
-4294967295 `clearBit` 32 = 4294967295
-4294967295 `clearBit` 64 = 4294967295
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
-4294967293 `complementBit` 0 = 4294967292
-4294967293 `complementBit` 1 = 4294967295
-4294967293 `complementBit` 2 = 4294967289
-4294967293 `complementBit` 3 = 4294967285
-4294967293 `complementBit` 32 = 4294967293
-4294967293 `complementBit` 64 = 4294967293
-
-4294967294 `complementBit` 0 = 4294967295
-4294967294 `complementBit` 1 = 4294967292
-4294967294 `complementBit` 2 = 4294967290
-4294967294 `complementBit` 3 = 4294967286
-4294967294 `complementBit` 32 = 4294967294
-4294967294 `complementBit` 64 = 4294967294
-
-4294967295 `complementBit` 0 = 4294967294
-4294967295 `complementBit` 1 = 4294967293
-4294967295 `complementBit` 2 = 4294967291
-4294967295 `complementBit` 3 = 4294967287
-4294967295 `complementBit` 32 = 4294967295
-4294967295 `complementBit` 64 = 4294967295
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 0
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 1
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 2
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 3
-3 `complementBit` 64 = 3
-
-#
-4294967293 `testBit` 0 = True
-4294967293 `testBit` 1 = False
-4294967293 `testBit` 2 = True
-4294967293 `testBit` 3 = True
-4294967293 `testBit` 32 = False
-4294967293 `testBit` 64 = False
-
-4294967294 `testBit` 0 = False
-4294967294 `testBit` 1 = True
-4294967294 `testBit` 2 = True
-4294967294 `testBit` 3 = True
-4294967294 `testBit` 32 = False
-4294967294 `testBit` 64 = False
-
-4294967295 `testBit` 0 = True
-4294967295 `testBit` 1 = True
-4294967295 `testBit` 2 = True
-4294967295 `testBit` 3 = True
-4294967295 `testBit` 32 = False
-4294967295 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize 4294967293 = 32
-bitSize 4294967294 = 32
-bitSize 4294967295 = 32
-bitSize 0 = 32
-bitSize 1 = 32
-bitSize 2 = 32
-bitSize 3 = 32
-#
-isSigned 4294967293 = False
-isSigned 4294967294 = False
-isSigned 4294967295 = False
-isSigned 0 = False
-isSigned 1 = False
-isSigned 2 = False
-isSigned 3 = False
-#
---------------------------------
---Testing Word64
---------------------------------
-testBounded
-(18446744073709551615,0,1)
-(18446744073709551614,18446744073709551615,0)
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[18446744073709551613,18446744073709551614,18446744073709551615,0,1,2,3]
-[18446744073709551613,18446744073709551614,18446744073709551615,0,1,2,3]
-testEq
-18446744073709551613 == 18446744073709551613 = True
-18446744073709551613 == 18446744073709551614 = False
-18446744073709551613 == 18446744073709551615 = False
-18446744073709551613 == 0 = False
-18446744073709551613 == 1 = False
-18446744073709551613 == 2 = False
-18446744073709551613 == 3 = False
-
-18446744073709551614 == 18446744073709551613 = False
-18446744073709551614 == 18446744073709551614 = True
-18446744073709551614 == 18446744073709551615 = False
-18446744073709551614 == 0 = False
-18446744073709551614 == 1 = False
-18446744073709551614 == 2 = False
-18446744073709551614 == 3 = False
-
-18446744073709551615 == 18446744073709551613 = False
-18446744073709551615 == 18446744073709551614 = False
-18446744073709551615 == 18446744073709551615 = True
-18446744073709551615 == 0 = False
-18446744073709551615 == 1 = False
-18446744073709551615 == 2 = False
-18446744073709551615 == 3 = False
-
-0 == 18446744073709551613 = False
-0 == 18446744073709551614 = False
-0 == 18446744073709551615 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == 18446744073709551613 = False
-1 == 18446744073709551614 = False
-1 == 18446744073709551615 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == 18446744073709551613 = False
-2 == 18446744073709551614 = False
-2 == 18446744073709551615 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == 18446744073709551613 = False
-3 == 18446744073709551614 = False
-3 == 18446744073709551615 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
-18446744073709551613 /= 18446744073709551613 = False
-18446744073709551613 /= 18446744073709551614 = True
-18446744073709551613 /= 18446744073709551615 = True
-18446744073709551613 /= 0 = True
-18446744073709551613 /= 1 = True
-18446744073709551613 /= 2 = True
-18446744073709551613 /= 3 = True
-
-18446744073709551614 /= 18446744073709551613 = True
-18446744073709551614 /= 18446744073709551614 = False
-18446744073709551614 /= 18446744073709551615 = True
-18446744073709551614 /= 0 = True
-18446744073709551614 /= 1 = True
-18446744073709551614 /= 2 = True
-18446744073709551614 /= 3 = True
-
-18446744073709551615 /= 18446744073709551613 = True
-18446744073709551615 /= 18446744073709551614 = True
-18446744073709551615 /= 18446744073709551615 = False
-18446744073709551615 /= 0 = True
-18446744073709551615 /= 1 = True
-18446744073709551615 /= 2 = True
-18446744073709551615 /= 3 = True
-
-0 /= 18446744073709551613 = True
-0 /= 18446744073709551614 = True
-0 /= 18446744073709551615 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= 18446744073709551613 = True
-1 /= 18446744073709551614 = True
-1 /= 18446744073709551615 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= 18446744073709551613 = True
-2 /= 18446744073709551614 = True
-2 /= 18446744073709551615 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= 18446744073709551613 = True
-3 /= 18446744073709551614 = True
-3 /= 18446744073709551615 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
-18446744073709551613 <= 18446744073709551613 = True
-18446744073709551613 <= 18446744073709551614 = True
-18446744073709551613 <= 18446744073709551615 = True
-18446744073709551613 <= 0 = False
-18446744073709551613 <= 1 = False
-18446744073709551613 <= 2 = False
-18446744073709551613 <= 3 = False
-
-18446744073709551614 <= 18446744073709551613 = False
-18446744073709551614 <= 18446744073709551614 = True
-18446744073709551614 <= 18446744073709551615 = True
-18446744073709551614 <= 0 = False
-18446744073709551614 <= 1 = False
-18446744073709551614 <= 2 = False
-18446744073709551614 <= 3 = False
-
-18446744073709551615 <= 18446744073709551613 = False
-18446744073709551615 <= 18446744073709551614 = False
-18446744073709551615 <= 18446744073709551615 = True
-18446744073709551615 <= 0 = False
-18446744073709551615 <= 1 = False
-18446744073709551615 <= 2 = False
-18446744073709551615 <= 3 = False
-
-0 <= 18446744073709551613 = True
-0 <= 18446744073709551614 = True
-0 <= 18446744073709551615 = True
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= 18446744073709551613 = True
-1 <= 18446744073709551614 = True
-1 <= 18446744073709551615 = True
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= 18446744073709551613 = True
-2 <= 18446744073709551614 = True
-2 <= 18446744073709551615 = True
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= 18446744073709551613 = True
-3 <= 18446744073709551614 = True
-3 <= 18446744073709551615 = True
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
-18446744073709551613 < 18446744073709551613 = False
-18446744073709551613 < 18446744073709551614 = True
-18446744073709551613 < 18446744073709551615 = True
-18446744073709551613 < 0 = False
-18446744073709551613 < 1 = False
-18446744073709551613 < 2 = False
-18446744073709551613 < 3 = False
-
-18446744073709551614 < 18446744073709551613 = False
-18446744073709551614 < 18446744073709551614 = False
-18446744073709551614 < 18446744073709551615 = True
-18446744073709551614 < 0 = False
-18446744073709551614 < 1 = False
-18446744073709551614 < 2 = False
-18446744073709551614 < 3 = False
-
-18446744073709551615 < 18446744073709551613 = False
-18446744073709551615 < 18446744073709551614 = False
-18446744073709551615 < 18446744073709551615 = False
-18446744073709551615 < 0 = False
-18446744073709551615 < 1 = False
-18446744073709551615 < 2 = False
-18446744073709551615 < 3 = False
-
-0 < 18446744073709551613 = True
-0 < 18446744073709551614 = True
-0 < 18446744073709551615 = True
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < 18446744073709551613 = True
-1 < 18446744073709551614 = True
-1 < 18446744073709551615 = True
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < 18446744073709551613 = True
-2 < 18446744073709551614 = True
-2 < 18446744073709551615 = True
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < 18446744073709551613 = True
-3 < 18446744073709551614 = True
-3 < 18446744073709551615 = True
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
-18446744073709551613 > 18446744073709551613 = False
-18446744073709551613 > 18446744073709551614 = False
-18446744073709551613 > 18446744073709551615 = False
-18446744073709551613 > 0 = True
-18446744073709551613 > 1 = True
-18446744073709551613 > 2 = True
-18446744073709551613 > 3 = True
-
-18446744073709551614 > 18446744073709551613 = True
-18446744073709551614 > 18446744073709551614 = False
-18446744073709551614 > 18446744073709551615 = False
-18446744073709551614 > 0 = True
-18446744073709551614 > 1 = True
-18446744073709551614 > 2 = True
-18446744073709551614 > 3 = True
-
-18446744073709551615 > 18446744073709551613 = True
-18446744073709551615 > 18446744073709551614 = True
-18446744073709551615 > 18446744073709551615 = False
-18446744073709551615 > 0 = True
-18446744073709551615 > 1 = True
-18446744073709551615 > 2 = True
-18446744073709551615 > 3 = True
-
-0 > 18446744073709551613 = False
-0 > 18446744073709551614 = False
-0 > 18446744073709551615 = False
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > 18446744073709551613 = False
-1 > 18446744073709551614 = False
-1 > 18446744073709551615 = False
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > 18446744073709551613 = False
-2 > 18446744073709551614 = False
-2 > 18446744073709551615 = False
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > 18446744073709551613 = False
-3 > 18446744073709551614 = False
-3 > 18446744073709551615 = False
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
-18446744073709551613 >= 18446744073709551613 = True
-18446744073709551613 >= 18446744073709551614 = False
-18446744073709551613 >= 18446744073709551615 = False
-18446744073709551613 >= 0 = True
-18446744073709551613 >= 1 = True
-18446744073709551613 >= 2 = True
-18446744073709551613 >= 3 = True
-
-18446744073709551614 >= 18446744073709551613 = True
-18446744073709551614 >= 18446744073709551614 = True
-18446744073709551614 >= 18446744073709551615 = False
-18446744073709551614 >= 0 = True
-18446744073709551614 >= 1 = True
-18446744073709551614 >= 2 = True
-18446744073709551614 >= 3 = True
-
-18446744073709551615 >= 18446744073709551613 = True
-18446744073709551615 >= 18446744073709551614 = True
-18446744073709551615 >= 18446744073709551615 = True
-18446744073709551615 >= 0 = True
-18446744073709551615 >= 1 = True
-18446744073709551615 >= 2 = True
-18446744073709551615 >= 3 = True
-
-0 >= 18446744073709551613 = False
-0 >= 18446744073709551614 = False
-0 >= 18446744073709551615 = False
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= 18446744073709551613 = False
-1 >= 18446744073709551614 = False
-1 >= 18446744073709551615 = False
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= 18446744073709551613 = False
-2 >= 18446744073709551614 = False
-2 >= 18446744073709551615 = False
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= 18446744073709551613 = False
-3 >= 18446744073709551614 = False
-3 >= 18446744073709551615 = False
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
-18446744073709551613 `compare` 18446744073709551613 = EQ
-18446744073709551613 `compare` 18446744073709551614 = LT
-18446744073709551613 `compare` 18446744073709551615 = LT
-18446744073709551613 `compare` 0 = GT
-18446744073709551613 `compare` 1 = GT
-18446744073709551613 `compare` 2 = GT
-18446744073709551613 `compare` 3 = GT
-
-18446744073709551614 `compare` 18446744073709551613 = GT
-18446744073709551614 `compare` 18446744073709551614 = EQ
-18446744073709551614 `compare` 18446744073709551615 = LT
-18446744073709551614 `compare` 0 = GT
-18446744073709551614 `compare` 1 = GT
-18446744073709551614 `compare` 2 = GT
-18446744073709551614 `compare` 3 = GT
-
-18446744073709551615 `compare` 18446744073709551613 = GT
-18446744073709551615 `compare` 18446744073709551614 = GT
-18446744073709551615 `compare` 18446744073709551615 = EQ
-18446744073709551615 `compare` 0 = GT
-18446744073709551615 `compare` 1 = GT
-18446744073709551615 `compare` 2 = GT
-18446744073709551615 `compare` 3 = GT
-
-0 `compare` 18446744073709551613 = LT
-0 `compare` 18446744073709551614 = LT
-0 `compare` 18446744073709551615 = LT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` 18446744073709551613 = LT
-1 `compare` 18446744073709551614 = LT
-1 `compare` 18446744073709551615 = LT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` 18446744073709551613 = LT
-2 `compare` 18446744073709551614 = LT
-2 `compare` 18446744073709551615 = LT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` 18446744073709551613 = LT
-3 `compare` 18446744073709551614 = LT
-3 `compare` 18446744073709551615 = LT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
-18446744073709551613 + 18446744073709551613 = 18446744073709551610
-18446744073709551613 + 18446744073709551614 = 18446744073709551611
-18446744073709551613 + 18446744073709551615 = 18446744073709551612
-18446744073709551613 + 0 = 18446744073709551613
-18446744073709551613 + 1 = 18446744073709551614
-18446744073709551613 + 2 = 18446744073709551615
-18446744073709551613 + 3 = 0
-
-18446744073709551614 + 18446744073709551613 = 18446744073709551611
-18446744073709551614 + 18446744073709551614 = 18446744073709551612
-18446744073709551614 + 18446744073709551615 = 18446744073709551613
-18446744073709551614 + 0 = 18446744073709551614
-18446744073709551614 + 1 = 18446744073709551615
-18446744073709551614 + 2 = 0
-18446744073709551614 + 3 = 1
-
-18446744073709551615 + 18446744073709551613 = 18446744073709551612
-18446744073709551615 + 18446744073709551614 = 18446744073709551613
-18446744073709551615 + 18446744073709551615 = 18446744073709551614
-18446744073709551615 + 0 = 18446744073709551615
-18446744073709551615 + 1 = 0
-18446744073709551615 + 2 = 1
-18446744073709551615 + 3 = 2
-
-0 + 18446744073709551613 = 18446744073709551613
-0 + 18446744073709551614 = 18446744073709551614
-0 + 18446744073709551615 = 18446744073709551615
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + 18446744073709551613 = 18446744073709551614
-1 + 18446744073709551614 = 18446744073709551615
-1 + 18446744073709551615 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + 18446744073709551613 = 18446744073709551615
-2 + 18446744073709551614 = 0
-2 + 18446744073709551615 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + 18446744073709551613 = 0
-3 + 18446744073709551614 = 1
-3 + 18446744073709551615 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
-18446744073709551613 - 18446744073709551613 = 0
-18446744073709551613 - 18446744073709551614 = 18446744073709551615
-18446744073709551613 - 18446744073709551615 = 18446744073709551614
-18446744073709551613 - 0 = 18446744073709551613
-18446744073709551613 - 1 = 18446744073709551612
-18446744073709551613 - 2 = 18446744073709551611
-18446744073709551613 - 3 = 18446744073709551610
-
-18446744073709551614 - 18446744073709551613 = 1
-18446744073709551614 - 18446744073709551614 = 0
-18446744073709551614 - 18446744073709551615 = 18446744073709551615
-18446744073709551614 - 0 = 18446744073709551614
-18446744073709551614 - 1 = 18446744073709551613
-18446744073709551614 - 2 = 18446744073709551612
-18446744073709551614 - 3 = 18446744073709551611
-
-18446744073709551615 - 18446744073709551613 = 2
-18446744073709551615 - 18446744073709551614 = 1
-18446744073709551615 - 18446744073709551615 = 0
-18446744073709551615 - 0 = 18446744073709551615
-18446744073709551615 - 1 = 18446744073709551614
-18446744073709551615 - 2 = 18446744073709551613
-18446744073709551615 - 3 = 18446744073709551612
-
-0 - 18446744073709551613 = 3
-0 - 18446744073709551614 = 2
-0 - 18446744073709551615 = 1
-0 - 0 = 0
-0 - 1 = 18446744073709551615
-0 - 2 = 18446744073709551614
-0 - 3 = 18446744073709551613
-
-1 - 18446744073709551613 = 4
-1 - 18446744073709551614 = 3
-1 - 18446744073709551615 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = 18446744073709551615
-1 - 3 = 18446744073709551614
-
-2 - 18446744073709551613 = 5
-2 - 18446744073709551614 = 4
-2 - 18446744073709551615 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = 18446744073709551615
-
-3 - 18446744073709551613 = 6
-3 - 18446744073709551614 = 5
-3 - 18446744073709551615 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
-18446744073709551613 * 18446744073709551613 = 9
-18446744073709551613 * 18446744073709551614 = 6
-18446744073709551613 * 18446744073709551615 = 3
-18446744073709551613 * 0 = 0
-18446744073709551613 * 1 = 18446744073709551613
-18446744073709551613 * 2 = 18446744073709551610
-18446744073709551613 * 3 = 18446744073709551607
-
-18446744073709551614 * 18446744073709551613 = 6
-18446744073709551614 * 18446744073709551614 = 4
-18446744073709551614 * 18446744073709551615 = 2
-18446744073709551614 * 0 = 0
-18446744073709551614 * 1 = 18446744073709551614
-18446744073709551614 * 2 = 18446744073709551612
-18446744073709551614 * 3 = 18446744073709551610
-
-18446744073709551615 * 18446744073709551613 = 3
-18446744073709551615 * 18446744073709551614 = 2
-18446744073709551615 * 18446744073709551615 = 1
-18446744073709551615 * 0 = 0
-18446744073709551615 * 1 = 18446744073709551615
-18446744073709551615 * 2 = 18446744073709551614
-18446744073709551615 * 3 = 18446744073709551613
-
-0 * 18446744073709551613 = 0
-0 * 18446744073709551614 = 0
-0 * 18446744073709551615 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * 18446744073709551613 = 18446744073709551613
-1 * 18446744073709551614 = 18446744073709551614
-1 * 18446744073709551615 = 18446744073709551615
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * 18446744073709551613 = 18446744073709551610
-2 * 18446744073709551614 = 18446744073709551612
-2 * 18446744073709551615 = 18446744073709551614
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * 18446744073709551613 = 18446744073709551607
-3 * 18446744073709551614 = 18446744073709551610
-3 * 18446744073709551615 = 18446744073709551613
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate 18446744073709551613 = 3
-negate 18446744073709551614 = 2
-negate 18446744073709551615 = 1
-negate 0 = 0
-negate 1 = 18446744073709551615
-negate 2 = 18446744073709551614
-negate 3 = 18446744073709551613
-#
-testReal
-toRational 18446744073709551613 = 18446744073709551613 % 1
-toRational 18446744073709551614 = 18446744073709551614 % 1
-toRational 18446744073709551615 = 18446744073709551615 % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
-18446744073709551613 `divMod` 18446744073709551613 = (1,0)
-18446744073709551613 `divMod` 18446744073709551614 = (0,18446744073709551613)
-18446744073709551613 `divMod` 18446744073709551615 = (0,18446744073709551613)
-18446744073709551613 `divMod` 0 = divide by zero
-18446744073709551613 `divMod` 1 = (18446744073709551613,0)
-18446744073709551613 `divMod` 2 = (9223372036854775806,1)
-18446744073709551613 `divMod` 3 = (6148914691236517204,1)
-
-18446744073709551614 `divMod` 18446744073709551613 = (1,1)
-18446744073709551614 `divMod` 18446744073709551614 = (1,0)
-18446744073709551614 `divMod` 18446744073709551615 = (0,18446744073709551614)
-18446744073709551614 `divMod` 0 = divide by zero
-18446744073709551614 `divMod` 1 = (18446744073709551614,0)
-18446744073709551614 `divMod` 2 = (9223372036854775807,0)
-18446744073709551614 `divMod` 3 = (6148914691236517204,2)
-
-18446744073709551615 `divMod` 18446744073709551613 = (1,2)
-18446744073709551615 `divMod` 18446744073709551614 = (1,1)
-18446744073709551615 `divMod` 18446744073709551615 = (1,0)
-18446744073709551615 `divMod` 0 = divide by zero
-18446744073709551615 `divMod` 1 = (18446744073709551615,0)
-18446744073709551615 `divMod` 2 = (9223372036854775807,1)
-18446744073709551615 `divMod` 3 = (6148914691236517205,0)
-
-0 `divMod` 18446744073709551613 = (0,0)
-0 `divMod` 18446744073709551614 = (0,0)
-0 `divMod` 18446744073709551615 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` 18446744073709551613 = (0,1)
-1 `divMod` 18446744073709551614 = (0,1)
-1 `divMod` 18446744073709551615 = (0,1)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` 18446744073709551613 = (0,2)
-2 `divMod` 18446744073709551614 = (0,2)
-2 `divMod` 18446744073709551615 = (0,2)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` 18446744073709551613 = (0,3)
-3 `divMod` 18446744073709551614 = (0,3)
-3 `divMod` 18446744073709551615 = (0,3)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
-18446744073709551613 `div` 18446744073709551613 = 1
-18446744073709551613 `div` 18446744073709551614 = 0
-18446744073709551613 `div` 18446744073709551615 = 0
-18446744073709551613 `div` 0 = divide by zero
-18446744073709551613 `div` 1 = 18446744073709551613
-18446744073709551613 `div` 2 = 9223372036854775806
-18446744073709551613 `div` 3 = 6148914691236517204
-
-18446744073709551614 `div` 18446744073709551613 = 1
-18446744073709551614 `div` 18446744073709551614 = 1
-18446744073709551614 `div` 18446744073709551615 = 0
-18446744073709551614 `div` 0 = divide by zero
-18446744073709551614 `div` 1 = 18446744073709551614
-18446744073709551614 `div` 2 = 9223372036854775807
-18446744073709551614 `div` 3 = 6148914691236517204
-
-18446744073709551615 `div` 18446744073709551613 = 1
-18446744073709551615 `div` 18446744073709551614 = 1
-18446744073709551615 `div` 18446744073709551615 = 1
-18446744073709551615 `div` 0 = divide by zero
-18446744073709551615 `div` 1 = 18446744073709551615
-18446744073709551615 `div` 2 = 9223372036854775807
-18446744073709551615 `div` 3 = 6148914691236517205
-
-0 `div` 18446744073709551613 = 0
-0 `div` 18446744073709551614 = 0
-0 `div` 18446744073709551615 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` 18446744073709551613 = 0
-1 `div` 18446744073709551614 = 0
-1 `div` 18446744073709551615 = 0
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` 18446744073709551613 = 0
-2 `div` 18446744073709551614 = 0
-2 `div` 18446744073709551615 = 0
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` 18446744073709551613 = 0
-3 `div` 18446744073709551614 = 0
-3 `div` 18446744073709551615 = 0
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
-18446744073709551613 `mod` 18446744073709551613 = 0
-18446744073709551613 `mod` 18446744073709551614 = 18446744073709551613
-18446744073709551613 `mod` 18446744073709551615 = 18446744073709551613
-18446744073709551613 `mod` 0 = divide by zero
-18446744073709551613 `mod` 1 = 0
-18446744073709551613 `mod` 2 = 1
-18446744073709551613 `mod` 3 = 1
-
-18446744073709551614 `mod` 18446744073709551613 = 1
-18446744073709551614 `mod` 18446744073709551614 = 0
-18446744073709551614 `mod` 18446744073709551615 = 18446744073709551614
-18446744073709551614 `mod` 0 = divide by zero
-18446744073709551614 `mod` 1 = 0
-18446744073709551614 `mod` 2 = 0
-18446744073709551614 `mod` 3 = 2
-
-18446744073709551615 `mod` 18446744073709551613 = 2
-18446744073709551615 `mod` 18446744073709551614 = 1
-18446744073709551615 `mod` 18446744073709551615 = 0
-18446744073709551615 `mod` 0 = divide by zero
-18446744073709551615 `mod` 1 = 0
-18446744073709551615 `mod` 2 = 1
-18446744073709551615 `mod` 3 = 0
-
-0 `mod` 18446744073709551613 = 0
-0 `mod` 18446744073709551614 = 0
-0 `mod` 18446744073709551615 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` 18446744073709551613 = 1
-1 `mod` 18446744073709551614 = 1
-1 `mod` 18446744073709551615 = 1
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` 18446744073709551613 = 2
-2 `mod` 18446744073709551614 = 2
-2 `mod` 18446744073709551615 = 2
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` 18446744073709551613 = 3
-3 `mod` 18446744073709551614 = 3
-3 `mod` 18446744073709551615 = 3
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
-18446744073709551613 `quotRem` 18446744073709551613 = (1,0)
-18446744073709551613 `quotRem` 18446744073709551614 = (0,18446744073709551613)
-18446744073709551613 `quotRem` 18446744073709551615 = (0,18446744073709551613)
-18446744073709551613 `quotRem` 0 = divide by zero
-18446744073709551613 `quotRem` 1 = (18446744073709551613,0)
-18446744073709551613 `quotRem` 2 = (9223372036854775806,1)
-18446744073709551613 `quotRem` 3 = (6148914691236517204,1)
-
-18446744073709551614 `quotRem` 18446744073709551613 = (1,1)
-18446744073709551614 `quotRem` 18446744073709551614 = (1,0)
-18446744073709551614 `quotRem` 18446744073709551615 = (0,18446744073709551614)
-18446744073709551614 `quotRem` 0 = divide by zero
-18446744073709551614 `quotRem` 1 = (18446744073709551614,0)
-18446744073709551614 `quotRem` 2 = (9223372036854775807,0)
-18446744073709551614 `quotRem` 3 = (6148914691236517204,2)
-
-18446744073709551615 `quotRem` 18446744073709551613 = (1,2)
-18446744073709551615 `quotRem` 18446744073709551614 = (1,1)
-18446744073709551615 `quotRem` 18446744073709551615 = (1,0)
-18446744073709551615 `quotRem` 0 = divide by zero
-18446744073709551615 `quotRem` 1 = (18446744073709551615,0)
-18446744073709551615 `quotRem` 2 = (9223372036854775807,1)
-18446744073709551615 `quotRem` 3 = (6148914691236517205,0)
-
-0 `quotRem` 18446744073709551613 = (0,0)
-0 `quotRem` 18446744073709551614 = (0,0)
-0 `quotRem` 18446744073709551615 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` 18446744073709551613 = (0,1)
-1 `quotRem` 18446744073709551614 = (0,1)
-1 `quotRem` 18446744073709551615 = (0,1)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` 18446744073709551613 = (0,2)
-2 `quotRem` 18446744073709551614 = (0,2)
-2 `quotRem` 18446744073709551615 = (0,2)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` 18446744073709551613 = (0,3)
-3 `quotRem` 18446744073709551614 = (0,3)
-3 `quotRem` 18446744073709551615 = (0,3)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
-18446744073709551613 `quot` 18446744073709551613 = 1
-18446744073709551613 `quot` 18446744073709551614 = 0
-18446744073709551613 `quot` 18446744073709551615 = 0
-18446744073709551613 `quot` 0 = divide by zero
-18446744073709551613 `quot` 1 = 18446744073709551613
-18446744073709551613 `quot` 2 = 9223372036854775806
-18446744073709551613 `quot` 3 = 6148914691236517204
-
-18446744073709551614 `quot` 18446744073709551613 = 1
-18446744073709551614 `quot` 18446744073709551614 = 1
-18446744073709551614 `quot` 18446744073709551615 = 0
-18446744073709551614 `quot` 0 = divide by zero
-18446744073709551614 `quot` 1 = 18446744073709551614
-18446744073709551614 `quot` 2 = 9223372036854775807
-18446744073709551614 `quot` 3 = 6148914691236517204
-
-18446744073709551615 `quot` 18446744073709551613 = 1
-18446744073709551615 `quot` 18446744073709551614 = 1
-18446744073709551615 `quot` 18446744073709551615 = 1
-18446744073709551615 `quot` 0 = divide by zero
-18446744073709551615 `quot` 1 = 18446744073709551615
-18446744073709551615 `quot` 2 = 9223372036854775807
-18446744073709551615 `quot` 3 = 6148914691236517205
-
-0 `quot` 18446744073709551613 = 0
-0 `quot` 18446744073709551614 = 0
-0 `quot` 18446744073709551615 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` 18446744073709551613 = 0
-1 `quot` 18446744073709551614 = 0
-1 `quot` 18446744073709551615 = 0
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` 18446744073709551613 = 0
-2 `quot` 18446744073709551614 = 0
-2 `quot` 18446744073709551615 = 0
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` 18446744073709551613 = 0
-3 `quot` 18446744073709551614 = 0
-3 `quot` 18446744073709551615 = 0
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
-18446744073709551613 `rem` 18446744073709551613 = 0
-18446744073709551613 `rem` 18446744073709551614 = 18446744073709551613
-18446744073709551613 `rem` 18446744073709551615 = 18446744073709551613
-18446744073709551613 `rem` 0 = divide by zero
-18446744073709551613 `rem` 1 = 0
-18446744073709551613 `rem` 2 = 1
-18446744073709551613 `rem` 3 = 1
-
-18446744073709551614 `rem` 18446744073709551613 = 1
-18446744073709551614 `rem` 18446744073709551614 = 0
-18446744073709551614 `rem` 18446744073709551615 = 18446744073709551614
-18446744073709551614 `rem` 0 = divide by zero
-18446744073709551614 `rem` 1 = 0
-18446744073709551614 `rem` 2 = 0
-18446744073709551614 `rem` 3 = 2
-
-18446744073709551615 `rem` 18446744073709551613 = 2
-18446744073709551615 `rem` 18446744073709551614 = 1
-18446744073709551615 `rem` 18446744073709551615 = 0
-18446744073709551615 `rem` 0 = divide by zero
-18446744073709551615 `rem` 1 = 0
-18446744073709551615 `rem` 2 = 1
-18446744073709551615 `rem` 3 = 0
-
-0 `rem` 18446744073709551613 = 0
-0 `rem` 18446744073709551614 = 0
-0 `rem` 18446744073709551615 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` 18446744073709551613 = 1
-1 `rem` 18446744073709551614 = 1
-1 `rem` 18446744073709551615 = 1
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` 18446744073709551613 = 2
-2 `rem` 18446744073709551614 = 2
-2 `rem` 18446744073709551615 = 2
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` 18446744073709551613 = 3
-3 `rem` 18446744073709551614 = 3
-3 `rem` 18446744073709551615 = 3
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testConversions
-Integer : [0,0,18446744073709551615]
-Int : [0,0,-1]
-Int8 : [0,0,-1]
-Int16 : [0,0,-1]
-Int32 : [0,0,-1]
-Int64 : [0,0,-1]
-Word8 : [0,0,255]
-Word16 : [0,0,65535]
-Word32 : [0,0,4294967295]
-Word64 : [0,0,18446744073709551615]
-testBits
-18446744073709551613 .&. 18446744073709551613 = 18446744073709551613
-18446744073709551613 .&. 18446744073709551614 = 18446744073709551612
-18446744073709551613 .&. 18446744073709551615 = 18446744073709551613
-18446744073709551613 .&. 0 = 0
-18446744073709551613 .&. 1 = 1
-18446744073709551613 .&. 2 = 0
-18446744073709551613 .&. 3 = 1
-
-18446744073709551614 .&. 18446744073709551613 = 18446744073709551612
-18446744073709551614 .&. 18446744073709551614 = 18446744073709551614
-18446744073709551614 .&. 18446744073709551615 = 18446744073709551614
-18446744073709551614 .&. 0 = 0
-18446744073709551614 .&. 1 = 0
-18446744073709551614 .&. 2 = 2
-18446744073709551614 .&. 3 = 2
-
-18446744073709551615 .&. 18446744073709551613 = 18446744073709551613
-18446744073709551615 .&. 18446744073709551614 = 18446744073709551614
-18446744073709551615 .&. 18446744073709551615 = 18446744073709551615
-18446744073709551615 .&. 0 = 0
-18446744073709551615 .&. 1 = 1
-18446744073709551615 .&. 2 = 2
-18446744073709551615 .&. 3 = 3
-
-0 .&. 18446744073709551613 = 0
-0 .&. 18446744073709551614 = 0
-0 .&. 18446744073709551615 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. 18446744073709551613 = 1
-1 .&. 18446744073709551614 = 0
-1 .&. 18446744073709551615 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. 18446744073709551613 = 0
-2 .&. 18446744073709551614 = 2
-2 .&. 18446744073709551615 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. 18446744073709551613 = 1
-3 .&. 18446744073709551614 = 2
-3 .&. 18446744073709551615 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
-18446744073709551613 .|. 18446744073709551613 = 18446744073709551613
-18446744073709551613 .|. 18446744073709551614 = 18446744073709551615
-18446744073709551613 .|. 18446744073709551615 = 18446744073709551615
-18446744073709551613 .|. 0 = 18446744073709551613
-18446744073709551613 .|. 1 = 18446744073709551613
-18446744073709551613 .|. 2 = 18446744073709551615
-18446744073709551613 .|. 3 = 18446744073709551615
-
-18446744073709551614 .|. 18446744073709551613 = 18446744073709551615
-18446744073709551614 .|. 18446744073709551614 = 18446744073709551614
-18446744073709551614 .|. 18446744073709551615 = 18446744073709551615
-18446744073709551614 .|. 0 = 18446744073709551614
-18446744073709551614 .|. 1 = 18446744073709551615
-18446744073709551614 .|. 2 = 18446744073709551614
-18446744073709551614 .|. 3 = 18446744073709551615
-
-18446744073709551615 .|. 18446744073709551613 = 18446744073709551615
-18446744073709551615 .|. 18446744073709551614 = 18446744073709551615
-18446744073709551615 .|. 18446744073709551615 = 18446744073709551615
-18446744073709551615 .|. 0 = 18446744073709551615
-18446744073709551615 .|. 1 = 18446744073709551615
-18446744073709551615 .|. 2 = 18446744073709551615
-18446744073709551615 .|. 3 = 18446744073709551615
-
-0 .|. 18446744073709551613 = 18446744073709551613
-0 .|. 18446744073709551614 = 18446744073709551614
-0 .|. 18446744073709551615 = 18446744073709551615
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. 18446744073709551613 = 18446744073709551613
-1 .|. 18446744073709551614 = 18446744073709551615
-1 .|. 18446744073709551615 = 18446744073709551615
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. 18446744073709551613 = 18446744073709551615
-2 .|. 18446744073709551614 = 18446744073709551614
-2 .|. 18446744073709551615 = 18446744073709551615
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. 18446744073709551613 = 18446744073709551615
-3 .|. 18446744073709551614 = 18446744073709551615
-3 .|. 18446744073709551615 = 18446744073709551615
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
-18446744073709551613 `xor` 18446744073709551613 = 0
-18446744073709551613 `xor` 18446744073709551614 = 3
-18446744073709551613 `xor` 18446744073709551615 = 2
-18446744073709551613 `xor` 0 = 18446744073709551613
-18446744073709551613 `xor` 1 = 18446744073709551612
-18446744073709551613 `xor` 2 = 18446744073709551615
-18446744073709551613 `xor` 3 = 18446744073709551614
-
-18446744073709551614 `xor` 18446744073709551613 = 3
-18446744073709551614 `xor` 18446744073709551614 = 0
-18446744073709551614 `xor` 18446744073709551615 = 1
-18446744073709551614 `xor` 0 = 18446744073709551614
-18446744073709551614 `xor` 1 = 18446744073709551615
-18446744073709551614 `xor` 2 = 18446744073709551612
-18446744073709551614 `xor` 3 = 18446744073709551613
-
-18446744073709551615 `xor` 18446744073709551613 = 2
-18446744073709551615 `xor` 18446744073709551614 = 1
-18446744073709551615 `xor` 18446744073709551615 = 0
-18446744073709551615 `xor` 0 = 18446744073709551615
-18446744073709551615 `xor` 1 = 18446744073709551614
-18446744073709551615 `xor` 2 = 18446744073709551613
-18446744073709551615 `xor` 3 = 18446744073709551612
-
-0 `xor` 18446744073709551613 = 18446744073709551613
-0 `xor` 18446744073709551614 = 18446744073709551614
-0 `xor` 18446744073709551615 = 18446744073709551615
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` 18446744073709551613 = 18446744073709551612
-1 `xor` 18446744073709551614 = 18446744073709551615
-1 `xor` 18446744073709551615 = 18446744073709551614
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` 18446744073709551613 = 18446744073709551615
-2 `xor` 18446744073709551614 = 18446744073709551612
-2 `xor` 18446744073709551615 = 18446744073709551613
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` 18446744073709551613 = 18446744073709551614
-3 `xor` 18446744073709551614 = 18446744073709551613
-3 `xor` 18446744073709551615 = 18446744073709551612
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement 18446744073709551613 = 2
-complement 18446744073709551614 = 1
-complement 18446744073709551615 = 0
-complement 0 = 18446744073709551615
-complement 1 = 18446744073709551614
-complement 2 = 18446744073709551613
-complement 3 = 18446744073709551612
-#
-18446744073709551613 `shiftL` 0 = 18446744073709551613
-18446744073709551613 `shiftL` 1 = 18446744073709551610
-18446744073709551613 `shiftL` 2 = 18446744073709551604
-18446744073709551613 `shiftL` 3 = 18446744073709551592
-18446744073709551613 `shiftL` 32 = 18446744060824649728
-18446744073709551613 `shiftL` 64 = 0
-
-18446744073709551614 `shiftL` 0 = 18446744073709551614
-18446744073709551614 `shiftL` 1 = 18446744073709551612
-18446744073709551614 `shiftL` 2 = 18446744073709551608
-18446744073709551614 `shiftL` 3 = 18446744073709551600
-18446744073709551614 `shiftL` 32 = 18446744065119617024
-18446744073709551614 `shiftL` 64 = 0
-
-18446744073709551615 `shiftL` 0 = 18446744073709551615
-18446744073709551615 `shiftL` 1 = 18446744073709551614
-18446744073709551615 `shiftL` 2 = 18446744073709551612
-18446744073709551615 `shiftL` 3 = 18446744073709551608
-18446744073709551615 `shiftL` 32 = 18446744069414584320
-18446744073709551615 `shiftL` 64 = 0
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 4294967296
-1 `shiftL` 64 = 0
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 8589934592
-2 `shiftL` 64 = 0
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 12884901888
-3 `shiftL` 64 = 0
-
-#
-18446744073709551613 `shiftR` 0 = 18446744073709551613
-18446744073709551613 `shiftR` 1 = 9223372036854775806
-18446744073709551613 `shiftR` 2 = 4611686018427387903
-18446744073709551613 `shiftR` 3 = 2305843009213693951
-18446744073709551613 `shiftR` 32 = 4294967295
-18446744073709551613 `shiftR` 64 = 0
-
-18446744073709551614 `shiftR` 0 = 18446744073709551614
-18446744073709551614 `shiftR` 1 = 9223372036854775807
-18446744073709551614 `shiftR` 2 = 4611686018427387903
-18446744073709551614 `shiftR` 3 = 2305843009213693951
-18446744073709551614 `shiftR` 32 = 4294967295
-18446744073709551614 `shiftR` 64 = 0
-
-18446744073709551615 `shiftR` 0 = 18446744073709551615
-18446744073709551615 `shiftR` 1 = 9223372036854775807
-18446744073709551615 `shiftR` 2 = 4611686018427387903
-18446744073709551615 `shiftR` 3 = 2305843009213693951
-18446744073709551615 `shiftR` 32 = 4294967295
-18446744073709551615 `shiftR` 64 = 0
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
-18446744073709551613 `rotate` -3 = 13835058055282163711
-18446744073709551613 `rotate` -2 = 9223372036854775807
-18446744073709551613 `rotate` -1 = 18446744073709551614
-18446744073709551613 `rotate` 0 = 18446744073709551613
-18446744073709551613 `rotate` 1 = 18446744073709551611
-18446744073709551613 `rotate` 2 = 18446744073709551607
-18446744073709551613 `rotate` 3 = 18446744073709551599
-18446744073709551613 `rotate` -64 = 18446744073709551613
-18446744073709551613 `rotate` -32 = 18446744065119617023
-18446744073709551613 `rotate` 32 = 18446744065119617023
-18446744073709551613 `rotate` 64 = 18446744073709551613
-
-18446744073709551614 `rotate` -3 = 16140901064495857663
-18446744073709551614 `rotate` -2 = 13835058055282163711
-18446744073709551614 `rotate` -1 = 9223372036854775807
-18446744073709551614 `rotate` 0 = 18446744073709551614
-18446744073709551614 `rotate` 1 = 18446744073709551613
-18446744073709551614 `rotate` 2 = 18446744073709551611
-18446744073709551614 `rotate` 3 = 18446744073709551607
-18446744073709551614 `rotate` -64 = 18446744073709551614
-18446744073709551614 `rotate` -32 = 18446744069414584319
-18446744073709551614 `rotate` 32 = 18446744069414584319
-18446744073709551614 `rotate` 64 = 18446744073709551614
-
-18446744073709551615 `rotate` -3 = 18446744073709551615
-18446744073709551615 `rotate` -2 = 18446744073709551615
-18446744073709551615 `rotate` -1 = 18446744073709551615
-18446744073709551615 `rotate` 0 = 18446744073709551615
-18446744073709551615 `rotate` 1 = 18446744073709551615
-18446744073709551615 `rotate` 2 = 18446744073709551615
-18446744073709551615 `rotate` 3 = 18446744073709551615
-18446744073709551615 `rotate` -64 = 18446744073709551615
-18446744073709551615 `rotate` -32 = 18446744073709551615
-18446744073709551615 `rotate` 32 = 18446744073709551615
-18446744073709551615 `rotate` 64 = 18446744073709551615
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-0 `rotate` -64 = 0
-0 `rotate` -32 = 0
-0 `rotate` 32 = 0
-0 `rotate` 64 = 0
-
-1 `rotate` -3 = 2305843009213693952
-1 `rotate` -2 = 4611686018427387904
-1 `rotate` -1 = 9223372036854775808
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-1 `rotate` -64 = 1
-1 `rotate` -32 = 4294967296
-1 `rotate` 32 = 4294967296
-1 `rotate` 64 = 1
-
-2 `rotate` -3 = 4611686018427387904
-2 `rotate` -2 = 9223372036854775808
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-2 `rotate` -64 = 2
-2 `rotate` -32 = 8589934592
-2 `rotate` 32 = 8589934592
-2 `rotate` 64 = 2
-
-3 `rotate` -3 = 6917529027641081856
-3 `rotate` -2 = 13835058055282163712
-3 `rotate` -1 = 9223372036854775809
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-3 `rotate` -64 = 3
-3 `rotate` -32 = 12884901888
-3 `rotate` 32 = 12884901888
-3 `rotate` 64 = 3
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
-18446744073709551613 `setBit` 0 = 18446744073709551613
-18446744073709551613 `setBit` 1 = 18446744073709551615
-18446744073709551613 `setBit` 2 = 18446744073709551613
-18446744073709551613 `setBit` 3 = 18446744073709551613
-18446744073709551613 `setBit` 32 = 18446744073709551613
-18446744073709551613 `setBit` 64 = 18446744073709551613
-
-18446744073709551614 `setBit` 0 = 18446744073709551615
-18446744073709551614 `setBit` 1 = 18446744073709551614
-18446744073709551614 `setBit` 2 = 18446744073709551614
-18446744073709551614 `setBit` 3 = 18446744073709551614
-18446744073709551614 `setBit` 32 = 18446744073709551614
-18446744073709551614 `setBit` 64 = 18446744073709551614
-
-18446744073709551615 `setBit` 0 = 18446744073709551615
-18446744073709551615 `setBit` 1 = 18446744073709551615
-18446744073709551615 `setBit` 2 = 18446744073709551615
-18446744073709551615 `setBit` 3 = 18446744073709551615
-18446744073709551615 `setBit` 32 = 18446744073709551615
-18446744073709551615 `setBit` 64 = 18446744073709551615
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 4294967296
-0 `setBit` 64 = 0
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 4294967297
-1 `setBit` 64 = 1
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 4294967298
-2 `setBit` 64 = 2
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 4294967299
-3 `setBit` 64 = 3
-
-#
-18446744073709551613 `clearBit` 0 = 18446744073709551612
-18446744073709551613 `clearBit` 1 = 18446744073709551613
-18446744073709551613 `clearBit` 2 = 18446744073709551609
-18446744073709551613 `clearBit` 3 = 18446744073709551605
-18446744073709551613 `clearBit` 32 = 18446744069414584317
-18446744073709551613 `clearBit` 64 = 18446744073709551613
-
-18446744073709551614 `clearBit` 0 = 18446744073709551614
-18446744073709551614 `clearBit` 1 = 18446744073709551612
-18446744073709551614 `clearBit` 2 = 18446744073709551610
-18446744073709551614 `clearBit` 3 = 18446744073709551606
-18446744073709551614 `clearBit` 32 = 18446744069414584318
-18446744073709551614 `clearBit` 64 = 18446744073709551614
-
-18446744073709551615 `clearBit` 0 = 18446744073709551614
-18446744073709551615 `clearBit` 1 = 18446744073709551613
-18446744073709551615 `clearBit` 2 = 18446744073709551611
-18446744073709551615 `clearBit` 3 = 18446744073709551607
-18446744073709551615 `clearBit` 32 = 18446744069414584319
-18446744073709551615 `clearBit` 64 = 18446744073709551615
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
-18446744073709551613 `complementBit` 0 = 18446744073709551612
-18446744073709551613 `complementBit` 1 = 18446744073709551615
-18446744073709551613 `complementBit` 2 = 18446744073709551609
-18446744073709551613 `complementBit` 3 = 18446744073709551605
-18446744073709551613 `complementBit` 32 = 18446744069414584317
-18446744073709551613 `complementBit` 64 = 18446744073709551613
-
-18446744073709551614 `complementBit` 0 = 18446744073709551615
-18446744073709551614 `complementBit` 1 = 18446744073709551612
-18446744073709551614 `complementBit` 2 = 18446744073709551610
-18446744073709551614 `complementBit` 3 = 18446744073709551606
-18446744073709551614 `complementBit` 32 = 18446744069414584318
-18446744073709551614 `complementBit` 64 = 18446744073709551614
-
-18446744073709551615 `complementBit` 0 = 18446744073709551614
-18446744073709551615 `complementBit` 1 = 18446744073709551613
-18446744073709551615 `complementBit` 2 = 18446744073709551611
-18446744073709551615 `complementBit` 3 = 18446744073709551607
-18446744073709551615 `complementBit` 32 = 18446744069414584319
-18446744073709551615 `complementBit` 64 = 18446744073709551615
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 4294967296
-0 `complementBit` 64 = 0
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 4294967297
-1 `complementBit` 64 = 1
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 4294967298
-2 `complementBit` 64 = 2
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 4294967299
-3 `complementBit` 64 = 3
-
-#
-18446744073709551613 `testBit` 0 = True
-18446744073709551613 `testBit` 1 = False
-18446744073709551613 `testBit` 2 = True
-18446744073709551613 `testBit` 3 = True
-18446744073709551613 `testBit` 32 = True
-18446744073709551613 `testBit` 64 = False
-
-18446744073709551614 `testBit` 0 = False
-18446744073709551614 `testBit` 1 = True
-18446744073709551614 `testBit` 2 = True
-18446744073709551614 `testBit` 3 = True
-18446744073709551614 `testBit` 32 = True
-18446744073709551614 `testBit` 64 = False
-
-18446744073709551615 `testBit` 0 = True
-18446744073709551615 `testBit` 1 = True
-18446744073709551615 `testBit` 2 = True
-18446744073709551615 `testBit` 3 = True
-18446744073709551615 `testBit` 32 = True
-18446744073709551615 `testBit` 64 = False
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-bitSize 18446744073709551613 = 64
-bitSize 18446744073709551614 = 64
-bitSize 18446744073709551615 = 64
-bitSize 0 = 64
-bitSize 1 = 64
-bitSize 2 = 64
-bitSize 3 = 64
-#
-isSigned 18446744073709551613 = False
-isSigned 18446744073709551614 = False
-isSigned 18446744073709551615 = False
-isSigned 0 = False
-isSigned 1 = False
-isSigned 2 = False
-isSigned 3 = False
-#
---------------------------------
---Testing Integer
---------------------------------
-testEnum
-[0,1,2,3,4,5,6,7,8,9]
-[0,2,4,6,8,10,12,14,16,18]
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-[0,2,4,6,8,10,12,14,16,18,20]
-testReadShow
-[-3,-2,-1,0,1,2,3]
-[-3,-2,-1,0,1,2,3]
-testEq
--3 == -3 = True
--3 == -2 = False
--3 == -1 = False
--3 == 0 = False
--3 == 1 = False
--3 == 2 = False
--3 == 3 = False
-
--2 == -3 = False
--2 == -2 = True
--2 == -1 = False
--2 == 0 = False
--2 == 1 = False
--2 == 2 = False
--2 == 3 = False
-
--1 == -3 = False
--1 == -2 = False
--1 == -1 = True
--1 == 0 = False
--1 == 1 = False
--1 == 2 = False
--1 == 3 = False
-
-0 == -3 = False
-0 == -2 = False
-0 == -1 = False
-0 == 0 = True
-0 == 1 = False
-0 == 2 = False
-0 == 3 = False
-
-1 == -3 = False
-1 == -2 = False
-1 == -1 = False
-1 == 0 = False
-1 == 1 = True
-1 == 2 = False
-1 == 3 = False
-
-2 == -3 = False
-2 == -2 = False
-2 == -1 = False
-2 == 0 = False
-2 == 1 = False
-2 == 2 = True
-2 == 3 = False
-
-3 == -3 = False
-3 == -2 = False
-3 == -1 = False
-3 == 0 = False
-3 == 1 = False
-3 == 2 = False
-3 == 3 = True
-
-#
--3 /= -3 = False
--3 /= -2 = True
--3 /= -1 = True
--3 /= 0 = True
--3 /= 1 = True
--3 /= 2 = True
--3 /= 3 = True
-
--2 /= -3 = True
--2 /= -2 = False
--2 /= -1 = True
--2 /= 0 = True
--2 /= 1 = True
--2 /= 2 = True
--2 /= 3 = True
-
--1 /= -3 = True
--1 /= -2 = True
--1 /= -1 = False
--1 /= 0 = True
--1 /= 1 = True
--1 /= 2 = True
--1 /= 3 = True
-
-0 /= -3 = True
-0 /= -2 = True
-0 /= -1 = True
-0 /= 0 = False
-0 /= 1 = True
-0 /= 2 = True
-0 /= 3 = True
-
-1 /= -3 = True
-1 /= -2 = True
-1 /= -1 = True
-1 /= 0 = True
-1 /= 1 = False
-1 /= 2 = True
-1 /= 3 = True
-
-2 /= -3 = True
-2 /= -2 = True
-2 /= -1 = True
-2 /= 0 = True
-2 /= 1 = True
-2 /= 2 = False
-2 /= 3 = True
-
-3 /= -3 = True
-3 /= -2 = True
-3 /= -1 = True
-3 /= 0 = True
-3 /= 1 = True
-3 /= 2 = True
-3 /= 3 = False
-
-#
-testOrd
--3 <= -3 = True
--3 <= -2 = True
--3 <= -1 = True
--3 <= 0 = True
--3 <= 1 = True
--3 <= 2 = True
--3 <= 3 = True
-
--2 <= -3 = False
--2 <= -2 = True
--2 <= -1 = True
--2 <= 0 = True
--2 <= 1 = True
--2 <= 2 = True
--2 <= 3 = True
-
--1 <= -3 = False
--1 <= -2 = False
--1 <= -1 = True
--1 <= 0 = True
--1 <= 1 = True
--1 <= 2 = True
--1 <= 3 = True
-
-0 <= -3 = False
-0 <= -2 = False
-0 <= -1 = False
-0 <= 0 = True
-0 <= 1 = True
-0 <= 2 = True
-0 <= 3 = True
-
-1 <= -3 = False
-1 <= -2 = False
-1 <= -1 = False
-1 <= 0 = False
-1 <= 1 = True
-1 <= 2 = True
-1 <= 3 = True
-
-2 <= -3 = False
-2 <= -2 = False
-2 <= -1 = False
-2 <= 0 = False
-2 <= 1 = False
-2 <= 2 = True
-2 <= 3 = True
-
-3 <= -3 = False
-3 <= -2 = False
-3 <= -1 = False
-3 <= 0 = False
-3 <= 1 = False
-3 <= 2 = False
-3 <= 3 = True
-
-#
--3 < -3 = False
--3 < -2 = True
--3 < -1 = True
--3 < 0 = True
--3 < 1 = True
--3 < 2 = True
--3 < 3 = True
-
--2 < -3 = False
--2 < -2 = False
--2 < -1 = True
--2 < 0 = True
--2 < 1 = True
--2 < 2 = True
--2 < 3 = True
-
--1 < -3 = False
--1 < -2 = False
--1 < -1 = False
--1 < 0 = True
--1 < 1 = True
--1 < 2 = True
--1 < 3 = True
-
-0 < -3 = False
-0 < -2 = False
-0 < -1 = False
-0 < 0 = False
-0 < 1 = True
-0 < 2 = True
-0 < 3 = True
-
-1 < -3 = False
-1 < -2 = False
-1 < -1 = False
-1 < 0 = False
-1 < 1 = False
-1 < 2 = True
-1 < 3 = True
-
-2 < -3 = False
-2 < -2 = False
-2 < -1 = False
-2 < 0 = False
-2 < 1 = False
-2 < 2 = False
-2 < 3 = True
-
-3 < -3 = False
-3 < -2 = False
-3 < -1 = False
-3 < 0 = False
-3 < 1 = False
-3 < 2 = False
-3 < 3 = False
-
-#
--3 > -3 = False
--3 > -2 = False
--3 > -1 = False
--3 > 0 = False
--3 > 1 = False
--3 > 2 = False
--3 > 3 = False
-
--2 > -3 = True
--2 > -2 = False
--2 > -1 = False
--2 > 0 = False
--2 > 1 = False
--2 > 2 = False
--2 > 3 = False
-
--1 > -3 = True
--1 > -2 = True
--1 > -1 = False
--1 > 0 = False
--1 > 1 = False
--1 > 2 = False
--1 > 3 = False
-
-0 > -3 = True
-0 > -2 = True
-0 > -1 = True
-0 > 0 = False
-0 > 1 = False
-0 > 2 = False
-0 > 3 = False
-
-1 > -3 = True
-1 > -2 = True
-1 > -1 = True
-1 > 0 = True
-1 > 1 = False
-1 > 2 = False
-1 > 3 = False
-
-2 > -3 = True
-2 > -2 = True
-2 > -1 = True
-2 > 0 = True
-2 > 1 = True
-2 > 2 = False
-2 > 3 = False
-
-3 > -3 = True
-3 > -2 = True
-3 > -1 = True
-3 > 0 = True
-3 > 1 = True
-3 > 2 = True
-3 > 3 = False
-
-#
--3 >= -3 = True
--3 >= -2 = False
--3 >= -1 = False
--3 >= 0 = False
--3 >= 1 = False
--3 >= 2 = False
--3 >= 3 = False
-
--2 >= -3 = True
--2 >= -2 = True
--2 >= -1 = False
--2 >= 0 = False
--2 >= 1 = False
--2 >= 2 = False
--2 >= 3 = False
-
--1 >= -3 = True
--1 >= -2 = True
--1 >= -1 = True
--1 >= 0 = False
--1 >= 1 = False
--1 >= 2 = False
--1 >= 3 = False
-
-0 >= -3 = True
-0 >= -2 = True
-0 >= -1 = True
-0 >= 0 = True
-0 >= 1 = False
-0 >= 2 = False
-0 >= 3 = False
-
-1 >= -3 = True
-1 >= -2 = True
-1 >= -1 = True
-1 >= 0 = True
-1 >= 1 = True
-1 >= 2 = False
-1 >= 3 = False
-
-2 >= -3 = True
-2 >= -2 = True
-2 >= -1 = True
-2 >= 0 = True
-2 >= 1 = True
-2 >= 2 = True
-2 >= 3 = False
-
-3 >= -3 = True
-3 >= -2 = True
-3 >= -1 = True
-3 >= 0 = True
-3 >= 1 = True
-3 >= 2 = True
-3 >= 3 = True
-
-#
--3 `compare` -3 = EQ
--3 `compare` -2 = LT
--3 `compare` -1 = LT
--3 `compare` 0 = LT
--3 `compare` 1 = LT
--3 `compare` 2 = LT
--3 `compare` 3 = LT
-
--2 `compare` -3 = GT
--2 `compare` -2 = EQ
--2 `compare` -1 = LT
--2 `compare` 0 = LT
--2 `compare` 1 = LT
--2 `compare` 2 = LT
--2 `compare` 3 = LT
-
--1 `compare` -3 = GT
--1 `compare` -2 = GT
--1 `compare` -1 = EQ
--1 `compare` 0 = LT
--1 `compare` 1 = LT
--1 `compare` 2 = LT
--1 `compare` 3 = LT
-
-0 `compare` -3 = GT
-0 `compare` -2 = GT
-0 `compare` -1 = GT
-0 `compare` 0 = EQ
-0 `compare` 1 = LT
-0 `compare` 2 = LT
-0 `compare` 3 = LT
-
-1 `compare` -3 = GT
-1 `compare` -2 = GT
-1 `compare` -1 = GT
-1 `compare` 0 = GT
-1 `compare` 1 = EQ
-1 `compare` 2 = LT
-1 `compare` 3 = LT
-
-2 `compare` -3 = GT
-2 `compare` -2 = GT
-2 `compare` -1 = GT
-2 `compare` 0 = GT
-2 `compare` 1 = GT
-2 `compare` 2 = EQ
-2 `compare` 3 = LT
-
-3 `compare` -3 = GT
-3 `compare` -2 = GT
-3 `compare` -1 = GT
-3 `compare` 0 = GT
-3 `compare` 1 = GT
-3 `compare` 2 = GT
-3 `compare` 3 = EQ
-
-#
-testNum
--3 + -3 = -6
--3 + -2 = -5
--3 + -1 = -4
--3 + 0 = -3
--3 + 1 = -2
--3 + 2 = -1
--3 + 3 = 0
-
--2 + -3 = -5
--2 + -2 = -4
--2 + -1 = -3
--2 + 0 = -2
--2 + 1 = -1
--2 + 2 = 0
--2 + 3 = 1
-
--1 + -3 = -4
--1 + -2 = -3
--1 + -1 = -2
--1 + 0 = -1
--1 + 1 = 0
--1 + 2 = 1
--1 + 3 = 2
-
-0 + -3 = -3
-0 + -2 = -2
-0 + -1 = -1
-0 + 0 = 0
-0 + 1 = 1
-0 + 2 = 2
-0 + 3 = 3
-
-1 + -3 = -2
-1 + -2 = -1
-1 + -1 = 0
-1 + 0 = 1
-1 + 1 = 2
-1 + 2 = 3
-1 + 3 = 4
-
-2 + -3 = -1
-2 + -2 = 0
-2 + -1 = 1
-2 + 0 = 2
-2 + 1 = 3
-2 + 2 = 4
-2 + 3 = 5
-
-3 + -3 = 0
-3 + -2 = 1
-3 + -1 = 2
-3 + 0 = 3
-3 + 1 = 4
-3 + 2 = 5
-3 + 3 = 6
-
-#
--3 - -3 = 0
--3 - -2 = -1
--3 - -1 = -2
--3 - 0 = -3
--3 - 1 = -4
--3 - 2 = -5
--3 - 3 = -6
-
--2 - -3 = 1
--2 - -2 = 0
--2 - -1 = -1
--2 - 0 = -2
--2 - 1 = -3
--2 - 2 = -4
--2 - 3 = -5
-
--1 - -3 = 2
--1 - -2 = 1
--1 - -1 = 0
--1 - 0 = -1
--1 - 1 = -2
--1 - 2 = -3
--1 - 3 = -4
-
-0 - -3 = 3
-0 - -2 = 2
-0 - -1 = 1
-0 - 0 = 0
-0 - 1 = -1
-0 - 2 = -2
-0 - 3 = -3
-
-1 - -3 = 4
-1 - -2 = 3
-1 - -1 = 2
-1 - 0 = 1
-1 - 1 = 0
-1 - 2 = -1
-1 - 3 = -2
-
-2 - -3 = 5
-2 - -2 = 4
-2 - -1 = 3
-2 - 0 = 2
-2 - 1 = 1
-2 - 2 = 0
-2 - 3 = -1
-
-3 - -3 = 6
-3 - -2 = 5
-3 - -1 = 4
-3 - 0 = 3
-3 - 1 = 2
-3 - 2 = 1
-3 - 3 = 0
-
-#
--3 * -3 = 9
--3 * -2 = 6
--3 * -1 = 3
--3 * 0 = 0
--3 * 1 = -3
--3 * 2 = -6
--3 * 3 = -9
-
--2 * -3 = 6
--2 * -2 = 4
--2 * -1 = 2
--2 * 0 = 0
--2 * 1 = -2
--2 * 2 = -4
--2 * 3 = -6
-
--1 * -3 = 3
--1 * -2 = 2
--1 * -1 = 1
--1 * 0 = 0
--1 * 1 = -1
--1 * 2 = -2
--1 * 3 = -3
-
-0 * -3 = 0
-0 * -2 = 0
-0 * -1 = 0
-0 * 0 = 0
-0 * 1 = 0
-0 * 2 = 0
-0 * 3 = 0
-
-1 * -3 = -3
-1 * -2 = -2
-1 * -1 = -1
-1 * 0 = 0
-1 * 1 = 1
-1 * 2 = 2
-1 * 3 = 3
-
-2 * -3 = -6
-2 * -2 = -4
-2 * -1 = -2
-2 * 0 = 0
-2 * 1 = 2
-2 * 2 = 4
-2 * 3 = 6
-
-3 * -3 = -9
-3 * -2 = -6
-3 * -1 = -3
-3 * 0 = 0
-3 * 1 = 3
-3 * 2 = 6
-3 * 3 = 9
-
-#
-negate -3 = 3
-negate -2 = 2
-negate -1 = 1
-negate 0 = 0
-negate 1 = -1
-negate 2 = -2
-negate 3 = -3
-#
-testReal
-toRational -3 = (-3) % 1
-toRational -2 = (-2) % 1
-toRational -1 = (-1) % 1
-toRational 0 = 0 % 1
-toRational 1 = 1 % 1
-toRational 2 = 2 % 1
-toRational 3 = 3 % 1
-#
-testIntegral
--3 `divMod` -3 = (1,0)
--3 `divMod` -2 = (1,-1)
--3 `divMod` -1 = (3,0)
--3 `divMod` 0 = divide by zero
--3 `divMod` 1 = (-3,0)
--3 `divMod` 2 = (-2,1)
--3 `divMod` 3 = (-1,0)
-
--2 `divMod` -3 = (0,-2)
--2 `divMod` -2 = (1,0)
--2 `divMod` -1 = (2,0)
--2 `divMod` 0 = divide by zero
--2 `divMod` 1 = (-2,0)
--2 `divMod` 2 = (-1,0)
--2 `divMod` 3 = (-1,1)
-
--1 `divMod` -3 = (0,-1)
--1 `divMod` -2 = (0,-1)
--1 `divMod` -1 = (1,0)
--1 `divMod` 0 = divide by zero
--1 `divMod` 1 = (-1,0)
--1 `divMod` 2 = (-1,1)
--1 `divMod` 3 = (-1,2)
-
-0 `divMod` -3 = (0,0)
-0 `divMod` -2 = (0,0)
-0 `divMod` -1 = (0,0)
-0 `divMod` 0 = divide by zero
-0 `divMod` 1 = (0,0)
-0 `divMod` 2 = (0,0)
-0 `divMod` 3 = (0,0)
-
-1 `divMod` -3 = (-1,-2)
-1 `divMod` -2 = (-1,-1)
-1 `divMod` -1 = (-1,0)
-1 `divMod` 0 = divide by zero
-1 `divMod` 1 = (1,0)
-1 `divMod` 2 = (0,1)
-1 `divMod` 3 = (0,1)
-
-2 `divMod` -3 = (-1,-1)
-2 `divMod` -2 = (-1,0)
-2 `divMod` -1 = (-2,0)
-2 `divMod` 0 = divide by zero
-2 `divMod` 1 = (2,0)
-2 `divMod` 2 = (1,0)
-2 `divMod` 3 = (0,2)
-
-3 `divMod` -3 = (-1,0)
-3 `divMod` -2 = (-2,-1)
-3 `divMod` -1 = (-3,0)
-3 `divMod` 0 = divide by zero
-3 `divMod` 1 = (3,0)
-3 `divMod` 2 = (1,1)
-3 `divMod` 3 = (1,0)
-
-#
--3 `div` -3 = 1
--3 `div` -2 = 1
--3 `div` -1 = 3
--3 `div` 0 = divide by zero
--3 `div` 1 = -3
--3 `div` 2 = -2
--3 `div` 3 = -1
-
--2 `div` -3 = 0
--2 `div` -2 = 1
--2 `div` -1 = 2
--2 `div` 0 = divide by zero
--2 `div` 1 = -2
--2 `div` 2 = -1
--2 `div` 3 = -1
-
--1 `div` -3 = 0
--1 `div` -2 = 0
--1 `div` -1 = 1
--1 `div` 0 = divide by zero
--1 `div` 1 = -1
--1 `div` 2 = -1
--1 `div` 3 = -1
-
-0 `div` -3 = 0
-0 `div` -2 = 0
-0 `div` -1 = 0
-0 `div` 0 = divide by zero
-0 `div` 1 = 0
-0 `div` 2 = 0
-0 `div` 3 = 0
-
-1 `div` -3 = -1
-1 `div` -2 = -1
-1 `div` -1 = -1
-1 `div` 0 = divide by zero
-1 `div` 1 = 1
-1 `div` 2 = 0
-1 `div` 3 = 0
-
-2 `div` -3 = -1
-2 `div` -2 = -1
-2 `div` -1 = -2
-2 `div` 0 = divide by zero
-2 `div` 1 = 2
-2 `div` 2 = 1
-2 `div` 3 = 0
-
-3 `div` -3 = -1
-3 `div` -2 = -2
-3 `div` -1 = -3
-3 `div` 0 = divide by zero
-3 `div` 1 = 3
-3 `div` 2 = 1
-3 `div` 3 = 1
-
-#
--3 `mod` -3 = 0
--3 `mod` -2 = -1
--3 `mod` -1 = 0
--3 `mod` 0 = divide by zero
--3 `mod` 1 = 0
--3 `mod` 2 = 1
--3 `mod` 3 = 0
-
--2 `mod` -3 = -2
--2 `mod` -2 = 0
--2 `mod` -1 = 0
--2 `mod` 0 = divide by zero
--2 `mod` 1 = 0
--2 `mod` 2 = 0
--2 `mod` 3 = 1
-
--1 `mod` -3 = -1
--1 `mod` -2 = -1
--1 `mod` -1 = 0
--1 `mod` 0 = divide by zero
--1 `mod` 1 = 0
--1 `mod` 2 = 1
--1 `mod` 3 = 2
-
-0 `mod` -3 = 0
-0 `mod` -2 = 0
-0 `mod` -1 = 0
-0 `mod` 0 = divide by zero
-0 `mod` 1 = 0
-0 `mod` 2 = 0
-0 `mod` 3 = 0
-
-1 `mod` -3 = -2
-1 `mod` -2 = -1
-1 `mod` -1 = 0
-1 `mod` 0 = divide by zero
-1 `mod` 1 = 0
-1 `mod` 2 = 1
-1 `mod` 3 = 1
-
-2 `mod` -3 = -1
-2 `mod` -2 = 0
-2 `mod` -1 = 0
-2 `mod` 0 = divide by zero
-2 `mod` 1 = 0
-2 `mod` 2 = 0
-2 `mod` 3 = 2
-
-3 `mod` -3 = 0
-3 `mod` -2 = -1
-3 `mod` -1 = 0
-3 `mod` 0 = divide by zero
-3 `mod` 1 = 0
-3 `mod` 2 = 1
-3 `mod` 3 = 0
-
-#
--3 `quotRem` -3 = (1,0)
--3 `quotRem` -2 = (1,-1)
--3 `quotRem` -1 = (3,0)
--3 `quotRem` 0 = divide by zero
--3 `quotRem` 1 = (-3,0)
--3 `quotRem` 2 = (-1,-1)
--3 `quotRem` 3 = (-1,0)
-
--2 `quotRem` -3 = (0,-2)
--2 `quotRem` -2 = (1,0)
--2 `quotRem` -1 = (2,0)
--2 `quotRem` 0 = divide by zero
--2 `quotRem` 1 = (-2,0)
--2 `quotRem` 2 = (-1,0)
--2 `quotRem` 3 = (0,-2)
-
--1 `quotRem` -3 = (0,-1)
--1 `quotRem` -2 = (0,-1)
--1 `quotRem` -1 = (1,0)
--1 `quotRem` 0 = divide by zero
--1 `quotRem` 1 = (-1,0)
--1 `quotRem` 2 = (0,-1)
--1 `quotRem` 3 = (0,-1)
-
-0 `quotRem` -3 = (0,0)
-0 `quotRem` -2 = (0,0)
-0 `quotRem` -1 = (0,0)
-0 `quotRem` 0 = divide by zero
-0 `quotRem` 1 = (0,0)
-0 `quotRem` 2 = (0,0)
-0 `quotRem` 3 = (0,0)
-
-1 `quotRem` -3 = (0,1)
-1 `quotRem` -2 = (0,1)
-1 `quotRem` -1 = (-1,0)
-1 `quotRem` 0 = divide by zero
-1 `quotRem` 1 = (1,0)
-1 `quotRem` 2 = (0,1)
-1 `quotRem` 3 = (0,1)
-
-2 `quotRem` -3 = (0,2)
-2 `quotRem` -2 = (-1,0)
-2 `quotRem` -1 = (-2,0)
-2 `quotRem` 0 = divide by zero
-2 `quotRem` 1 = (2,0)
-2 `quotRem` 2 = (1,0)
-2 `quotRem` 3 = (0,2)
-
-3 `quotRem` -3 = (-1,0)
-3 `quotRem` -2 = (-1,1)
-3 `quotRem` -1 = (-3,0)
-3 `quotRem` 0 = divide by zero
-3 `quotRem` 1 = (3,0)
-3 `quotRem` 2 = (1,1)
-3 `quotRem` 3 = (1,0)
-
-#
--3 `quot` -3 = 1
--3 `quot` -2 = 1
--3 `quot` -1 = 3
--3 `quot` 0 = divide by zero
--3 `quot` 1 = -3
--3 `quot` 2 = -1
--3 `quot` 3 = -1
-
--2 `quot` -3 = 0
--2 `quot` -2 = 1
--2 `quot` -1 = 2
--2 `quot` 0 = divide by zero
--2 `quot` 1 = -2
--2 `quot` 2 = -1
--2 `quot` 3 = 0
-
--1 `quot` -3 = 0
--1 `quot` -2 = 0
--1 `quot` -1 = 1
--1 `quot` 0 = divide by zero
--1 `quot` 1 = -1
--1 `quot` 2 = 0
--1 `quot` 3 = 0
-
-0 `quot` -3 = 0
-0 `quot` -2 = 0
-0 `quot` -1 = 0
-0 `quot` 0 = divide by zero
-0 `quot` 1 = 0
-0 `quot` 2 = 0
-0 `quot` 3 = 0
-
-1 `quot` -3 = 0
-1 `quot` -2 = 0
-1 `quot` -1 = -1
-1 `quot` 0 = divide by zero
-1 `quot` 1 = 1
-1 `quot` 2 = 0
-1 `quot` 3 = 0
-
-2 `quot` -3 = 0
-2 `quot` -2 = -1
-2 `quot` -1 = -2
-2 `quot` 0 = divide by zero
-2 `quot` 1 = 2
-2 `quot` 2 = 1
-2 `quot` 3 = 0
-
-3 `quot` -3 = -1
-3 `quot` -2 = -1
-3 `quot` -1 = -3
-3 `quot` 0 = divide by zero
-3 `quot` 1 = 3
-3 `quot` 2 = 1
-3 `quot` 3 = 1
-
-#
--3 `rem` -3 = 0
--3 `rem` -2 = -1
--3 `rem` -1 = 0
--3 `rem` 0 = divide by zero
--3 `rem` 1 = 0
--3 `rem` 2 = -1
--3 `rem` 3 = 0
-
--2 `rem` -3 = -2
--2 `rem` -2 = 0
--2 `rem` -1 = 0
--2 `rem` 0 = divide by zero
--2 `rem` 1 = 0
--2 `rem` 2 = 0
--2 `rem` 3 = -2
-
--1 `rem` -3 = -1
--1 `rem` -2 = -1
--1 `rem` -1 = 0
--1 `rem` 0 = divide by zero
--1 `rem` 1 = 0
--1 `rem` 2 = -1
--1 `rem` 3 = -1
-
-0 `rem` -3 = 0
-0 `rem` -2 = 0
-0 `rem` -1 = 0
-0 `rem` 0 = divide by zero
-0 `rem` 1 = 0
-0 `rem` 2 = 0
-0 `rem` 3 = 0
-
-1 `rem` -3 = 1
-1 `rem` -2 = 1
-1 `rem` -1 = 0
-1 `rem` 0 = divide by zero
-1 `rem` 1 = 0
-1 `rem` 2 = 1
-1 `rem` 3 = 1
-
-2 `rem` -3 = 2
-2 `rem` -2 = 0
-2 `rem` -1 = 0
-2 `rem` 0 = divide by zero
-2 `rem` 1 = 0
-2 `rem` 2 = 0
-2 `rem` 3 = 2
-
-3 `rem` -3 = 0
-3 `rem` -2 = 1
-3 `rem` -1 = 0
-3 `rem` 0 = divide by zero
-3 `rem` 1 = 0
-3 `rem` 2 = 1
-3 `rem` 3 = 0
-
-#
-testBits
--3 .&. -3 = -3
--3 .&. -2 = -4
--3 .&. -1 = -3
--3 .&. 0 = 0
--3 .&. 1 = 1
--3 .&. 2 = 0
--3 .&. 3 = 1
-
--2 .&. -3 = -4
--2 .&. -2 = -2
--2 .&. -1 = -2
--2 .&. 0 = 0
--2 .&. 1 = 0
--2 .&. 2 = 2
--2 .&. 3 = 2
-
--1 .&. -3 = -3
--1 .&. -2 = -2
--1 .&. -1 = -1
--1 .&. 0 = 0
--1 .&. 1 = 1
--1 .&. 2 = 2
--1 .&. 3 = 3
-
-0 .&. -3 = 0
-0 .&. -2 = 0
-0 .&. -1 = 0
-0 .&. 0 = 0
-0 .&. 1 = 0
-0 .&. 2 = 0
-0 .&. 3 = 0
-
-1 .&. -3 = 1
-1 .&. -2 = 0
-1 .&. -1 = 1
-1 .&. 0 = 0
-1 .&. 1 = 1
-1 .&. 2 = 0
-1 .&. 3 = 1
-
-2 .&. -3 = 0
-2 .&. -2 = 2
-2 .&. -1 = 2
-2 .&. 0 = 0
-2 .&. 1 = 0
-2 .&. 2 = 2
-2 .&. 3 = 2
-
-3 .&. -3 = 1
-3 .&. -2 = 2
-3 .&. -1 = 3
-3 .&. 0 = 0
-3 .&. 1 = 1
-3 .&. 2 = 2
-3 .&. 3 = 3
-
-#
--3 .|. -3 = -3
--3 .|. -2 = -1
--3 .|. -1 = -1
--3 .|. 0 = -3
--3 .|. 1 = -3
--3 .|. 2 = -1
--3 .|. 3 = -1
-
--2 .|. -3 = -1
--2 .|. -2 = -2
--2 .|. -1 = -1
--2 .|. 0 = -2
--2 .|. 1 = -1
--2 .|. 2 = -2
--2 .|. 3 = -1
-
--1 .|. -3 = -1
--1 .|. -2 = -1
--1 .|. -1 = -1
--1 .|. 0 = -1
--1 .|. 1 = -1
--1 .|. 2 = -1
--1 .|. 3 = -1
-
-0 .|. -3 = -3
-0 .|. -2 = -2
-0 .|. -1 = -1
-0 .|. 0 = 0
-0 .|. 1 = 1
-0 .|. 2 = 2
-0 .|. 3 = 3
-
-1 .|. -3 = -3
-1 .|. -2 = -1
-1 .|. -1 = -1
-1 .|. 0 = 1
-1 .|. 1 = 1
-1 .|. 2 = 3
-1 .|. 3 = 3
-
-2 .|. -3 = -1
-2 .|. -2 = -2
-2 .|. -1 = -1
-2 .|. 0 = 2
-2 .|. 1 = 3
-2 .|. 2 = 2
-2 .|. 3 = 3
-
-3 .|. -3 = -1
-3 .|. -2 = -1
-3 .|. -1 = -1
-3 .|. 0 = 3
-3 .|. 1 = 3
-3 .|. 2 = 3
-3 .|. 3 = 3
-
-#
--3 `xor` -3 = 0
--3 `xor` -2 = 3
--3 `xor` -1 = 2
--3 `xor` 0 = -3
--3 `xor` 1 = -4
--3 `xor` 2 = -1
--3 `xor` 3 = -2
-
--2 `xor` -3 = 3
--2 `xor` -2 = 0
--2 `xor` -1 = 1
--2 `xor` 0 = -2
--2 `xor` 1 = -1
--2 `xor` 2 = -4
--2 `xor` 3 = -3
-
--1 `xor` -3 = 2
--1 `xor` -2 = 1
--1 `xor` -1 = 0
--1 `xor` 0 = -1
--1 `xor` 1 = -2
--1 `xor` 2 = -3
--1 `xor` 3 = -4
-
-0 `xor` -3 = -3
-0 `xor` -2 = -2
-0 `xor` -1 = -1
-0 `xor` 0 = 0
-0 `xor` 1 = 1
-0 `xor` 2 = 2
-0 `xor` 3 = 3
-
-1 `xor` -3 = -4
-1 `xor` -2 = -1
-1 `xor` -1 = -2
-1 `xor` 0 = 1
-1 `xor` 1 = 0
-1 `xor` 2 = 3
-1 `xor` 3 = 2
-
-2 `xor` -3 = -1
-2 `xor` -2 = -4
-2 `xor` -1 = -3
-2 `xor` 0 = 2
-2 `xor` 1 = 3
-2 `xor` 2 = 0
-2 `xor` 3 = 1
-
-3 `xor` -3 = -2
-3 `xor` -2 = -3
-3 `xor` -1 = -4
-3 `xor` 0 = 3
-3 `xor` 1 = 2
-3 `xor` 2 = 1
-3 `xor` 3 = 0
-
-#
-complement -3 = 2
-complement -2 = 1
-complement -1 = 0
-complement 0 = -1
-complement 1 = -2
-complement 2 = -3
-complement 3 = -4
-#
--3 `shiftL` 0 = -3
--3 `shiftL` 1 = -6
--3 `shiftL` 2 = -12
--3 `shiftL` 3 = -24
--3 `shiftL` 32 = -12884901888
--3 `shiftL` 64 = -55340232221128654848
-
--2 `shiftL` 0 = -2
--2 `shiftL` 1 = -4
--2 `shiftL` 2 = -8
--2 `shiftL` 3 = -16
--2 `shiftL` 32 = -8589934592
--2 `shiftL` 64 = -36893488147419103232
-
--1 `shiftL` 0 = -1
--1 `shiftL` 1 = -2
--1 `shiftL` 2 = -4
--1 `shiftL` 3 = -8
--1 `shiftL` 32 = -4294967296
--1 `shiftL` 64 = -18446744073709551616
-
-0 `shiftL` 0 = 0
-0 `shiftL` 1 = 0
-0 `shiftL` 2 = 0
-0 `shiftL` 3 = 0
-0 `shiftL` 32 = 0
-0 `shiftL` 64 = 0
-
-1 `shiftL` 0 = 1
-1 `shiftL` 1 = 2
-1 `shiftL` 2 = 4
-1 `shiftL` 3 = 8
-1 `shiftL` 32 = 4294967296
-1 `shiftL` 64 = 18446744073709551616
-
-2 `shiftL` 0 = 2
-2 `shiftL` 1 = 4
-2 `shiftL` 2 = 8
-2 `shiftL` 3 = 16
-2 `shiftL` 32 = 8589934592
-2 `shiftL` 64 = 36893488147419103232
-
-3 `shiftL` 0 = 3
-3 `shiftL` 1 = 6
-3 `shiftL` 2 = 12
-3 `shiftL` 3 = 24
-3 `shiftL` 32 = 12884901888
-3 `shiftL` 64 = 55340232221128654848
-
-#
--3 `shiftR` 0 = -3
--3 `shiftR` 1 = -2
--3 `shiftR` 2 = -1
--3 `shiftR` 3 = -1
--3 `shiftR` 32 = -1
--3 `shiftR` 64 = -1
-
--2 `shiftR` 0 = -2
--2 `shiftR` 1 = -1
--2 `shiftR` 2 = -1
--2 `shiftR` 3 = -1
--2 `shiftR` 32 = -1
--2 `shiftR` 64 = -1
-
--1 `shiftR` 0 = -1
--1 `shiftR` 1 = -1
--1 `shiftR` 2 = -1
--1 `shiftR` 3 = -1
--1 `shiftR` 32 = -1
--1 `shiftR` 64 = -1
-
-0 `shiftR` 0 = 0
-0 `shiftR` 1 = 0
-0 `shiftR` 2 = 0
-0 `shiftR` 3 = 0
-0 `shiftR` 32 = 0
-0 `shiftR` 64 = 0
-
-1 `shiftR` 0 = 1
-1 `shiftR` 1 = 0
-1 `shiftR` 2 = 0
-1 `shiftR` 3 = 0
-1 `shiftR` 32 = 0
-1 `shiftR` 64 = 0
-
-2 `shiftR` 0 = 2
-2 `shiftR` 1 = 1
-2 `shiftR` 2 = 0
-2 `shiftR` 3 = 0
-2 `shiftR` 32 = 0
-2 `shiftR` 64 = 0
-
-3 `shiftR` 0 = 3
-3 `shiftR` 1 = 1
-3 `shiftR` 2 = 0
-3 `shiftR` 3 = 0
-3 `shiftR` 32 = 0
-3 `shiftR` 64 = 0
-
-#
--3 `rotate` -3 = -1
--3 `rotate` -2 = -1
--3 `rotate` -1 = -2
--3 `rotate` 0 = -3
--3 `rotate` 1 = -6
--3 `rotate` 2 = -12
--3 `rotate` 3 = -24
--3 `rotate` -64 = -1
--3 `rotate` -32 = -1
--3 `rotate` 32 = -12884901888
--3 `rotate` 64 = -55340232221128654848
-
--2 `rotate` -3 = -1
--2 `rotate` -2 = -1
--2 `rotate` -1 = -1
--2 `rotate` 0 = -2
--2 `rotate` 1 = -4
--2 `rotate` 2 = -8
--2 `rotate` 3 = -16
--2 `rotate` -64 = -1
--2 `rotate` -32 = -1
--2 `rotate` 32 = -8589934592
--2 `rotate` 64 = -36893488147419103232
-
--1 `rotate` -3 = -1
--1 `rotate` -2 = -1
--1 `rotate` -1 = -1
--1 `rotate` 0 = -1
--1 `rotate` 1 = -2
--1 `rotate` 2 = -4
--1 `rotate` 3 = -8
--1 `rotate` -64 = -1
--1 `rotate` -32 = -1
--1 `rotate` 32 = -4294967296
--1 `rotate` 64 = -18446744073709551616
-
-0 `rotate` -3 = 0
-0 `rotate` -2 = 0
-0 `rotate` -1 = 0
-0 `rotate` 0 = 0
-0 `rotate` 1 = 0
-0 `rotate` 2 = 0
-0 `rotate` 3 = 0
-0 `rotate` -64 = 0
-0 `rotate` -32 = 0
-0 `rotate` 32 = 0
-0 `rotate` 64 = 0
-
-1 `rotate` -3 = 0
-1 `rotate` -2 = 0
-1 `rotate` -1 = 0
-1 `rotate` 0 = 1
-1 `rotate` 1 = 2
-1 `rotate` 2 = 4
-1 `rotate` 3 = 8
-1 `rotate` -64 = 0
-1 `rotate` -32 = 0
-1 `rotate` 32 = 4294967296
-1 `rotate` 64 = 18446744073709551616
-
-2 `rotate` -3 = 0
-2 `rotate` -2 = 0
-2 `rotate` -1 = 1
-2 `rotate` 0 = 2
-2 `rotate` 1 = 4
-2 `rotate` 2 = 8
-2 `rotate` 3 = 16
-2 `rotate` -64 = 0
-2 `rotate` -32 = 0
-2 `rotate` 32 = 8589934592
-2 `rotate` 64 = 36893488147419103232
-
-3 `rotate` -3 = 0
-3 `rotate` -2 = 0
-3 `rotate` -1 = 1
-3 `rotate` 0 = 3
-3 `rotate` 1 = 6
-3 `rotate` 2 = 12
-3 `rotate` 3 = 24
-3 `rotate` -64 = 0
-3 `rotate` -32 = 0
-3 `rotate` 32 = 12884901888
-3 `rotate` 64 = 55340232221128654848
-
-#
-bit 0 = 1
-bit 1 = 2
-bit 2 = 4
-bit 3 = 8
-#
--3 `setBit` 0 = -3
--3 `setBit` 1 = -1
--3 `setBit` 2 = -3
--3 `setBit` 3 = -3
--3 `setBit` 32 = -3
--3 `setBit` 64 = -3
-
--2 `setBit` 0 = -1
--2 `setBit` 1 = -2
--2 `setBit` 2 = -2
--2 `setBit` 3 = -2
--2 `setBit` 32 = -2
--2 `setBit` 64 = -2
-
--1 `setBit` 0 = -1
--1 `setBit` 1 = -1
--1 `setBit` 2 = -1
--1 `setBit` 3 = -1
--1 `setBit` 32 = -1
--1 `setBit` 64 = -1
-
-0 `setBit` 0 = 1
-0 `setBit` 1 = 2
-0 `setBit` 2 = 4
-0 `setBit` 3 = 8
-0 `setBit` 32 = 4294967296
-0 `setBit` 64 = 18446744073709551616
-
-1 `setBit` 0 = 1
-1 `setBit` 1 = 3
-1 `setBit` 2 = 5
-1 `setBit` 3 = 9
-1 `setBit` 32 = 4294967297
-1 `setBit` 64 = 18446744073709551617
-
-2 `setBit` 0 = 3
-2 `setBit` 1 = 2
-2 `setBit` 2 = 6
-2 `setBit` 3 = 10
-2 `setBit` 32 = 4294967298
-2 `setBit` 64 = 18446744073709551618
-
-3 `setBit` 0 = 3
-3 `setBit` 1 = 3
-3 `setBit` 2 = 7
-3 `setBit` 3 = 11
-3 `setBit` 32 = 4294967299
-3 `setBit` 64 = 18446744073709551619
-
-#
--3 `clearBit` 0 = -4
--3 `clearBit` 1 = -3
--3 `clearBit` 2 = -7
--3 `clearBit` 3 = -11
--3 `clearBit` 32 = -4294967299
--3 `clearBit` 64 = -18446744073709551619
-
--2 `clearBit` 0 = -2
--2 `clearBit` 1 = -4
--2 `clearBit` 2 = -6
--2 `clearBit` 3 = -10
--2 `clearBit` 32 = -4294967298
--2 `clearBit` 64 = -18446744073709551618
-
--1 `clearBit` 0 = -2
--1 `clearBit` 1 = -3
--1 `clearBit` 2 = -5
--1 `clearBit` 3 = -9
--1 `clearBit` 32 = -4294967297
--1 `clearBit` 64 = -18446744073709551617
-
-0 `clearBit` 0 = 0
-0 `clearBit` 1 = 0
-0 `clearBit` 2 = 0
-0 `clearBit` 3 = 0
-0 `clearBit` 32 = 0
-0 `clearBit` 64 = 0
-
-1 `clearBit` 0 = 0
-1 `clearBit` 1 = 1
-1 `clearBit` 2 = 1
-1 `clearBit` 3 = 1
-1 `clearBit` 32 = 1
-1 `clearBit` 64 = 1
-
-2 `clearBit` 0 = 2
-2 `clearBit` 1 = 0
-2 `clearBit` 2 = 2
-2 `clearBit` 3 = 2
-2 `clearBit` 32 = 2
-2 `clearBit` 64 = 2
-
-3 `clearBit` 0 = 2
-3 `clearBit` 1 = 1
-3 `clearBit` 2 = 3
-3 `clearBit` 3 = 3
-3 `clearBit` 32 = 3
-3 `clearBit` 64 = 3
-
-#
--3 `complementBit` 0 = -4
--3 `complementBit` 1 = -1
--3 `complementBit` 2 = -7
--3 `complementBit` 3 = -11
--3 `complementBit` 32 = -4294967299
--3 `complementBit` 64 = -18446744073709551619
-
--2 `complementBit` 0 = -1
--2 `complementBit` 1 = -4
--2 `complementBit` 2 = -6
--2 `complementBit` 3 = -10
--2 `complementBit` 32 = -4294967298
--2 `complementBit` 64 = -18446744073709551618
-
--1 `complementBit` 0 = -2
--1 `complementBit` 1 = -3
--1 `complementBit` 2 = -5
--1 `complementBit` 3 = -9
--1 `complementBit` 32 = -4294967297
--1 `complementBit` 64 = -18446744073709551617
-
-0 `complementBit` 0 = 1
-0 `complementBit` 1 = 2
-0 `complementBit` 2 = 4
-0 `complementBit` 3 = 8
-0 `complementBit` 32 = 4294967296
-0 `complementBit` 64 = 18446744073709551616
-
-1 `complementBit` 0 = 0
-1 `complementBit` 1 = 3
-1 `complementBit` 2 = 5
-1 `complementBit` 3 = 9
-1 `complementBit` 32 = 4294967297
-1 `complementBit` 64 = 18446744073709551617
-
-2 `complementBit` 0 = 3
-2 `complementBit` 1 = 0
-2 `complementBit` 2 = 6
-2 `complementBit` 3 = 10
-2 `complementBit` 32 = 4294967298
-2 `complementBit` 64 = 18446744073709551618
-
-3 `complementBit` 0 = 2
-3 `complementBit` 1 = 1
-3 `complementBit` 2 = 7
-3 `complementBit` 3 = 11
-3 `complementBit` 32 = 4294967299
-3 `complementBit` 64 = 18446744073709551619
-
-#
--3 `testBit` 0 = True
--3 `testBit` 1 = False
--3 `testBit` 2 = True
--3 `testBit` 3 = True
--3 `testBit` 32 = True
--3 `testBit` 64 = True
-
--2 `testBit` 0 = False
--2 `testBit` 1 = True
--2 `testBit` 2 = True
--2 `testBit` 3 = True
--2 `testBit` 32 = True
--2 `testBit` 64 = True
-
--1 `testBit` 0 = True
--1 `testBit` 1 = True
--1 `testBit` 2 = True
--1 `testBit` 3 = True
--1 `testBit` 32 = True
--1 `testBit` 64 = True
-
-0 `testBit` 0 = False
-0 `testBit` 1 = False
-0 `testBit` 2 = False
-0 `testBit` 3 = False
-0 `testBit` 32 = False
-0 `testBit` 64 = False
-
-1 `testBit` 0 = True
-1 `testBit` 1 = False
-1 `testBit` 2 = False
-1 `testBit` 3 = False
-1 `testBit` 32 = False
-1 `testBit` 64 = False
-
-2 `testBit` 0 = False
-2 `testBit` 1 = True
-2 `testBit` 2 = False
-2 `testBit` 3 = False
-2 `testBit` 32 = False
-2 `testBit` 64 = False
-
-3 `testBit` 0 = True
-3 `testBit` 1 = True
-3 `testBit` 2 = False
-3 `testBit` 3 = False
-3 `testBit` 32 = False
-3 `testBit` 64 = False
-
-#
-isSigned -3 = True
-isSigned -2 = True
-isSigned -1 = True
-isSigned 0 = True
-isSigned 1 = True
-isSigned 2 = True
-isSigned 3 = True
-#
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith012.hs b/testsuite/tests/ghc-regress/numeric/should_run/arith012.hs
deleted file mode 100644
index f9f9ec778e..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith012.hs
+++ /dev/null
@@ -1,90 +0,0 @@
--- !!! Testing NumExts
-module Main(main) where
-
-import Numeric
-import Data.Char
-
-main :: IO ()
-main = tst
-
-tst :: IO ()
-tst = do
- test_doubleToFloat
- test_floatToDouble
- test_showHex
- test_showOct
- test_showBin
-
-----
--- Test data:
-doubles :: [Double]
-doubles = [ -1.2 , 0, 0.1, 0.5, 1.0, 1234.45454,
- 1.6053e4, 1.64022e12, 6.894e-4, 6.34543455634582173,
- 5342413403.40540423255]
-ints :: [Int]
-ints = [ 0, 1, 255, 65513, 6029, 1024, 256, 201357245]
-
-integers :: [Integer]
-integers = [ 0, 1, 255, 65513, 6029, 1024, 256,
- 2343243543500233, 656194962055457832]
----
-
-test_doubleToFloat :: IO ()
-test_doubleToFloat = do
- test_banner "doubleToFloat"
- putStrLn (show doubles)
- putStrLn (show $ map doubleToFloat doubles)
-
-doubleToFloat :: Double -> Float
-doubleToFloat = realToFrac
-
-floatToDouble :: Float -> Double
-floatToDouble = realToFrac
-
-test_floatToDouble :: IO ()
-test_floatToDouble = do
- test_banner "doubleToFloat"
- putStrLn (show doubles)
- putStrLn (show $ map doubleToFloat doubles)
- putStrLn (show $ map (floatToDouble.doubleToFloat) doubles)
-
-test_showHex :: IO ()
-test_showHex = do
- test_banner "showHex"
- putStrLn (show ints)
- putStrLn (showList' (map showHex ints))
- putStrLn (show integers)
- putStrLn (showList' (map showHex integers))
-
-test_showBin :: IO ()
-test_showBin = do
- test_banner "showBin"
- putStrLn (show ints)
- putStrLn (showList' (map showBin ints))
- putStrLn (show integers)
- putStrLn (showList' (map showBin integers))
-
-showBin i = showIntAtBase 2 intToDigit i
-
-showList' :: [ShowS] -> String
-showList' [] = "[]"
-showList' (x:xs) = showChar '[' . x $ showl xs ""
- where
- showl [] = showChar ']'
- showl (x:xs) = showChar ',' . x . showl xs
-
-
-test_showOct :: IO ()
-test_showOct = do
- test_banner "showOct"
- putStrLn (show ints)
- putStrLn (showList' (map showOct ints))
- putStrLn (show integers)
- putStrLn (showList' (map showOct integers))
-
-----
-test_banner :: String -> IO ()
-test_banner tst = do
- putStrLn $ "--------------------------------"
- putStrLn $ "--Testing " ++ tst
- putStrLn $ "--------------------------------"
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith012.stdout b/testsuite/tests/ghc-regress/numeric/should_run/arith012.stdout
deleted file mode 100644
index c1c38c7f5a..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith012.stdout
+++ /dev/null
@@ -1,32 +0,0 @@
---------------------------------
---Testing doubleToFloat
---------------------------------
-[-1.2,0.0,0.1,0.5,1.0,1234.45454,16053.0,1.64022e12,6.894e-4,6.345434556345822,5.342413403405404e9]
-[-1.2,0.0,0.1,0.5,1.0,1234.4546,16053.0,1.64022e12,6.894e-4,6.3454347,5.3424133e9]
---------------------------------
---Testing doubleToFloat
---------------------------------
-[-1.2,0.0,0.1,0.5,1.0,1234.45454,16053.0,1.64022e12,6.894e-4,6.345434556345822,5.342413403405404e9]
-[-1.2,0.0,0.1,0.5,1.0,1234.4546,16053.0,1.64022e12,6.894e-4,6.3454347,5.3424133e9]
-[-1.2000000476837158,0.0,0.10000000149011612,0.5,1.0,1234.45458984375,16053.0,1.64021993472e12,6.894000107422471e-4,6.345434665679932,5.342413312e9]
---------------------------------
---Testing showHex
---------------------------------
-[0,1,255,65513,6029,1024,256,201357245]
-[0,1,ff,ffe9,178d,400,100,c0077bd]
-[0,1,255,65513,6029,1024,256,2343243543500233,656194962055457832]
-[0,1,ff,ffe9,178d,400,100,8532ae70855c9,91b45d760b76c28]
---------------------------------
---Testing showOct
---------------------------------
-[0,1,255,65513,6029,1024,256,201357245]
-[0,1,377,177751,13615,2000,400,1400073675]
-[0,1,255,65513,6029,1024,256,2343243543500233,656194962055457832]
-[0,1,377,177751,13615,2000,400,102462534702052711,44332135354055666050]
---------------------------------
---Testing showBin
---------------------------------
-[0,1,255,65513,6029,1024,256,201357245]
-[0,1,11111111,1111111111101001,1011110001101,10000000000,100000000,1100000000000111011110111101]
-[0,1,255,65513,6029,1024,256,2343243543500233,656194962055457832]
-[0,1,11111111,1111111111101001,1011110001101,10000000000,100000000,1000010100110010101011100111000010000101010111001001,100100011011010001011101011101100000101101110110110000101000]
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith013.hs b/testsuite/tests/ghc-regress/numeric/should_run/arith013.hs
deleted file mode 100644
index a03cbb3795..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith013.hs
+++ /dev/null
@@ -1,13 +0,0 @@
--- Test gcdInt/gcdInteger
-
-import GHC.Real ( gcdInt )
-import GHC.Num ( gcdInteger )
-
-main :: IO ()
-main = do
- test gcdInt [ -42, 0, 105 ]
- test gcdInteger [-12193263111263526900, -42, 0, 105, 1234567890 ]
-
-
-test :: Integral a => (a -> a -> a) -> [a] -> IO ()
-test f xs = mapM_ print [ (a, b, f a b) | a <- xs, b <- reverse xs, a /= 0 || b /= 0 ]
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith013.stdout b/testsuite/tests/ghc-regress/numeric/should_run/arith013.stdout
deleted file mode 100644
index ff440977df..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith013.stdout
+++ /dev/null
@@ -1,32 +0,0 @@
-(-42,105,21)
-(-42,0,42)
-(-42,-42,42)
-(0,105,105)
-(0,-42,42)
-(105,105,105)
-(105,0,105)
-(105,-42,21)
-(-12193263111263526900,1234567890,1234567890)
-(-12193263111263526900,105,15)
-(-12193263111263526900,0,12193263111263526900)
-(-12193263111263526900,-42,6)
-(-12193263111263526900,-12193263111263526900,12193263111263526900)
-(-42,1234567890,6)
-(-42,105,21)
-(-42,0,42)
-(-42,-42,42)
-(-42,-12193263111263526900,6)
-(0,1234567890,1234567890)
-(0,105,105)
-(0,-42,42)
-(0,-12193263111263526900,12193263111263526900)
-(105,1234567890,15)
-(105,105,105)
-(105,0,105)
-(105,-42,21)
-(105,-12193263111263526900,15)
-(1234567890,1234567890,1234567890)
-(1234567890,105,15)
-(1234567890,0,1234567890)
-(1234567890,-42,6)
-(1234567890,-12193263111263526900,1234567890)
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith014.hs b/testsuite/tests/ghc-regress/numeric/should_run/arith014.hs
deleted file mode 100644
index 92fc362ee8..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith014.hs
+++ /dev/null
@@ -1,11 +0,0 @@
--- Test behaviour of fromInteger when the target type is out of range.
-
-main :: IO ()
-main =
- print [
- fromInteger maxInt2 :: Int,
- fromInteger minInt2 :: Int
- ]
-
-maxInt2 = fromIntegral (maxBound :: Int) * 2 :: Integer
-minInt2 = fromIntegral (minBound + 1 :: Int) * 2 :: Integer
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith014.stdout b/testsuite/tests/ghc-regress/numeric/should_run/arith014.stdout
deleted file mode 100644
index 9716a9fa88..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith014.stdout
+++ /dev/null
@@ -1 +0,0 @@
-[-2,2]
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith015.hs b/testsuite/tests/ghc-regress/numeric/should_run/arith015.hs
deleted file mode 100644
index c1e58c0540..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith015.hs
+++ /dev/null
@@ -1,5 +0,0 @@
-main = do
- print (map read strange_nums :: [Float])
- print (map read strange_nums :: [Double])
- where
- strange_nums = ["Infinity","NaN", "-Infinity"]
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith015.stdout b/testsuite/tests/ghc-regress/numeric/should_run/arith015.stdout
deleted file mode 100644
index f5f8416a6b..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith015.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-[Infinity,NaN,-Infinity]
-[Infinity,NaN,-Infinity]
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith016.hs b/testsuite/tests/ghc-regress/numeric/should_run/arith016.hs
deleted file mode 100644
index 1437b8799d..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith016.hs
+++ /dev/null
@@ -1,33 +0,0 @@
-{-# LANGUAGE MagicHash #-}
-
-module Main where
-
-import GHC.Exts ( Float(F#),
- eqFloat#, neFloat#, ltFloat#,
- leFloat#, gtFloat#, geFloat#
- )
-
-fcmp_eq, fcmp_ne, fcmp_lt, fcmp_le, fcmp_gt, fcmp_ge :: (String, Float -> Float -> Bool)
-fcmp_eq = ("==", \ (F# a) (F# b) -> a `eqFloat#` b)
-fcmp_ne = ("/=", \ (F# a) (F# b) -> a `neFloat#` b)
-fcmp_lt = ("< ", \ (F# a) (F# b) -> a `ltFloat#` b)
-fcmp_le = ("<=", \ (F# a) (F# b) -> a `leFloat#` b)
-fcmp_gt = ("> ", \ (F# a) (F# b) -> a `gtFloat#` b)
-fcmp_ge = (">=", \ (F# a) (F# b) -> a `geFloat#` b)
-
-float_fns = [fcmp_eq, fcmp_ne, fcmp_lt, fcmp_le, fcmp_gt, fcmp_ge]
-
-float_vals :: [Float]
-float_vals = [0.0, 1.0, read "NaN"]
-
-float_text
- = [show4 arg1 ++ " " ++ fn_name ++ " " ++ show4 arg2 ++ " = " ++ show (fn arg1 arg2)
- | (fn_name, fn) <- float_fns,
- arg1 <- float_vals,
- arg2 <- float_vals
- ]
- where
- show4 x = take 4 (show x ++ repeat ' ')
-
-main
- = putStrLn (unlines float_text)
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith016.stdout b/testsuite/tests/ghc-regress/numeric/should_run/arith016.stdout
deleted file mode 100644
index 5361a8e0bd..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith016.stdout
+++ /dev/null
@@ -1,55 +0,0 @@
-0.0 == 0.0 = True
-0.0 == 1.0 = False
-0.0 == NaN = False
-1.0 == 0.0 = False
-1.0 == 1.0 = True
-1.0 == NaN = False
-NaN == 0.0 = False
-NaN == 1.0 = False
-NaN == NaN = False
-0.0 /= 0.0 = False
-0.0 /= 1.0 = True
-0.0 /= NaN = True
-1.0 /= 0.0 = True
-1.0 /= 1.0 = False
-1.0 /= NaN = True
-NaN /= 0.0 = True
-NaN /= 1.0 = True
-NaN /= NaN = True
-0.0 < 0.0 = False
-0.0 < 1.0 = True
-0.0 < NaN = False
-1.0 < 0.0 = False
-1.0 < 1.0 = False
-1.0 < NaN = False
-NaN < 0.0 = False
-NaN < 1.0 = False
-NaN < NaN = False
-0.0 <= 0.0 = True
-0.0 <= 1.0 = True
-0.0 <= NaN = False
-1.0 <= 0.0 = False
-1.0 <= 1.0 = True
-1.0 <= NaN = False
-NaN <= 0.0 = False
-NaN <= 1.0 = False
-NaN <= NaN = False
-0.0 > 0.0 = False
-0.0 > 1.0 = False
-0.0 > NaN = False
-1.0 > 0.0 = True
-1.0 > 1.0 = False
-1.0 > NaN = False
-NaN > 0.0 = False
-NaN > 1.0 = False
-NaN > NaN = False
-0.0 >= 0.0 = True
-0.0 >= 1.0 = False
-0.0 >= NaN = False
-1.0 >= 0.0 = True
-1.0 >= 1.0 = True
-1.0 >= NaN = False
-NaN >= 0.0 = False
-NaN >= 1.0 = False
-NaN >= NaN = False
-
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith017.hs b/testsuite/tests/ghc-regress/numeric/should_run/arith017.hs
deleted file mode 100644
index 86048dcbe3..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith017.hs
+++ /dev/null
@@ -1,10 +0,0 @@
--- !!! test for a bug in integer->{Int,Word}64 conversion in GHC 5.04.x
-
-import Data.Int
-import Data.Word
-
-main = do
- print (fromIntegral ((2^30 -1 + 2^30) - (2^30 + 2^30 :: Integer))
- :: Data.Int.Int64)
- print (fromIntegral ((2^30 -1 + 2^30) - (2^30 + 2^30 :: Integer))
- :: Data.Word.Word64)
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith017.stdout b/testsuite/tests/ghc-regress/numeric/should_run/arith017.stdout
deleted file mode 100644
index b234817560..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith017.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
--1
-18446744073709551615
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith018.hs b/testsuite/tests/ghc-regress/numeric/should_run/arith018.hs
deleted file mode 100644
index b73fd5a685..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith018.hs
+++ /dev/null
@@ -1,12 +0,0 @@
--- exposes a bug in the native code generator in GHC 6.4.1. Division by
--- a power of 2 was being mis-optimsed to a direct shift.
-
-main = do
- print (map f4 [(-20) .. (-1)])
- print (map f8 [(-20) .. (-1)])
-
-f4 :: Int -> Int
-f4 x = x `quot` 4
-
-f8 :: Int -> Int
-f8 x = x `quot` 8
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith018.stdout b/testsuite/tests/ghc-regress/numeric/should_run/arith018.stdout
deleted file mode 100644
index 21f7af65f9..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith018.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-[-5,-4,-4,-4,-4,-3,-3,-3,-3,-2,-2,-2,-2,-1,-1,-1,-1,0,0,0]
-[-2,-2,-2,-2,-2,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0]
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith019.hs b/testsuite/tests/ghc-regress/numeric/should_run/arith019.hs
deleted file mode 100644
index 861e9bc883..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith019.hs
+++ /dev/null
@@ -1,10 +0,0 @@
--- demonstrates a bug in mulIntMayOflo in GHC 6.5 on 64-bit arches
--- (trac #867).
--- It thought it could represent 3049800625 * 3049800625 in an I#.
-
-i :: Integer
-i = 3049800625
-
-main :: IO ()
-main = print (i * i)
-
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/arith019.stdout b/testsuite/tests/ghc-regress/numeric/should_run/arith019.stdout
deleted file mode 100644
index 3830f20e11..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/arith019.stdout
+++ /dev/null
@@ -1 +0,0 @@
-9301283852250390625
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/expfloat.hs b/testsuite/tests/ghc-regress/numeric/should_run/expfloat.hs
deleted file mode 100644
index fffa83d8f1..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/expfloat.hs
+++ /dev/null
@@ -1,7 +0,0 @@
-{-# LANGUAGE MagicHash #-}
--- tests that expFloat# works (had linking problems on Windows)
-
-import GHC.Exts
-
-main = do
- print (F# (expFloat# 3.45#))
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/expfloat.stdout b/testsuite/tests/ghc-regress/numeric/should_run/expfloat.stdout
deleted file mode 100644
index 50eee0c4d6..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/expfloat.stdout
+++ /dev/null
@@ -1 +0,0 @@
-31.500393
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/numrun009.hs b/testsuite/tests/ghc-regress/numeric/should_run/numrun009.hs
deleted file mode 100644
index 37d0513a39..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/numrun009.hs
+++ /dev/null
@@ -1,17 +0,0 @@
--- !!! tests that minBound::Int is correctly handled (for Int & Integer
-
--- (not necessarily Haskell 98: relies on Int being a 32-bit type.)
-
-main = do
- print (-2147483648 :: Int) -- -2147483648
- print ((-2147483647)-1 :: Int) -- -2147483648
- print (-2147483648 :: Integer) -- -2147483648
- print ((-2147483648 :: Int) >= 0) -- False
- print ((-2147483648 :: Integer) >= 0) -- False
- print (-(-2147483648) :: Int) -- <undefined>
- print (abs (-2147483648) :: Int) -- <undefined>
- print (abs ((-2147483647)-1) :: Int) -- <undefined>
- print (abs (-2147483648) :: Integer) -- 2147483648
- print (abs ((-2147483647)-1) :: Integer) -- 2147483648 (wrong in 4.04)
- print (fromInteger (-2147483648 :: Integer) :: Int) -- -2147483648
- print (fromInteger ((-2147483647)-1 :: Integer) :: Int) -- -2147483648
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/numrun009.stdout b/testsuite/tests/ghc-regress/numeric/should_run/numrun009.stdout
deleted file mode 100644
index 902e36915d..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/numrun009.stdout
+++ /dev/null
@@ -1,12 +0,0 @@
--2147483648
--2147483648
--2147483648
-False
-False
--2147483648
--2147483648
--2147483648
-2147483648
-2147483648
--2147483648
--2147483648
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/numrun009.stdout-alpha-dec-osf3 b/testsuite/tests/ghc-regress/numeric/should_run/numrun009.stdout-alpha-dec-osf3
deleted file mode 100644
index 8d37dbc11e..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/numrun009.stdout-alpha-dec-osf3
+++ /dev/null
@@ -1,12 +0,0 @@
--2147483648
--2147483648
--2147483648
-False
-False
-2147483648
-2147483648
-2147483648
-2147483648
-2147483648
--2147483648
--2147483648
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/numrun009.stdout-mips-sgi-irix b/testsuite/tests/ghc-regress/numeric/should_run/numrun009.stdout-mips-sgi-irix
deleted file mode 100644
index 8d37dbc11e..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/numrun009.stdout-mips-sgi-irix
+++ /dev/null
@@ -1,12 +0,0 @@
--2147483648
--2147483648
--2147483648
-False
-False
-2147483648
-2147483648
-2147483648
-2147483648
-2147483648
--2147483648
--2147483648
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/numrun009.stdout-ws-64 b/testsuite/tests/ghc-regress/numeric/should_run/numrun009.stdout-ws-64
deleted file mode 100644
index 8d37dbc11e..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/numrun009.stdout-ws-64
+++ /dev/null
@@ -1,12 +0,0 @@
--2147483648
--2147483648
--2147483648
-False
-False
-2147483648
-2147483648
-2147483648
-2147483648
-2147483648
--2147483648
--2147483648
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/numrun009.stdout-x86_64-unknown-openbsd b/testsuite/tests/ghc-regress/numeric/should_run/numrun009.stdout-x86_64-unknown-openbsd
deleted file mode 100644
index 8d37dbc11e..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/numrun009.stdout-x86_64-unknown-openbsd
+++ /dev/null
@@ -1,12 +0,0 @@
--2147483648
--2147483648
--2147483648
-False
-False
-2147483648
-2147483648
-2147483648
-2147483648
-2147483648
--2147483648
--2147483648
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/numrun010.hs b/testsuite/tests/ghc-regress/numeric/should_run/numrun010.hs
deleted file mode 100644
index 027b5e8d76..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/numrun010.hs
+++ /dev/null
@@ -1,13 +0,0 @@
--- !!! tests that local fixity declarations work
-
--- If local fixity decls don't work you get "14"
--- The right answer is "11"
-
-val = 3 +! 4 *! 2
- where (+!) = (+)
- (*!) = (*)
- infixl 6 +!
- infixl 7 *!
-
-main = print val
-
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/numrun010.stdout b/testsuite/tests/ghc-regress/numeric/should_run/numrun010.stdout
deleted file mode 100644
index b4de394767..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/numrun010.stdout
+++ /dev/null
@@ -1 +0,0 @@
-11
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/numrun011.hs b/testsuite/tests/ghc-regress/numeric/should_run/numrun011.hs
deleted file mode 100644
index d259613d2f..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/numrun011.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import Data.Ratio
-main = print (fromRational (1 % 85070591730234615865843651857942052864) :: Float)
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/numrun011.stdout b/testsuite/tests/ghc-regress/numeric/should_run/numrun011.stdout
deleted file mode 100644
index 202e6ca9d7..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/numrun011.stdout
+++ /dev/null
@@ -1 +0,0 @@
-1.1754944e-38
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/numrun012.hs b/testsuite/tests/ghc-regress/numeric/should_run/numrun012.hs
deleted file mode 100644
index df8c69040c..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/numrun012.hs
+++ /dev/null
@@ -1,35 +0,0 @@
-
--- Test for trac #921
-
-import GHC.Float
-import Foreign
-import Control.Monad
-
-main :: IO ()
-main = do -- The reported case
- putStrLn (show (map log2 vals))
- -- Smaller failing cases
- print (fromIntegral ((2^31) :: Int) :: Double)
- if_not_32 $ print (round ((2^33) :: Double) :: Int)
- print (fromIntegral ((2^31) :: Int) :: Float)
- if_not_32 $ print (round ((2^33) :: Float) :: Int)
- -- The underlying failing internal operations
- print (int2Double (2^31))
- if_not_32 $ print (double2Int (2^33))
- print (int2Float (2^31))
- if_not_32 $ print (float2Int (2^33))
- where
- -- the value of float2Int x where the result would be outside the
- -- range of the target is undefined. We also take the view in GHC
- -- that round and truncate are similarly undefined when the result
- -- would be outside the range of the target type (see #1254)
- if_not_32 = when (sizeOf (undefined::Int) > 4)
-
-log2 x = ceiling log_x
- where log_x :: Double
- log_x = logBase 2 (fromIntegral (max 1 x))
-
-vals = [1, 2, 17, 259, 1000, 10000,
- 2^30 + 9000, 2^31 - 1, 2^31, 2^31 + 1,
- 2^32 - 1, 2^32, 2^32 + 1]
-
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/numrun012.stdout b/testsuite/tests/ghc-regress/numeric/should_run/numrun012.stdout
deleted file mode 100644
index f94829ccfd..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/numrun012.stdout
+++ /dev/null
@@ -1,5 +0,0 @@
-[0,1,5,9,10,14,31,31,32,32,32,32,33]
--2.147483648e9
--2.1474836e9
--2.147483648e9
--2.1474836e9
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/numrun012.stdout-ws-64 b/testsuite/tests/ghc-regress/numeric/should_run/numrun012.stdout-ws-64
deleted file mode 100644
index ffd0389201..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/numrun012.stdout-ws-64
+++ /dev/null
@@ -1,9 +0,0 @@
-[0,1,5,9,10,14,31,31,32,32,32,32,33]
-2.147483648e9
-8589934592
-2.1474836e9
-8589934592
-2.147483648e9
-8589934592
-2.1474836e9
-8589934592
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/numrun013.hs b/testsuite/tests/ghc-regress/numeric/should_run/numrun013.hs
deleted file mode 100644
index 93fe56f74c..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/numrun013.hs
+++ /dev/null
@@ -1,17 +0,0 @@
-
--- Test for trac #1042
-
-import Control.Exception
-import Data.Int
-import Prelude hiding (catch)
-
-main :: IO ()
-main = do print ((minBound :: Int) `div` (-1)) `myCatch` print
- print ((minBound :: Int8) `div` (-1)) `myCatch` print
- print ((minBound :: Int16) `div` (-1)) `myCatch` print
- print ((minBound :: Int32) `div` (-1)) `myCatch` print
- print ((minBound :: Int64) `div` (-1)) `myCatch` print
-
-myCatch :: IO a -> (ArithException -> IO a) -> IO a
-myCatch = catch
-
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/numrun013.stdout b/testsuite/tests/ghc-regress/numeric/should_run/numrun013.stdout
deleted file mode 100644
index 605f8e7cc0..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/numrun013.stdout
+++ /dev/null
@@ -1,5 +0,0 @@
-arithmetic overflow
-arithmetic overflow
-arithmetic overflow
-arithmetic overflow
-arithmetic overflow
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/numrun014.hs b/testsuite/tests/ghc-regress/numeric/should_run/numrun014.hs
deleted file mode 100644
index 207e7663c0..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/numrun014.hs
+++ /dev/null
@@ -1,211 +0,0 @@
-
--- Test that we don't have rules (or othre optimisations) doing the
--- wrong thing for constant folding with Doubles.
-
-module Main (main) where
-
-zero :: Double
-zero = 0
-
-one :: Double
-one = 1
-
-nan :: Double
-nan = 0 / 0
-
-inf :: Double
-inf = 1 / 0
-
-neginf :: Double
-neginf = -1 / 0
-
-fzero :: Float
-fzero = 0
-
-fone :: Float
-fone = 1
-
-fnan :: Float
-fnan = 0 / 0
-
-finf :: Float
-finf = 1 / 0
-
-fneginf :: Float
-fneginf = -1 / 0
-
-main :: IO ()
-main = do putStrLn "=== Subtraction ==="
- print (zero - zero)
- print (zero - nan)
- print (zero - inf)
- print (zero - neginf)
- print (nan - zero)
- print (nan - nan)
- print (nan - inf)
- print (nan - neginf)
- print (inf - zero)
- print (inf - nan)
- print (inf - inf)
- print (inf - neginf)
- print (neginf - zero)
- print (neginf - nan)
- print (neginf - inf)
- print (neginf - neginf)
- putStrLn "=== Addition ==="
- print (zero + zero)
- print (zero + nan)
- print (zero + inf)
- print (zero + neginf)
- print (nan + zero)
- print (nan + nan)
- print (nan + inf)
- print (nan + neginf)
- print (inf + zero)
- print (inf + nan)
- print (inf + inf)
- print (inf + neginf)
- print (neginf + zero)
- print (neginf + nan)
- print (neginf + inf)
- print (neginf + neginf)
- putStrLn "=== Mutiplication ==="
- print (zero * zero)
- print (zero * one)
- print (zero * nan)
- print (zero * inf)
- print (zero * neginf)
- print (one * zero)
- print (one * one)
- print (one * nan)
- print (one * inf)
- print (one * neginf)
- print (nan * zero)
- print (nan * one)
- print (nan * nan)
- print (nan * inf)
- print (nan * neginf)
- print (inf * zero)
- print (inf * one)
- print (inf * nan)
- print (inf * inf)
- print (inf * neginf)
- print (neginf * zero)
- print (neginf * one)
- print (neginf * nan)
- print (neginf * inf)
- print (neginf * neginf)
- putStrLn "=== Division ==="
- print (zero / zero)
- print (zero / one)
- print (zero / nan)
- print (zero / inf)
- print (zero / neginf)
- print (one / zero)
- print (one / one)
- print (one / nan)
- print (one / inf)
- print (one / neginf)
- print (nan / zero)
- print (nan / one)
- print (nan / nan)
- print (nan / inf)
- print (nan / neginf)
- print (inf / zero)
- print (inf / one)
- print (inf / nan)
- print (inf / inf)
- print (inf / neginf)
- print (neginf / zero)
- print (neginf / one)
- print (neginf / nan)
- print (neginf / inf)
- print (neginf / neginf)
-
- putStrLn "=== Subtraction ==="
- print (fzero - fzero)
- print (fzero - fnan)
- print (fzero - finf)
- print (fzero - fneginf)
- print (fnan - fzero)
- print (fnan - fnan)
- print (fnan - finf)
- print (fnan - fneginf)
- print (finf - fzero)
- print (finf - fnan)
- print (finf - finf)
- print (finf - fneginf)
- print (fneginf - fzero)
- print (fneginf - fnan)
- print (fneginf - finf)
- print (fneginf - fneginf)
- putStrLn "=== Addition ==="
- print (fzero + fzero)
- print (fzero + fnan)
- print (fzero + finf)
- print (fzero + fneginf)
- print (fnan + fzero)
- print (fnan + fnan)
- print (fnan + finf)
- print (fnan + fneginf)
- print (finf + fzero)
- print (finf + fnan)
- print (finf + finf)
- print (finf + fneginf)
- print (fneginf + fzero)
- print (fneginf + fnan)
- print (fneginf + finf)
- print (fneginf + fneginf)
- putStrLn "=== Mutiplication ==="
- print (fzero * fzero)
- print (fzero * fone)
- print (fzero * fnan)
- print (fzero * finf)
- print (fzero * fneginf)
- print (fone * fzero)
- print (fone * fone)
- print (fone * fnan)
- print (fone * finf)
- print (fone * fneginf)
- print (fnan * fzero)
- print (fnan * fone)
- print (fnan * fnan)
- print (fnan * finf)
- print (fnan * fneginf)
- print (finf * fzero)
- print (finf * fone)
- print (finf * fnan)
- print (finf * finf)
- print (finf * fneginf)
- print (fneginf * fzero)
- print (fneginf * fone)
- print (fneginf * fnan)
- print (fneginf * finf)
- print (fneginf * fneginf)
- putStrLn "=== Division ==="
- print (fzero / fzero)
- print (fzero / fone)
- print (fzero / fnan)
- print (fzero / finf)
- print (fzero / fneginf)
- print (fone / fzero)
- print (fone / fone)
- print (fone / fnan)
- print (fone / finf)
- print (fone / fneginf)
- print (fnan / fzero)
- print (fnan / fone)
- print (fnan / fnan)
- print (fnan / finf)
- print (fnan / fneginf)
- print (finf / fzero)
- print (finf / fone)
- print (finf / fnan)
- print (finf / finf)
- print (finf / fneginf)
- print (fneginf / fzero)
- print (fneginf / fone)
- print (fneginf / fnan)
- print (fneginf / finf)
- print (fneginf / fneginf)
-
diff --git a/testsuite/tests/ghc-regress/numeric/should_run/numrun014.stdout b/testsuite/tests/ghc-regress/numeric/should_run/numrun014.stdout
deleted file mode 100644
index 3bcfad620d..0000000000
--- a/testsuite/tests/ghc-regress/numeric/should_run/numrun014.stdout
+++ /dev/null
@@ -1,172 +0,0 @@
-=== Subtraction ===
-0.0
-NaN
--Infinity
-Infinity
-NaN
-NaN
-NaN
-NaN
-Infinity
-NaN
-NaN
-Infinity
--Infinity
-NaN
--Infinity
-NaN
-=== Addition ===
-0.0
-NaN
-Infinity
--Infinity
-NaN
-NaN
-NaN
-NaN
-Infinity
-NaN
-Infinity
-NaN
--Infinity
-NaN
-NaN
--Infinity
-=== Mutiplication ===
-0.0
-0.0
-NaN
-NaN
-NaN
-0.0
-1.0
-NaN
-Infinity
--Infinity
-NaN
-NaN
-NaN
-NaN
-NaN
-NaN
-Infinity
-NaN
-Infinity
--Infinity
-NaN
--Infinity
-NaN
--Infinity
-Infinity
-=== Division ===
-NaN
-0.0
-NaN
-0.0
--0.0
-Infinity
-1.0
-NaN
-0.0
--0.0
-NaN
-NaN
-NaN
-NaN
-NaN
-Infinity
-Infinity
-NaN
-NaN
-NaN
--Infinity
--Infinity
-NaN
-NaN
-NaN
-=== Subtraction ===
-0.0
-NaN
--Infinity
-Infinity
-NaN
-NaN
-NaN
-NaN
-Infinity
-NaN
-NaN
-Infinity
--Infinity
-NaN
--Infinity
-NaN
-=== Addition ===
-0.0
-NaN
-Infinity
--Infinity
-NaN
-NaN
-NaN
-NaN
-Infinity
-NaN
-Infinity
-NaN
--Infinity
-NaN
-NaN
--Infinity
-=== Mutiplication ===
-0.0
-0.0
-NaN
-NaN
-NaN
-0.0
-1.0
-NaN
-Infinity
--Infinity
-NaN
-NaN
-NaN
-NaN
-NaN
-NaN
-Infinity
-NaN
-Infinity
--Infinity
-NaN
--Infinity
-NaN
--Infinity
-Infinity
-=== Division ===
-NaN
-0.0
-NaN
-0.0
--0.0
-Infinity
-1.0
-NaN
-0.0
--0.0
-NaN
-NaN
-NaN
-NaN
-NaN
-Infinity
-Infinity
-NaN
-NaN
-NaN
--Infinity
--Infinity
-NaN
-NaN
-NaN