diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -159,6 +159,13 @@
 	./bench/tiers "Map Nat Nat"      | diff -rud tests/diff/tiers-MapNatNat.out   -
 	./bench/tiers "Map Nat2 Nat2"    | diff -rud tests/diff/tiers-MapNat2Nat2.out -
 	./bench/tiers "Map Nat3 Nat3"    | diff -rud tests/diff/tiers-MapNat3Nat3.out -
+	# extreme integers
+	./bench/tiers "X Int4"           | diff -rud tests/diff/tiers-XInt4.out       -
+	./bench/tiers "X Word4"          | diff -rud tests/diff/tiers-XWord4.out      -
+	./bench/tiers "X Nat7"           | diff -rud tests/diff/tiers-XNat7.out       -
+	./bench/tiers "Xs Int4"          | diff -rud tests/diff/tiers-XsInt4.out      -
+	./bench/tiers "Xs Word4"         | diff -rud tests/diff/tiers-XsWord4.out     -
+	./bench/tiers "Xs Nat7"          | diff -rud tests/diff/tiers-XsNat7.out      -
 
 update-diff-test-tiers: bench/tiers
 	# simple types
@@ -203,6 +210,13 @@
 	./bench/tiers "Map Nat Nat"      > tests/diff/tiers-MapNatNat.out
 	./bench/tiers "Map Nat2 Nat2"    > tests/diff/tiers-MapNat2Nat2.out
 	./bench/tiers "Map Nat3 Nat3"    > tests/diff/tiers-MapNat3Nat3.out
+	# extreme integers
+	./bench/tiers "X Int4"           > tests/diff/tiers-XInt4.out
+	./bench/tiers "X Word4"          > tests/diff/tiers-XWord4.out
+	./bench/tiers "X Nat7"           > tests/diff/tiers-XNat7.out
+	./bench/tiers "Xs Int4"          > tests/diff/tiers-XsInt4.out
+	./bench/tiers "Xs Word4"         > tests/diff/tiers-XsWord4.out
+	./bench/tiers "Xs Nat7"          > tests/diff/tiers-XsNat7.out
 
 prepare-depend: bench/tiers-listsofpairs.hs \
                 bench/tiers-colistable.hs \
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -176,6 +176,7 @@
 [PhD Thesis (2017)]: https://matela.com.br/paper/rudy-phd-thesis-2017.pdf
 
 [symbol `>`]: https://www.haskell.org/haddock/doc/html/ch03s08.html#idm140354810780208
+[Template Haskell]: https://wiki.haskell.org/Template_Haskell
 
 [build-status]: https://travis-ci.org/rudymatela/leancheck.svg?branch=master
 [build-log]:    https://travis-ci.org/rudymatela/leancheck
diff --git a/bench/tiers.hs b/bench/tiers.hs
--- a/bench/tiers.hs
+++ b/bench/tiers.hs
@@ -156,5 +156,16 @@
     "Map Nat Nat"      -> put t n (u :: Map Nat Nat          )
     "Map Nat2 Nat2"    -> put t n (u :: Map Nat2 Nat2        )
     "Map Nat3 Nat3"    -> put t n (u :: Map Nat3 Nat3        )
+    -- extreme integers
+--  "X Int"            -> put t n (u :: X Int   ) -- device dependent
+--  "X Word"           -> put t n (u :: X Word  ) -- device dependent
+    "X Int4"           -> put t n (u :: X Int4  )
+    "X Word4"          -> put t n (u :: X Word4 )
+    "X Nat7"           -> put t n (u :: X Nat7  )
+--  "Xs Int"           -> put t n (u :: Xs Int  ) -- device dependent
+--  "Xs Word"          -> put t n (u :: Xs Word ) -- device dependent
+    "Xs Int4"          -> put t n (u :: Xs Int4 )
+    "Xs Word4"         -> put t n (u :: Xs Word4)
+    "Xs Nat7"          -> put t n (u :: Xs Nat7 )
     -- unhandled
     _                  -> putStrLn $ "unknown/unhandled type `" ++ t ++ "'"
diff --git a/leancheck.cabal b/leancheck.cabal
--- a/leancheck.cabal
+++ b/leancheck.cabal
@@ -11,8 +11,8 @@
 -- this cabal file too complicated.  -- Rudy
 
 name:                leancheck
-version:             0.7.1
-synopsis:            Cholesterol-free property-based testing
+version:             0.7.2
+synopsis:            Enumerative property-based testing
 description:
   LeanCheck is a simple enumerative property-based testing library.
   .
@@ -69,7 +69,7 @@
 source-repository this
   type:            git
   location:        https://github.com/rudymatela/leancheck
-  tag:             v0.7.1
+  tag:             v0.7.2
 
 library
   exposed-modules: Test.LeanCheck
diff --git a/src/Test/LeanCheck/Core.hs b/src/Test/LeanCheck/Core.hs
--- a/src/Test/LeanCheck/Core.hs
+++ b/src/Test/LeanCheck/Core.hs
@@ -183,9 +183,6 @@
          Listable (a,b,c,d) where
   tiers = productWith (\x (y,z,w) -> (x,y,z,w)) tiers tiers
 
--- | Instances for 'Listable' sixtuples up to 12-tuples are exported by default
---   form "Test.LeanCheck" but are hidden from Haddock documentation.  These
---   instances are defined in "Test.LeanCheck.Basic".
 instance (Listable a, Listable b, Listable c, Listable d, Listable e) =>
          Listable (a,b,c,d,e) where
   tiers = productWith (\x (y,z,w,v) -> (x,y,z,w,v)) tiers tiers
diff --git a/src/Test/LeanCheck/Derive.hs b/src/Test/LeanCheck/Derive.hs
--- a/src/Test/LeanCheck/Derive.hs
+++ b/src/Test/LeanCheck/Derive.hs
@@ -100,6 +100,10 @@
          ]
 #endif
 
+-- | Given a type 'Name', derives an expression to be placed as the result of
+--   'tiers':
+--
+-- > consN C1 \/ consN C2 \/ ... \/ consN CN
 deriveTiers :: Name -> ExpQ
 deriveTiers t = conse =<< typeConstructors t
   where
@@ -108,6 +112,10 @@
     [| $(varE consN) $(conE n) |]
   conse = foldr1 (\e1 e2 -> [| $e1 \/ $e2 |]) . map (uncurry cone)
 
+-- | Given a type 'Name', derives an expression to be placed as the result of
+--   'list':
+--
+-- > concat $ consN C1 \/ consN C2 \/ ... \/ consN CN
 deriveList :: Name -> ExpQ
 deriveList t = [| concat $(deriveTiers t) |]
 
diff --git a/src/Test/LeanCheck/Function/CoListable.hs b/src/Test/LeanCheck/Function/CoListable.hs
--- a/src/Test/LeanCheck/Function/CoListable.hs
+++ b/src/Test/LeanCheck/Function/CoListable.hs
@@ -29,6 +29,12 @@
 infixr 9 \+:/
 
 
+-- | This _does not currently work_.  Its just a sketch and a stub.
+--
+--   Generation of 'Listable' functions using 'cotiers'.
+--   This is similar to SmallCheck's coseries.
+--
+--   The current implementation generates repetitions.
 class CoListable a where
   cotiers :: [[b]] -> [[a -> b]]
 
diff --git a/src/Test/LeanCheck/Function/Listable/FunListable.hs b/src/Test/LeanCheck/Function/Listable/FunListable.hs
--- a/src/Test/LeanCheck/Function/Listable/FunListable.hs
+++ b/src/Test/LeanCheck/Function/Listable/FunListable.hs
@@ -11,8 +11,7 @@
 -- of a 'FunListable' typeclass (similar to 'CoListable').
 --
 -- This module /does not currently work/, it it just a sketch and a stub.
-module Test.LeanCheck.Function.Listable.FunListable
-where
+module Test.LeanCheck.Function.Listable.FunListable (FunListable (..)) where
 
 
 import Test.LeanCheck
@@ -37,6 +36,10 @@
 infixr 9 \+:/
 
 
+-- | This typeclass _does not currently work_.  It is a stub and a sketch.
+--
+-- 'FunListable' is similar to 'CoListable' but a bit more complex to avoid
+-- some repetitions.
 class FunListable a where
   validResults   :: a -> [b] -> Bool
   validResults   x  =  not . invalidResults x
diff --git a/src/Test/LeanCheck/Function/Listable/Periodic.hs b/src/Test/LeanCheck/Function/Listable/Periodic.hs
--- a/src/Test/LeanCheck/Function/Listable/Periodic.hs
+++ b/src/Test/LeanCheck/Function/Listable/Periodic.hs
@@ -11,8 +11,7 @@
 -- functions.
 --
 -- This module /barely works/ and is just a sketch.
-module Test.LeanCheck.Function.Listable.Periodic
-where
+module Test.LeanCheck.Function.Listable.Periodic () where
 
 
 import Test.LeanCheck
diff --git a/src/Test/LeanCheck/Function/ListsOfPairs.hs b/src/Test/LeanCheck/Function/ListsOfPairs.hs
--- a/src/Test/LeanCheck/Function/ListsOfPairs.hs
+++ b/src/Test/LeanCheck/Function/ListsOfPairs.hs
@@ -21,6 +21,8 @@
 import Test.LeanCheck.Tiers
 import Data.Maybe (fromMaybe)
 
+-- | Given tiers of argument and result values,
+--   return tiers of functional values.
 (-->>) :: Eq a => [[a]] -> [[b]] -> [[a->b]]
 xss -->> yss
   | finite xss = mapT ((undefined `mutate`) . zip (concat xss))
diff --git a/src/Test/LeanCheck/Stats.hs b/src/Test/LeanCheck/Stats.hs
--- a/src/Test/LeanCheck/Stats.hs
+++ b/src/Test/LeanCheck/Stats.hs
@@ -83,7 +83,7 @@
                    , show (100 * c `div` len) ++ "%" ]
   count f = length . filter f
 
--- TODO: implement this
+-- TODO: implement conditionStatsT
 conditionStatsT :: Listable a => Int -> [(String,a->Bool)] -> IO ()
 conditionStatsT = error "conditionsStatsT: not implemented yet, use conditionStats for now"
 
diff --git a/src/Test/LeanCheck/Utils/Operators.hs b/src/Test/LeanCheck/Utils/Operators.hs
--- a/src/Test/LeanCheck/Utils/Operators.hs
+++ b/src/Test/LeanCheck/Utils/Operators.hs
@@ -56,6 +56,9 @@
   )
 where
 
+-- TODO: Add examples in the haddock documentation of most functions in this
+--       module.
+
 -- TODO: review terminology in this module.  Some names aren't quite right!
 
 import Test.LeanCheck ((==>))
@@ -152,26 +155,46 @@
 asymmetric :: (a -> a -> Bool) -> a -> a -> Bool
 asymmetric r = \x y -> x `r` y ==> not (y `r` x)
 
+-- | Is the given binary relation an equivalence?
+--   Is the given relation reflexive, symmetric and transitive?
+--
+-- > > check (equivalence (==) :: Int -> Int -> Int -> Bool)
+-- > +++ OK, passed 200 tests.
+-- > > check (equivalence (<=) :: Int -> Int -> Int -> Bool)
+-- > *** Failed! Falsifiable (after 3 tests):
+-- > 0 1 0
+--
+-- Or, using "Test.LeanCheck.Utils.TypeBinding":
+--
+-- > > check $ equivalence (<=) -:> int
+-- > *** Failed! Falsifiable (after 3 tests):
+-- > 0 1 0
 equivalence :: (a -> a -> Bool) -> a -> a -> a -> Bool
 equivalence (==) = \x y z -> reflexive  (==) x
                           && symmetric  (==) x y
                           && transitive (==) x y z
 
+-- | Is the given binary relation a partial order?
+--   Is the given relation reflexive, antisymmetric and transitive?
 partialOrder :: Eq a => (a -> a -> Bool) -> a -> a -> a -> Bool
 partialOrder (<=) = \x y z -> reflexive     (<=) x
                            && antisymmetric (<=) x y
                            && transitive    (<=) x y z
 
+-- | Is the given binary relation a strict partial order?
+--   Is the given relation irreflexive, asymmetric and transitive?
 strictPartialOrder :: (a -> a -> Bool) -> a -> a -> a -> Bool
 strictPartialOrder (<) = \x y z -> irreflexive (<) x
                                 && asymmetric  (<) x y -- implied?
                                 && transitive  (<) x y z
 
+-- | Is the given binary relation a total order?
 totalOrder :: Eq a => (a -> a -> Bool) -> a -> a -> a -> Bool
 totalOrder (<=) = \x y z -> (x <= y || y <= x)
                          && antisymmetric (<=) x y
                          && transitive    (<=) x y z
 
+-- | Is the given binary relation a strict total order?
 strictTotalOrder :: Eq a => (a -> a -> Bool) -> a -> a -> a -> Bool
 strictTotalOrder (<) = \x y z -> (x /= y ==> x < y || y < x)
                               && irreflexive (<) x
diff --git a/src/Test/LeanCheck/Utils/TypeBinding.hs b/src/Test/LeanCheck/Utils/TypeBinding.hs
--- a/src/Test/LeanCheck/Utils/TypeBinding.hs
+++ b/src/Test/LeanCheck/Utils/TypeBinding.hs
@@ -96,11 +96,21 @@
   , ordering
   , mayb, eith
   -- ** Testing types
+  , natural
   , nat
-  , int1, uint1
-  , int2, uint2
-  , int3, uint3
-  , int4, uint4
+  , int1
+  , int2
+  , int3
+  , int4
+  , word1
+  , word2
+  , word3
+  , word4
+  -- *** Deprecated testing types
+  , uint1
+  , uint2
+  , uint3
+  , uint4
   )
 where
 
@@ -178,74 +188,92 @@
 (->>>:) = const
 infixl 1 ->>>:
 
+-- | Forces the 4th argument type.
 (->>>:>) :: (a -> b -> c -> d -> e) -> d -> (a -> b -> c -> d -> e)
 (->>>:>) = const
 infixl 1 ->>>:>
 
+-- | Forces the result type of a 4-argument function.
 (->>>>:) :: (a -> b -> c -> d -> e) -> e -> (a -> b -> c -> d -> e)
 (->>>>:) = const
 infixl 1 ->>>>:
 
+-- | Forces the 5th argument type.
 (->>>>:>) :: (a -> b -> c -> d -> e -> f) -> e -> (a -> b -> c -> d -> e -> f)
 (->>>>:>) = const
 infixl 1 ->>>>:>
 
+-- | Forces the result type of a 5-argument function.
 (->>>>>:) :: (a -> b -> c -> d -> e -> f) -> f -> (a -> b -> c -> d -> e -> f)
 (->>>>>:) = const
 infixl 1 ->>>>>:
 
+-- | Forces the 6th argument type.
 (->>>>>:>) :: (a->b->c->d->e->f->g) -> f -> (a->b->c->d->e->f->g)
 (->>>>>:>) = const
 infixl 1 ->>>>>:>
 
+-- | Forces the result type of a 6-argument function.
 (->>>>>>:) :: (a->b->c->d->e->f->g) -> g -> (a->b->c->d->e->f->g)
 (->>>>>>:) = const
 infixl 1 ->>>>>>:
 
+-- | Forces the 7th argument type.
 (->>>>>>:>) :: (a->b->c->d->e->f->g->h) -> g -> (a->b->c->d->e->f->g->h)
 (->>>>>>:>) = const
 infixl 1 ->>>>>>:>
 
+-- | Forces the result type of a 7-argument function.
 (->>>>>>>:) :: (a->b->c->d->e->f->g->h) -> h -> (a->b->c->d->e->f->g->h)
 (->>>>>>>:) = const
 infixl 1 ->>>>>>>:
 
+-- | Forces the 8th argument type.
 (->>>>>>>:>) :: (a->b->c->d->e->f->g->h->i) -> h -> (a->b->c->d->e->f->g->h->i)
 (->>>>>>>:>) = const
 infixl 1 ->>>>>>>:>
 
+-- | Forces the result type of a 8-argument function.
 (->>>>>>>>:) :: (a->b->c->d->e->f->g->h->i) -> i -> (a->b->c->d->e->f->g->h->i)
 (->>>>>>>>:) = const
 infixl 1 ->>>>>>>>:
 
+-- | Forces the 9th argument type.
 (->>>>>>>>:>) :: (a->b->c->d->e->f->g->h->i->j) -> i -> (a->b->c->d->e->f->g->h->i->j)
 (->>>>>>>>:>) = const
 infixl 1 ->>>>>>>>:>
 
+-- | Forces the result type of a 9-argument function.
 (->>>>>>>>>:) :: (a->b->c->d->e->f->g->h->i->j) -> j -> (a->b->c->d->e->f->g->h->i->j)
 (->>>>>>>>>:) = const
 infixl 1 ->>>>>>>>>:
 
+-- | Forces the type of the 10th argument.
 (->>>>>>>>>:>) :: (a->b->c->d->e->f->g->h->i->j->k) -> j -> (a->b->c->d->e->f->g->h->i->j->k)
 (->>>>>>>>>:>) = const
 infixl 1 ->>>>>>>>>:>
 
+-- | Forces the result type of a 10-argument function.
 (->>>>>>>>>>:) :: (a->b->c->d->e->f->g->h->i->j->k) -> k -> (a->b->c->d->e->f->g->h->i->j->k)
 (->>>>>>>>>>:) = const
 infixl 1 ->>>>>>>>>>:
 
+-- | Forces the type of the 11th argument.
 (->>>>>>>>>>:>) :: (a->b->c->d->e->f->g->h->i->j->k->l) -> k -> (a->b->c->d->e->f->g->h->i->j->k->l)
 (->>>>>>>>>>:>) = const
 infixl 1 ->>>>>>>>>>:>
 
+-- | Forces the result type of a 11-argument function.
 (->>>>>>>>>>>:) :: (a->b->c->d->e->f->g->h->i->j->k->l) -> l -> (a->b->c->d->e->f->g->h->i->j->k->l)
 (->>>>>>>>>>>:) = const
 infixl 1 ->>>>>>>>>>>:
 
+-- | Forces the type of the 12th argument.
 (->>>>>>>>>>>:>) :: (a->b->c->d->e->f->g->h->i->j->k->l->m) -> m -> (a->b->c->d->e->f->g->h->i->j->k->l->m)
 (->>>>>>>>>>>:>) = const
 infixl 1 ->>>>>>>>>>>:>
 
+-- | Forces the result type of a 12-argument function.
 (->>>>>>>>>>>>:) :: (a->b->c->d->e->f->g->h->i->j->k->l->m) -> m -> (a->b->c->d->e->f->g->h->i->j->k->l->m)
 (->>>>>>>>>>>>:) = const
 infixl 1 ->>>>>>>>>>>>:
@@ -271,66 +299,115 @@
 und :: a
 und = undefinedOf "und"
 
+-- | Undefined 'Int' value for use with type binding operators.
+--
+-- > check $ (\x y -> x + y == y + x) ->:> int
 int :: Int
 int = undefinedOf "int"
 
+-- | Undefined 'Integer' value for use with type binding operators.
+--
+-- > check $ (\x y -> x + y == y + x) ->:> integer
 integer :: Integer
 integer = undefinedOf "integer"
 
+-- | Undefined 'Float' value for use with type binding operators.
 float :: Float
 float = undefinedOf "float"
 
+-- | Undefined 'Double' value for use with type binding operators.
 double :: Double
 double = undefinedOf "double"
 
+-- | Undefined 'Rational' value for use with type binding operators.
 rational :: Rational
 rational = undefinedOf "rational"
 
+-- | Undefined 'Bool' value.
 bool :: Bool
 bool = undefinedOf "bool"
 
+-- | Undefined 'Char' value.
 char :: Char
 char = undefinedOf "char"
 
+-- | Undefined 'String' value.
 string :: String
 string = undefinedOf "string"
 
+-- | Undefined 'Ordering' value.
 ordering :: Ordering
 ordering = undefinedOf "ordering"
 
--- | It might be better to just use 'Just'
+-- | Undefined 'Maybe' value.  Uses the type of the given value as the argument
+--   type.  For use with type binding operators.
+--
+-- To check a property with the first argument bound to 'Maybe' 'Int', do:
+--
+-- > check $ prop -:> mayb int
 mayb :: a -> Maybe a
 mayb = undefinedOf "mayb"
 
+-- | Undefined 'Either' value.  Uses the types of the given values as the
+--   argument types.  For use with type binding operators.
 eith :: a -> b -> Either a b
 eith = undefinedOf "eith"
 
 
 -- Dummy values of Test.LeanCheck.Types's types:
 
+-- | Undefined 'Natural' value.
+natural :: Natural
+natural = undefinedOf "natural"
+
+-- | Undefined 'Nat' value.
 nat :: Nat
 nat = undefinedOf "nat"
 
+-- | Undefined 'Int1' value.
 int1 :: Int1
 int1 = undefinedOf "int1"
 
+-- | Undefined 'Int2' value.
 int2 :: Int2
 int2 = undefinedOf "int2"
 
+-- | Undefined 'Int3' value.
 int3 :: Int3
 int3 = undefinedOf "int3"
 
+-- | Undefined 'Int4' value.
 int4 :: Int4
 int4 = undefinedOf "int4"
 
+-- | Undefined 'Word1' value.
+word1 :: Word1
+word1 = undefinedOf "word1"
+
+-- | Undefined 'Word2' value.
+word2 :: Word2
+word2 = undefinedOf "word2"
+
+-- | Undefined 'Word3' value.
+word3 :: Word3
+word3 = undefinedOf "word3"
+
+-- | Undefined 'Word4' value.
+word4 :: Word4
+word4 = undefinedOf "word4"
+
+-- | Deprecated.  Use 'word1'.
 uint1 :: UInt1
 uint1 = undefinedOf "uint1"
 
+-- | Deprecated.  Use 'word2'.
 uint2 :: UInt2
 uint2 = undefinedOf "uint2"
 
+-- | Deprecated.  Use 'word3'.
 uint3 :: UInt3
 uint3 = undefinedOf "uint3"
 
+-- | Deprecated.  Use 'word4'.
 uint4 :: UInt4
 uint4 = undefinedOf "uint4"
diff --git a/src/Test/LeanCheck/Utils/Types.hs b/src/Test/LeanCheck/Utils/Types.hs
--- a/src/Test/LeanCheck/Utils/Types.hs
+++ b/src/Test/LeanCheck/Utils/Types.hs
@@ -43,6 +43,7 @@
   , Nat5 (..)
   , Nat6 (..)
   , Nat7 (..)
+  , Natural (..)
 
   -- ** Aliases to word types (deprecated)
   , UInt1
@@ -131,6 +132,15 @@
 
 -- | Natural numbers (including 0): 0, 1, 2, 3, 4, 5, 6, 7, ...
 --
+-- Internally, this type is represented as an 'Integer'
+-- allowing for an infinity of possible values.
+--
+-- Its 'Enum' and 'Listable' instances only produce non-negative values.
+-- Negatives can still be generated by 'negate' or subtraction.
+newtype Natural = Natural { unNatural :: Int } deriving (Eq, Ord)
+
+-- | Natural numbers (including 0): 0, 1, 2, 3, 4, 5, 6, 7, ...
+--
 -- Internally, this type is represented as an 'Int'.
 -- So, it is limited by the 'maxBound' of 'Int'.
 newtype Nat = Nat { unNat :: Int } deriving (Eq, Ord)
@@ -188,6 +198,8 @@
 oNat5  ::(Int->Int->Int)->(Nat5->Nat5->Nat5)   ; oNat5  = oNewtype nat5  unNat5
 oNat6  ::(Int->Int->Int)->(Nat6->Nat6->Nat6)   ; oNat6  = oNewtype nat6  unNat6
 oNat7  ::(Int->Int->Int)->(Nat7->Nat7->Nat7)   ; oNat7  = oNewtype nat7  unNat7
+oNatural :: (Int->Int->Int) -> (Natural->Natural->Natural)
+oNatural = oNewtype Natural unNatural
 
 fInt1  :: (Int->Int) -> (Int1->Int1)   ; fInt1  = fNewtype int1  unInt1
 fInt2  :: (Int->Int) -> (Int2->Int2)   ; fInt2  = fNewtype int2  unInt2
@@ -205,6 +217,8 @@
 fNat5  :: (Int->Int) -> (Nat5->Nat5)   ; fNat5  = fNewtype nat5  unNat5
 fNat6  :: (Int->Int) -> (Nat6->Nat6)   ; fNat6  = fNewtype nat6  unNat6
 fNat7  :: (Int->Int) -> (Nat7->Nat7)   ; fNat7  = fNewtype nat7  unNat7
+fNatural :: (Int->Int) -> (Natural->Natural)
+fNatural = fNewtype Natural unNatural
 
 instance Show Int1 where show = show . unInt1
 instance Show Int2 where show = show . unInt2
@@ -222,6 +236,7 @@
 instance Show Nat5 where show = show . unNat5
 instance Show Nat6 where show = show . unNat6
 instance Show Nat7 where show = show . unNat7
+instance Show Natural where show (Natural x) = show x
 
 instance Read Int1 where readsPrec = readsPrecNewtype int1
 instance Read Int2 where readsPrec = readsPrecNewtype int2
@@ -239,6 +254,7 @@
 instance Read Nat5 where readsPrec = readsPrecNewtype nat5
 instance Read Nat6 where readsPrec = readsPrecNewtype nat6
 instance Read Nat7 where readsPrec = readsPrecNewtype nat7
+instance Read Natural where readsPrec = readsPrecNewtype Natural
 
 
 instance Num Int1 where (+) = oInt1 (+);  abs    = fInt1 abs
@@ -305,7 +321,12 @@
                         (-) = oNat7 (-);  signum = fNat7 signum
                         (*) = oNat7 (*);  fromInteger = nat7 . fromInteger
 
+instance Num Natural where
+  (+) = oNatural (+);  abs    = fNatural abs
+  (-) = oNatural (-);  signum = fNatural signum
+  (*) = oNatural (*);  fromInteger = Natural . fromInteger
 
+
 instance Real Int1 where toRational (Int1 x) = fromIntegral x % 1
 instance Real Int2 where toRational (Int2 x) = fromIntegral x % 1
 instance Real Int3 where toRational (Int3 x) = fromIntegral x % 1
@@ -322,6 +343,7 @@
 instance Real Nat5 where toRational (Nat5 x) = fromIntegral x % 1
 instance Real Nat6 where toRational (Nat6 x) = fromIntegral x % 1
 instance Real Nat7 where toRational (Nat7 x) = fromIntegral x % 1
+instance Real Natural where toRational (Natural x) = fromIntegral x % 1
 
 instance Integral Int1 where quotRem = otNewtype int1 unInt1 quotRem
                              toInteger = toInteger . unInt1
@@ -371,6 +393,9 @@
 instance Integral Nat7 where quotRem = otNewtype nat7 unNat7 quotRem
                              toInteger = toInteger . unNat7
 
+instance Integral Natural where quotRem = otNewtype Natural unNatural quotRem
+                                toInteger = toInteger . unNatural
+
 instance Bounded Int1 where maxBound = Int1 0; minBound = Int1 (-1)
 instance Bounded Int2 where maxBound = Int2 1; minBound = Int2 (-2)
 instance Bounded Int3 where maxBound = Int3 3; minBound = Int3 (-4)
@@ -379,6 +404,7 @@
 instance Bounded Word2 where maxBound = Word2 3; minBound = Word2 0
 instance Bounded Word3 where maxBound = Word3 7; minBound = Word3 0
 instance Bounded Word4 where maxBound = Word4 15; minBound = Word4 0
+instance Bounded Nat where maxBound = Nat maxBound; minBound = Nat 0
 instance Bounded Nat1 where maxBound = Nat1 0; minBound = Nat1 0
 instance Bounded Nat2 where maxBound = Nat2 1; minBound = Nat2 0
 instance Bounded Nat3 where maxBound = Nat3 2; minBound = Nat3 0
@@ -411,9 +437,8 @@
 instance Enum Word4 where toEnum   = word4;   enumFrom     = boundedEnumFrom
                           fromEnum = unWord4; enumFromThen = boundedEnumFromThen
 
-instance Enum Nat where
-  toEnum   = Nat;    enumFrom     (Nat x)         = map Nat [x..]
-  fromEnum = unNat;  enumFromThen (Nat x) (Nat s) = map Nat [x,s..]
+instance Enum Nat where toEnum   = Nat;   enumFrom     = boundedEnumFrom
+                        fromEnum = unNat; enumFromThen = boundedEnumFromThen
 
 instance Enum Nat1 where toEnum   = nat1;   enumFrom     = boundedEnumFrom
                          fromEnum = unNat1; enumFromThen = boundedEnumFromThen
@@ -436,6 +461,12 @@
 instance Enum Nat7 where toEnum   = nat7;   enumFrom     = boundedEnumFrom
                          fromEnum = unNat7; enumFromThen = boundedEnumFromThen
 
+instance Enum Natural where
+  toEnum   = Natural
+  fromEnum = unNatural;
+  enumFrom     (Natural x)             = map Natural [x..]
+  enumFromThen (Natural x) (Natural s) = map Natural [x,s..]
+
 instance Listable Int1 where list = [0,minBound]
 instance Listable Int2 where list = listIntegral
 instance Listable Int3 where list = listIntegral
@@ -452,15 +483,56 @@
 instance Listable Nat5 where list = [0..]
 instance Listable Nat6 where list = [0..]
 instance Listable Nat7 where list = [0..]
+instance Listable Natural where list = [0..]
 
+-- | Deprecated.  Use 'Word1'.
 type UInt1 = Word1
+
+-- | Deprecated.  Use 'Word2'.
 type UInt2 = Word2
+
+-- | Deprecated.  Use 'Word3'.
 type UInt3 = Word3
+
+-- | Deprecated.  Use 'Word4'.
 type UInt4 = Word4
 
+-- | Lists without repeated elements.
+--
+-- > > take 6 $ list :: [NoDup Nat]
+-- > [NoDup [],NoDup [0],NoDup [1],NoDup [0,1],NoDup [1,0],NoDup [2]]
+--
+-- Example, checking the property that @nub@ is an identity:
+--
+-- > import Data.List (nub)
+-- > > check $ \xs -> nub xs == (xs :: [Int])
+-- > *** Failed! Falsifiable (after 3 tests):
+-- > [0,0]
+-- > > check $ \(NoDup xs) -> nub xs == (xs :: [Int])
+-- > +++ OK, passed 200 tests.
 newtype NoDup a = NoDup [a] deriving (Show, Read, Eq, Ord)
+
+-- | Lists representing bags (multisets).
+--   The 'Listable' 'tiers' enumeration will not have repeated bags.
+--
+-- > > take 6 (list :: [Bag Nat])
+-- > [Bag [],Bag [0],Bag [0,0],Bag [1],Bag [0,0,0],Bag [0,1]]
+--
+-- See also: 'bagsOf' and 'bagCons'.
 newtype Bag a = Bag [a] deriving (Show, Read, Eq, Ord)
+
+-- | Lists representing sets.
+--   The 'Listable' 'tiers' enumeration will not have repeated sets.
+--
+-- > > take 6 (list :: [Set Nat])
+-- > [Set [],Set [0],Set [1],Set [0,1],Set [2],Set [0,2]]
 newtype Set a = Set [a] deriving (Show, Read, Eq, Ord)
+
+-- | Lists of pairs representing maps.
+--   The 'Listable' 'tiers' enumeration will not have repeated maps.
+--
+-- > > take 6 (list :: [Map Nat Nat])
+-- > [Map [],Map [(0,0)],Map [(0,1)],Map [(1,0)],Map [(0,2)],Map [(1,1)]]
 newtype Map a b = Map [(a,b)] deriving (Show, Read, Eq, Ord)
 
 instance Listable a => Listable (NoDup a) where tiers = noDupListCons NoDup
@@ -533,8 +605,16 @@
 (x:x':xs) ++| (y:ys)  =  x:x':y:(xs ++| ys)
 infixr 5 ++|
 
-newtype Xs a = Xs {unXs :: [a]} deriving (Eq, Ord)
-instance Show a => Show (Xs a) where show (Xs xs) = show xs
+-- | Wrap around lists of integers for an enumeration containing e-'X'-treme
+--   integer values.
+--
+-- > > check $ \xs -> all (>=0) xs ==> sum (take 1 xs :: [Int]) <= sum xs
+-- > +++ OK, passed 200 tests.
+--
+-- > > check $ \(Xs xs) -> all (>=0) xs ==> sum (take 1 xs :: [Int]) <= sum xs
+-- > *** Failed! Falsifiable (after 56 tests):
+-- > [1,9223372036854775807]
+newtype Xs a = Xs [a] deriving (Eq, Ord, Show, Read)
 instance (Integral a, Bounded a) => Listable (Xs a) where
   tiers = cons1 (Xs . map unX)
 -- ^ Lists with elements of the 'X' type.
diff --git a/tests/diff/tiers-XInt4.out b/tests/diff/tiers-XInt4.out
new file mode 100644
--- /dev/null
+++ b/tests/diff/tiers-XInt4.out
@@ -0,0 +1,23 @@
+map length (tiers :: [[ X Int4 ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,...]
+
+length (list :: [ X Int4 ])  =  Infinity
+
+allUnique (list :: [ X Int4 ])  =  True
+
+ratioRepetitions (list :: [ X Int4 ])  =  0 % 1
+
+tiers :: [X Int4]  =
+  [ [0]
+  , [1]
+  , [-1]
+  , [7]
+  , [-8]
+  , [2]
+  , [-2]
+  , [6]
+  , [-7]
+  , [3]
+  , [-3]
+  , [5]
+  , ...
+  ]
diff --git a/tests/diff/tiers-XNat7.out b/tests/diff/tiers-XNat7.out
new file mode 100644
--- /dev/null
+++ b/tests/diff/tiers-XNat7.out
@@ -0,0 +1,17 @@
+map length (tiers :: [[ X Nat7 ]])  =  [1,1,1,1,1,1,1]
+
+length (list :: [ X Nat7 ])  =  7
+
+allUnique (list :: [ X Nat7 ])  =  True
+
+ratioRepetitions (list :: [ X Nat7 ])  =  0 % 1
+
+tiers :: [X Nat7]  =
+  [ [0]
+  , [1]
+  , [2]
+  , [6]
+  , [3]
+  , [4]
+  , [5]
+  ]
diff --git a/tests/diff/tiers-XWord4.out b/tests/diff/tiers-XWord4.out
new file mode 100644
--- /dev/null
+++ b/tests/diff/tiers-XWord4.out
@@ -0,0 +1,23 @@
+map length (tiers :: [[ X Word4 ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,...]
+
+length (list :: [ X Word4 ])  =  Infinity
+
+allUnique (list :: [ X Word4 ])  =  True
+
+ratioRepetitions (list :: [ X Word4 ])  =  0 % 1
+
+tiers :: [X Word4]  =
+  [ [0]
+  , [1]
+  , [2]
+  , [15]
+  , [3]
+  , [4]
+  , [14]
+  , [5]
+  , [6]
+  , [13]
+  , [7]
+  , [8]
+  , ...
+  ]
diff --git a/tests/diff/tiers-XsInt4.out b/tests/diff/tiers-XsInt4.out
new file mode 100644
--- /dev/null
+++ b/tests/diff/tiers-XsInt4.out
@@ -0,0 +1,1045 @@
+map length (tiers :: [[ Xs Int4 ]])  =  [0,1,1,2,4,8,16,32,64,128,256,512,...]
+
+length (list :: [ Xs Int4 ])  =  Infinity
+
+allUnique (list :: [ Xs Int4 ])  =  True
+
+ratioRepetitions (list :: [ Xs Int4 ])  =  0 % 1
+
+tiers :: [Xs Int4]  =
+  [ []
+  , [Xs []]
+  , [Xs [0]]
+  , [ Xs [0,0]
+    , Xs [1]
+    ]
+  , [ Xs [0,0,0]
+    , Xs [0,1]
+    , Xs [1,0]
+    , Xs [-1]
+    ]
+  , [ Xs [0,0,0,0]
+    , Xs [0,0,1]
+    , Xs [0,1,0]
+    , Xs [0,-1]
+    , Xs [1,0,0]
+    , Xs [1,1]
+    , Xs [-1,0]
+    , Xs [7]
+    ]
+  , [ Xs [0,0,0,0,0]
+    , Xs [0,0,0,1]
+    , Xs [0,0,1,0]
+    , Xs [0,0,-1]
+    , Xs [0,1,0,0]
+    , Xs [0,1,1]
+    , Xs [0,-1,0]
+    , Xs [0,7]
+    , Xs [1,0,0,0]
+    , Xs [1,0,1]
+    , Xs [1,1,0]
+    , Xs [1,-1]
+    , Xs [-1,0,0]
+    , Xs [-1,1]
+    , Xs [7,0]
+    , Xs [-8]
+    ]
+  , [ Xs [0,0,0,0,0,0]
+    , Xs [0,0,0,0,1]
+    , Xs [0,0,0,1,0]
+    , Xs [0,0,0,-1]
+    , Xs [0,0,1,0,0]
+    , Xs [0,0,1,1]
+    , Xs [0,0,-1,0]
+    , Xs [0,0,7]
+    , Xs [0,1,0,0,0]
+    , Xs [0,1,0,1]
+    , Xs [0,1,1,0]
+    , Xs [0,1,-1]
+    , Xs [0,-1,0,0]
+    , Xs [0,-1,1]
+    , Xs [0,7,0]
+    , Xs [0,-8]
+    , Xs [1,0,0,0,0]
+    , Xs [1,0,0,1]
+    , Xs [1,0,1,0]
+    , Xs [1,0,-1]
+    , Xs [1,1,0,0]
+    , Xs [1,1,1]
+    , Xs [1,-1,0]
+    , Xs [1,7]
+    , Xs [-1,0,0,0]
+    , Xs [-1,0,1]
+    , Xs [-1,1,0]
+    , Xs [-1,-1]
+    , Xs [7,0,0]
+    , Xs [7,1]
+    , Xs [-8,0]
+    , Xs [2]
+    ]
+  , [ Xs [0,0,0,0,0,0,0]
+    , Xs [0,0,0,0,0,1]
+    , Xs [0,0,0,0,1,0]
+    , Xs [0,0,0,0,-1]
+    , Xs [0,0,0,1,0,0]
+    , Xs [0,0,0,1,1]
+    , Xs [0,0,0,-1,0]
+    , Xs [0,0,0,7]
+    , Xs [0,0,1,0,0,0]
+    , Xs [0,0,1,0,1]
+    , Xs [0,0,1,1,0]
+    , Xs [0,0,1,-1]
+    , Xs [0,0,-1,0,0]
+    , Xs [0,0,-1,1]
+    , Xs [0,0,7,0]
+    , Xs [0,0,-8]
+    , Xs [0,1,0,0,0,0]
+    , Xs [0,1,0,0,1]
+    , Xs [0,1,0,1,0]
+    , Xs [0,1,0,-1]
+    , Xs [0,1,1,0,0]
+    , Xs [0,1,1,1]
+    , Xs [0,1,-1,0]
+    , Xs [0,1,7]
+    , Xs [0,-1,0,0,0]
+    , Xs [0,-1,0,1]
+    , Xs [0,-1,1,0]
+    , Xs [0,-1,-1]
+    , Xs [0,7,0,0]
+    , Xs [0,7,1]
+    , Xs [0,-8,0]
+    , Xs [0,2]
+    , Xs [1,0,0,0,0,0]
+    , Xs [1,0,0,0,1]
+    , Xs [1,0,0,1,0]
+    , Xs [1,0,0,-1]
+    , Xs [1,0,1,0,0]
+    , Xs [1,0,1,1]
+    , Xs [1,0,-1,0]
+    , Xs [1,0,7]
+    , Xs [1,1,0,0,0]
+    , Xs [1,1,0,1]
+    , Xs [1,1,1,0]
+    , Xs [1,1,-1]
+    , Xs [1,-1,0,0]
+    , Xs [1,-1,1]
+    , Xs [1,7,0]
+    , Xs [1,-8]
+    , Xs [-1,0,0,0,0]
+    , Xs [-1,0,0,1]
+    , Xs [-1,0,1,0]
+    , Xs [-1,0,-1]
+    , Xs [-1,1,0,0]
+    , Xs [-1,1,1]
+    , Xs [-1,-1,0]
+    , Xs [-1,7]
+    , Xs [7,0,0,0]
+    , Xs [7,0,1]
+    , Xs [7,1,0]
+    , Xs [7,-1]
+    , Xs [-8,0,0]
+    , Xs [-8,1]
+    , Xs [2,0]
+    , Xs [-2]
+    ]
+  , [ Xs [0,0,0,0,0,0,0,0]
+    , Xs [0,0,0,0,0,0,1]
+    , Xs [0,0,0,0,0,1,0]
+    , Xs [0,0,0,0,0,-1]
+    , Xs [0,0,0,0,1,0,0]
+    , Xs [0,0,0,0,1,1]
+    , Xs [0,0,0,0,-1,0]
+    , Xs [0,0,0,0,7]
+    , Xs [0,0,0,1,0,0,0]
+    , Xs [0,0,0,1,0,1]
+    , Xs [0,0,0,1,1,0]
+    , Xs [0,0,0,1,-1]
+    , Xs [0,0,0,-1,0,0]
+    , Xs [0,0,0,-1,1]
+    , Xs [0,0,0,7,0]
+    , Xs [0,0,0,-8]
+    , Xs [0,0,1,0,0,0,0]
+    , Xs [0,0,1,0,0,1]
+    , Xs [0,0,1,0,1,0]
+    , Xs [0,0,1,0,-1]
+    , Xs [0,0,1,1,0,0]
+    , Xs [0,0,1,1,1]
+    , Xs [0,0,1,-1,0]
+    , Xs [0,0,1,7]
+    , Xs [0,0,-1,0,0,0]
+    , Xs [0,0,-1,0,1]
+    , Xs [0,0,-1,1,0]
+    , Xs [0,0,-1,-1]
+    , Xs [0,0,7,0,0]
+    , Xs [0,0,7,1]
+    , Xs [0,0,-8,0]
+    , Xs [0,0,2]
+    , Xs [0,1,0,0,0,0,0]
+    , Xs [0,1,0,0,0,1]
+    , Xs [0,1,0,0,1,0]
+    , Xs [0,1,0,0,-1]
+    , Xs [0,1,0,1,0,0]
+    , Xs [0,1,0,1,1]
+    , Xs [0,1,0,-1,0]
+    , Xs [0,1,0,7]
+    , Xs [0,1,1,0,0,0]
+    , Xs [0,1,1,0,1]
+    , Xs [0,1,1,1,0]
+    , Xs [0,1,1,-1]
+    , Xs [0,1,-1,0,0]
+    , Xs [0,1,-1,1]
+    , Xs [0,1,7,0]
+    , Xs [0,1,-8]
+    , Xs [0,-1,0,0,0,0]
+    , Xs [0,-1,0,0,1]
+    , Xs [0,-1,0,1,0]
+    , Xs [0,-1,0,-1]
+    , Xs [0,-1,1,0,0]
+    , Xs [0,-1,1,1]
+    , Xs [0,-1,-1,0]
+    , Xs [0,-1,7]
+    , Xs [0,7,0,0,0]
+    , Xs [0,7,0,1]
+    , Xs [0,7,1,0]
+    , Xs [0,7,-1]
+    , Xs [0,-8,0,0]
+    , Xs [0,-8,1]
+    , Xs [0,2,0]
+    , Xs [0,-2]
+    , Xs [1,0,0,0,0,0,0]
+    , Xs [1,0,0,0,0,1]
+    , Xs [1,0,0,0,1,0]
+    , Xs [1,0,0,0,-1]
+    , Xs [1,0,0,1,0,0]
+    , Xs [1,0,0,1,1]
+    , Xs [1,0,0,-1,0]
+    , Xs [1,0,0,7]
+    , Xs [1,0,1,0,0,0]
+    , Xs [1,0,1,0,1]
+    , Xs [1,0,1,1,0]
+    , Xs [1,0,1,-1]
+    , Xs [1,0,-1,0,0]
+    , Xs [1,0,-1,1]
+    , Xs [1,0,7,0]
+    , Xs [1,0,-8]
+    , Xs [1,1,0,0,0,0]
+    , Xs [1,1,0,0,1]
+    , Xs [1,1,0,1,0]
+    , Xs [1,1,0,-1]
+    , Xs [1,1,1,0,0]
+    , Xs [1,1,1,1]
+    , Xs [1,1,-1,0]
+    , Xs [1,1,7]
+    , Xs [1,-1,0,0,0]
+    , Xs [1,-1,0,1]
+    , Xs [1,-1,1,0]
+    , Xs [1,-1,-1]
+    , Xs [1,7,0,0]
+    , Xs [1,7,1]
+    , Xs [1,-8,0]
+    , Xs [1,2]
+    , Xs [-1,0,0,0,0,0]
+    , Xs [-1,0,0,0,1]
+    , Xs [-1,0,0,1,0]
+    , Xs [-1,0,0,-1]
+    , Xs [-1,0,1,0,0]
+    , Xs [-1,0,1,1]
+    , Xs [-1,0,-1,0]
+    , Xs [-1,0,7]
+    , Xs [-1,1,0,0,0]
+    , Xs [-1,1,0,1]
+    , Xs [-1,1,1,0]
+    , Xs [-1,1,-1]
+    , Xs [-1,-1,0,0]
+    , Xs [-1,-1,1]
+    , Xs [-1,7,0]
+    , Xs [-1,-8]
+    , Xs [7,0,0,0,0]
+    , Xs [7,0,0,1]
+    , Xs [7,0,1,0]
+    , Xs [7,0,-1]
+    , Xs [7,1,0,0]
+    , Xs [7,1,1]
+    , Xs [7,-1,0]
+    , Xs [7,7]
+    , Xs [-8,0,0,0]
+    , Xs [-8,0,1]
+    , Xs [-8,1,0]
+    , Xs [-8,-1]
+    , Xs [2,0,0]
+    , Xs [2,1]
+    , Xs [-2,0]
+    , Xs [6]
+    ]
+  , [ Xs [0,0,0,0,0,0,0,0,0]
+    , Xs [0,0,0,0,0,0,0,1]
+    , Xs [0,0,0,0,0,0,1,0]
+    , Xs [0,0,0,0,0,0,-1]
+    , Xs [0,0,0,0,0,1,0,0]
+    , Xs [0,0,0,0,0,1,1]
+    , Xs [0,0,0,0,0,-1,0]
+    , Xs [0,0,0,0,0,7]
+    , Xs [0,0,0,0,1,0,0,0]
+    , Xs [0,0,0,0,1,0,1]
+    , Xs [0,0,0,0,1,1,0]
+    , Xs [0,0,0,0,1,-1]
+    , Xs [0,0,0,0,-1,0,0]
+    , Xs [0,0,0,0,-1,1]
+    , Xs [0,0,0,0,7,0]
+    , Xs [0,0,0,0,-8]
+    , Xs [0,0,0,1,0,0,0,0]
+    , Xs [0,0,0,1,0,0,1]
+    , Xs [0,0,0,1,0,1,0]
+    , Xs [0,0,0,1,0,-1]
+    , Xs [0,0,0,1,1,0,0]
+    , Xs [0,0,0,1,1,1]
+    , Xs [0,0,0,1,-1,0]
+    , Xs [0,0,0,1,7]
+    , Xs [0,0,0,-1,0,0,0]
+    , Xs [0,0,0,-1,0,1]
+    , Xs [0,0,0,-1,1,0]
+    , Xs [0,0,0,-1,-1]
+    , Xs [0,0,0,7,0,0]
+    , Xs [0,0,0,7,1]
+    , Xs [0,0,0,-8,0]
+    , Xs [0,0,0,2]
+    , Xs [0,0,1,0,0,0,0,0]
+    , Xs [0,0,1,0,0,0,1]
+    , Xs [0,0,1,0,0,1,0]
+    , Xs [0,0,1,0,0,-1]
+    , Xs [0,0,1,0,1,0,0]
+    , Xs [0,0,1,0,1,1]
+    , Xs [0,0,1,0,-1,0]
+    , Xs [0,0,1,0,7]
+    , Xs [0,0,1,1,0,0,0]
+    , Xs [0,0,1,1,0,1]
+    , Xs [0,0,1,1,1,0]
+    , Xs [0,0,1,1,-1]
+    , Xs [0,0,1,-1,0,0]
+    , Xs [0,0,1,-1,1]
+    , Xs [0,0,1,7,0]
+    , Xs [0,0,1,-8]
+    , Xs [0,0,-1,0,0,0,0]
+    , Xs [0,0,-1,0,0,1]
+    , Xs [0,0,-1,0,1,0]
+    , Xs [0,0,-1,0,-1]
+    , Xs [0,0,-1,1,0,0]
+    , Xs [0,0,-1,1,1]
+    , Xs [0,0,-1,-1,0]
+    , Xs [0,0,-1,7]
+    , Xs [0,0,7,0,0,0]
+    , Xs [0,0,7,0,1]
+    , Xs [0,0,7,1,0]
+    , Xs [0,0,7,-1]
+    , Xs [0,0,-8,0,0]
+    , Xs [0,0,-8,1]
+    , Xs [0,0,2,0]
+    , Xs [0,0,-2]
+    , Xs [0,1,0,0,0,0,0,0]
+    , Xs [0,1,0,0,0,0,1]
+    , Xs [0,1,0,0,0,1,0]
+    , Xs [0,1,0,0,0,-1]
+    , Xs [0,1,0,0,1,0,0]
+    , Xs [0,1,0,0,1,1]
+    , Xs [0,1,0,0,-1,0]
+    , Xs [0,1,0,0,7]
+    , Xs [0,1,0,1,0,0,0]
+    , Xs [0,1,0,1,0,1]
+    , Xs [0,1,0,1,1,0]
+    , Xs [0,1,0,1,-1]
+    , Xs [0,1,0,-1,0,0]
+    , Xs [0,1,0,-1,1]
+    , Xs [0,1,0,7,0]
+    , Xs [0,1,0,-8]
+    , Xs [0,1,1,0,0,0,0]
+    , Xs [0,1,1,0,0,1]
+    , Xs [0,1,1,0,1,0]
+    , Xs [0,1,1,0,-1]
+    , Xs [0,1,1,1,0,0]
+    , Xs [0,1,1,1,1]
+    , Xs [0,1,1,-1,0]
+    , Xs [0,1,1,7]
+    , Xs [0,1,-1,0,0,0]
+    , Xs [0,1,-1,0,1]
+    , Xs [0,1,-1,1,0]
+    , Xs [0,1,-1,-1]
+    , Xs [0,1,7,0,0]
+    , Xs [0,1,7,1]
+    , Xs [0,1,-8,0]
+    , Xs [0,1,2]
+    , Xs [0,-1,0,0,0,0,0]
+    , Xs [0,-1,0,0,0,1]
+    , Xs [0,-1,0,0,1,0]
+    , Xs [0,-1,0,0,-1]
+    , Xs [0,-1,0,1,0,0]
+    , Xs [0,-1,0,1,1]
+    , Xs [0,-1,0,-1,0]
+    , Xs [0,-1,0,7]
+    , Xs [0,-1,1,0,0,0]
+    , Xs [0,-1,1,0,1]
+    , Xs [0,-1,1,1,0]
+    , Xs [0,-1,1,-1]
+    , Xs [0,-1,-1,0,0]
+    , Xs [0,-1,-1,1]
+    , Xs [0,-1,7,0]
+    , Xs [0,-1,-8]
+    , Xs [0,7,0,0,0,0]
+    , Xs [0,7,0,0,1]
+    , Xs [0,7,0,1,0]
+    , Xs [0,7,0,-1]
+    , Xs [0,7,1,0,0]
+    , Xs [0,7,1,1]
+    , Xs [0,7,-1,0]
+    , Xs [0,7,7]
+    , Xs [0,-8,0,0,0]
+    , Xs [0,-8,0,1]
+    , Xs [0,-8,1,0]
+    , Xs [0,-8,-1]
+    , Xs [0,2,0,0]
+    , Xs [0,2,1]
+    , Xs [0,-2,0]
+    , Xs [0,6]
+    , Xs [1,0,0,0,0,0,0,0]
+    , Xs [1,0,0,0,0,0,1]
+    , Xs [1,0,0,0,0,1,0]
+    , Xs [1,0,0,0,0,-1]
+    , Xs [1,0,0,0,1,0,0]
+    , Xs [1,0,0,0,1,1]
+    , Xs [1,0,0,0,-1,0]
+    , Xs [1,0,0,0,7]
+    , Xs [1,0,0,1,0,0,0]
+    , Xs [1,0,0,1,0,1]
+    , Xs [1,0,0,1,1,0]
+    , Xs [1,0,0,1,-1]
+    , Xs [1,0,0,-1,0,0]
+    , Xs [1,0,0,-1,1]
+    , Xs [1,0,0,7,0]
+    , Xs [1,0,0,-8]
+    , Xs [1,0,1,0,0,0,0]
+    , Xs [1,0,1,0,0,1]
+    , Xs [1,0,1,0,1,0]
+    , Xs [1,0,1,0,-1]
+    , Xs [1,0,1,1,0,0]
+    , Xs [1,0,1,1,1]
+    , Xs [1,0,1,-1,0]
+    , Xs [1,0,1,7]
+    , Xs [1,0,-1,0,0,0]
+    , Xs [1,0,-1,0,1]
+    , Xs [1,0,-1,1,0]
+    , Xs [1,0,-1,-1]
+    , Xs [1,0,7,0,0]
+    , Xs [1,0,7,1]
+    , Xs [1,0,-8,0]
+    , Xs [1,0,2]
+    , Xs [1,1,0,0,0,0,0]
+    , Xs [1,1,0,0,0,1]
+    , Xs [1,1,0,0,1,0]
+    , Xs [1,1,0,0,-1]
+    , Xs [1,1,0,1,0,0]
+    , Xs [1,1,0,1,1]
+    , Xs [1,1,0,-1,0]
+    , Xs [1,1,0,7]
+    , Xs [1,1,1,0,0,0]
+    , Xs [1,1,1,0,1]
+    , Xs [1,1,1,1,0]
+    , Xs [1,1,1,-1]
+    , Xs [1,1,-1,0,0]
+    , Xs [1,1,-1,1]
+    , Xs [1,1,7,0]
+    , Xs [1,1,-8]
+    , Xs [1,-1,0,0,0,0]
+    , Xs [1,-1,0,0,1]
+    , Xs [1,-1,0,1,0]
+    , Xs [1,-1,0,-1]
+    , Xs [1,-1,1,0,0]
+    , Xs [1,-1,1,1]
+    , Xs [1,-1,-1,0]
+    , Xs [1,-1,7]
+    , Xs [1,7,0,0,0]
+    , Xs [1,7,0,1]
+    , Xs [1,7,1,0]
+    , Xs [1,7,-1]
+    , Xs [1,-8,0,0]
+    , Xs [1,-8,1]
+    , Xs [1,2,0]
+    , Xs [1,-2]
+    , Xs [-1,0,0,0,0,0,0]
+    , Xs [-1,0,0,0,0,1]
+    , Xs [-1,0,0,0,1,0]
+    , Xs [-1,0,0,0,-1]
+    , Xs [-1,0,0,1,0,0]
+    , Xs [-1,0,0,1,1]
+    , Xs [-1,0,0,-1,0]
+    , Xs [-1,0,0,7]
+    , Xs [-1,0,1,0,0,0]
+    , Xs [-1,0,1,0,1]
+    , Xs [-1,0,1,1,0]
+    , Xs [-1,0,1,-1]
+    , Xs [-1,0,-1,0,0]
+    , Xs [-1,0,-1,1]
+    , Xs [-1,0,7,0]
+    , Xs [-1,0,-8]
+    , Xs [-1,1,0,0,0,0]
+    , Xs [-1,1,0,0,1]
+    , Xs [-1,1,0,1,0]
+    , Xs [-1,1,0,-1]
+    , Xs [-1,1,1,0,0]
+    , Xs [-1,1,1,1]
+    , Xs [-1,1,-1,0]
+    , Xs [-1,1,7]
+    , Xs [-1,-1,0,0,0]
+    , Xs [-1,-1,0,1]
+    , Xs [-1,-1,1,0]
+    , Xs [-1,-1,-1]
+    , Xs [-1,7,0,0]
+    , Xs [-1,7,1]
+    , Xs [-1,-8,0]
+    , Xs [-1,2]
+    , Xs [7,0,0,0,0,0]
+    , Xs [7,0,0,0,1]
+    , Xs [7,0,0,1,0]
+    , Xs [7,0,0,-1]
+    , Xs [7,0,1,0,0]
+    , Xs [7,0,1,1]
+    , Xs [7,0,-1,0]
+    , Xs [7,0,7]
+    , Xs [7,1,0,0,0]
+    , Xs [7,1,0,1]
+    , Xs [7,1,1,0]
+    , Xs [7,1,-1]
+    , Xs [7,-1,0,0]
+    , Xs [7,-1,1]
+    , Xs [7,7,0]
+    , Xs [7,-8]
+    , Xs [-8,0,0,0,0]
+    , Xs [-8,0,0,1]
+    , Xs [-8,0,1,0]
+    , Xs [-8,0,-1]
+    , Xs [-8,1,0,0]
+    , Xs [-8,1,1]
+    , Xs [-8,-1,0]
+    , Xs [-8,7]
+    , Xs [2,0,0,0]
+    , Xs [2,0,1]
+    , Xs [2,1,0]
+    , Xs [2,-1]
+    , Xs [-2,0,0]
+    , Xs [-2,1]
+    , Xs [6,0]
+    , Xs [-7]
+    ]
+  , [ Xs [0,0,0,0,0,0,0,0,0,0]
+    , Xs [0,0,0,0,0,0,0,0,1]
+    , Xs [0,0,0,0,0,0,0,1,0]
+    , Xs [0,0,0,0,0,0,0,-1]
+    , Xs [0,0,0,0,0,0,1,0,0]
+    , Xs [0,0,0,0,0,0,1,1]
+    , Xs [0,0,0,0,0,0,-1,0]
+    , Xs [0,0,0,0,0,0,7]
+    , Xs [0,0,0,0,0,1,0,0,0]
+    , Xs [0,0,0,0,0,1,0,1]
+    , Xs [0,0,0,0,0,1,1,0]
+    , Xs [0,0,0,0,0,1,-1]
+    , Xs [0,0,0,0,0,-1,0,0]
+    , Xs [0,0,0,0,0,-1,1]
+    , Xs [0,0,0,0,0,7,0]
+    , Xs [0,0,0,0,0,-8]
+    , Xs [0,0,0,0,1,0,0,0,0]
+    , Xs [0,0,0,0,1,0,0,1]
+    , Xs [0,0,0,0,1,0,1,0]
+    , Xs [0,0,0,0,1,0,-1]
+    , Xs [0,0,0,0,1,1,0,0]
+    , Xs [0,0,0,0,1,1,1]
+    , Xs [0,0,0,0,1,-1,0]
+    , Xs [0,0,0,0,1,7]
+    , Xs [0,0,0,0,-1,0,0,0]
+    , Xs [0,0,0,0,-1,0,1]
+    , Xs [0,0,0,0,-1,1,0]
+    , Xs [0,0,0,0,-1,-1]
+    , Xs [0,0,0,0,7,0,0]
+    , Xs [0,0,0,0,7,1]
+    , Xs [0,0,0,0,-8,0]
+    , Xs [0,0,0,0,2]
+    , Xs [0,0,0,1,0,0,0,0,0]
+    , Xs [0,0,0,1,0,0,0,1]
+    , Xs [0,0,0,1,0,0,1,0]
+    , Xs [0,0,0,1,0,0,-1]
+    , Xs [0,0,0,1,0,1,0,0]
+    , Xs [0,0,0,1,0,1,1]
+    , Xs [0,0,0,1,0,-1,0]
+    , Xs [0,0,0,1,0,7]
+    , Xs [0,0,0,1,1,0,0,0]
+    , Xs [0,0,0,1,1,0,1]
+    , Xs [0,0,0,1,1,1,0]
+    , Xs [0,0,0,1,1,-1]
+    , Xs [0,0,0,1,-1,0,0]
+    , Xs [0,0,0,1,-1,1]
+    , Xs [0,0,0,1,7,0]
+    , Xs [0,0,0,1,-8]
+    , Xs [0,0,0,-1,0,0,0,0]
+    , Xs [0,0,0,-1,0,0,1]
+    , Xs [0,0,0,-1,0,1,0]
+    , Xs [0,0,0,-1,0,-1]
+    , Xs [0,0,0,-1,1,0,0]
+    , Xs [0,0,0,-1,1,1]
+    , Xs [0,0,0,-1,-1,0]
+    , Xs [0,0,0,-1,7]
+    , Xs [0,0,0,7,0,0,0]
+    , Xs [0,0,0,7,0,1]
+    , Xs [0,0,0,7,1,0]
+    , Xs [0,0,0,7,-1]
+    , Xs [0,0,0,-8,0,0]
+    , Xs [0,0,0,-8,1]
+    , Xs [0,0,0,2,0]
+    , Xs [0,0,0,-2]
+    , Xs [0,0,1,0,0,0,0,0,0]
+    , Xs [0,0,1,0,0,0,0,1]
+    , Xs [0,0,1,0,0,0,1,0]
+    , Xs [0,0,1,0,0,0,-1]
+    , Xs [0,0,1,0,0,1,0,0]
+    , Xs [0,0,1,0,0,1,1]
+    , Xs [0,0,1,0,0,-1,0]
+    , Xs [0,0,1,0,0,7]
+    , Xs [0,0,1,0,1,0,0,0]
+    , Xs [0,0,1,0,1,0,1]
+    , Xs [0,0,1,0,1,1,0]
+    , Xs [0,0,1,0,1,-1]
+    , Xs [0,0,1,0,-1,0,0]
+    , Xs [0,0,1,0,-1,1]
+    , Xs [0,0,1,0,7,0]
+    , Xs [0,0,1,0,-8]
+    , Xs [0,0,1,1,0,0,0,0]
+    , Xs [0,0,1,1,0,0,1]
+    , Xs [0,0,1,1,0,1,0]
+    , Xs [0,0,1,1,0,-1]
+    , Xs [0,0,1,1,1,0,0]
+    , Xs [0,0,1,1,1,1]
+    , Xs [0,0,1,1,-1,0]
+    , Xs [0,0,1,1,7]
+    , Xs [0,0,1,-1,0,0,0]
+    , Xs [0,0,1,-1,0,1]
+    , Xs [0,0,1,-1,1,0]
+    , Xs [0,0,1,-1,-1]
+    , Xs [0,0,1,7,0,0]
+    , Xs [0,0,1,7,1]
+    , Xs [0,0,1,-8,0]
+    , Xs [0,0,1,2]
+    , Xs [0,0,-1,0,0,0,0,0]
+    , Xs [0,0,-1,0,0,0,1]
+    , Xs [0,0,-1,0,0,1,0]
+    , Xs [0,0,-1,0,0,-1]
+    , Xs [0,0,-1,0,1,0,0]
+    , Xs [0,0,-1,0,1,1]
+    , Xs [0,0,-1,0,-1,0]
+    , Xs [0,0,-1,0,7]
+    , Xs [0,0,-1,1,0,0,0]
+    , Xs [0,0,-1,1,0,1]
+    , Xs [0,0,-1,1,1,0]
+    , Xs [0,0,-1,1,-1]
+    , Xs [0,0,-1,-1,0,0]
+    , Xs [0,0,-1,-1,1]
+    , Xs [0,0,-1,7,0]
+    , Xs [0,0,-1,-8]
+    , Xs [0,0,7,0,0,0,0]
+    , Xs [0,0,7,0,0,1]
+    , Xs [0,0,7,0,1,0]
+    , Xs [0,0,7,0,-1]
+    , Xs [0,0,7,1,0,0]
+    , Xs [0,0,7,1,1]
+    , Xs [0,0,7,-1,0]
+    , Xs [0,0,7,7]
+    , Xs [0,0,-8,0,0,0]
+    , Xs [0,0,-8,0,1]
+    , Xs [0,0,-8,1,0]
+    , Xs [0,0,-8,-1]
+    , Xs [0,0,2,0,0]
+    , Xs [0,0,2,1]
+    , Xs [0,0,-2,0]
+    , Xs [0,0,6]
+    , Xs [0,1,0,0,0,0,0,0,0]
+    , Xs [0,1,0,0,0,0,0,1]
+    , Xs [0,1,0,0,0,0,1,0]
+    , Xs [0,1,0,0,0,0,-1]
+    , Xs [0,1,0,0,0,1,0,0]
+    , Xs [0,1,0,0,0,1,1]
+    , Xs [0,1,0,0,0,-1,0]
+    , Xs [0,1,0,0,0,7]
+    , Xs [0,1,0,0,1,0,0,0]
+    , Xs [0,1,0,0,1,0,1]
+    , Xs [0,1,0,0,1,1,0]
+    , Xs [0,1,0,0,1,-1]
+    , Xs [0,1,0,0,-1,0,0]
+    , Xs [0,1,0,0,-1,1]
+    , Xs [0,1,0,0,7,0]
+    , Xs [0,1,0,0,-8]
+    , Xs [0,1,0,1,0,0,0,0]
+    , Xs [0,1,0,1,0,0,1]
+    , Xs [0,1,0,1,0,1,0]
+    , Xs [0,1,0,1,0,-1]
+    , Xs [0,1,0,1,1,0,0]
+    , Xs [0,1,0,1,1,1]
+    , Xs [0,1,0,1,-1,0]
+    , Xs [0,1,0,1,7]
+    , Xs [0,1,0,-1,0,0,0]
+    , Xs [0,1,0,-1,0,1]
+    , Xs [0,1,0,-1,1,0]
+    , Xs [0,1,0,-1,-1]
+    , Xs [0,1,0,7,0,0]
+    , Xs [0,1,0,7,1]
+    , Xs [0,1,0,-8,0]
+    , Xs [0,1,0,2]
+    , Xs [0,1,1,0,0,0,0,0]
+    , Xs [0,1,1,0,0,0,1]
+    , Xs [0,1,1,0,0,1,0]
+    , Xs [0,1,1,0,0,-1]
+    , Xs [0,1,1,0,1,0,0]
+    , Xs [0,1,1,0,1,1]
+    , Xs [0,1,1,0,-1,0]
+    , Xs [0,1,1,0,7]
+    , Xs [0,1,1,1,0,0,0]
+    , Xs [0,1,1,1,0,1]
+    , Xs [0,1,1,1,1,0]
+    , Xs [0,1,1,1,-1]
+    , Xs [0,1,1,-1,0,0]
+    , Xs [0,1,1,-1,1]
+    , Xs [0,1,1,7,0]
+    , Xs [0,1,1,-8]
+    , Xs [0,1,-1,0,0,0,0]
+    , Xs [0,1,-1,0,0,1]
+    , Xs [0,1,-1,0,1,0]
+    , Xs [0,1,-1,0,-1]
+    , Xs [0,1,-1,1,0,0]
+    , Xs [0,1,-1,1,1]
+    , Xs [0,1,-1,-1,0]
+    , Xs [0,1,-1,7]
+    , Xs [0,1,7,0,0,0]
+    , Xs [0,1,7,0,1]
+    , Xs [0,1,7,1,0]
+    , Xs [0,1,7,-1]
+    , Xs [0,1,-8,0,0]
+    , Xs [0,1,-8,1]
+    , Xs [0,1,2,0]
+    , Xs [0,1,-2]
+    , Xs [0,-1,0,0,0,0,0,0]
+    , Xs [0,-1,0,0,0,0,1]
+    , Xs [0,-1,0,0,0,1,0]
+    , Xs [0,-1,0,0,0,-1]
+    , Xs [0,-1,0,0,1,0,0]
+    , Xs [0,-1,0,0,1,1]
+    , Xs [0,-1,0,0,-1,0]
+    , Xs [0,-1,0,0,7]
+    , Xs [0,-1,0,1,0,0,0]
+    , Xs [0,-1,0,1,0,1]
+    , Xs [0,-1,0,1,1,0]
+    , Xs [0,-1,0,1,-1]
+    , Xs [0,-1,0,-1,0,0]
+    , Xs [0,-1,0,-1,1]
+    , Xs [0,-1,0,7,0]
+    , Xs [0,-1,0,-8]
+    , Xs [0,-1,1,0,0,0,0]
+    , Xs [0,-1,1,0,0,1]
+    , Xs [0,-1,1,0,1,0]
+    , Xs [0,-1,1,0,-1]
+    , Xs [0,-1,1,1,0,0]
+    , Xs [0,-1,1,1,1]
+    , Xs [0,-1,1,-1,0]
+    , Xs [0,-1,1,7]
+    , Xs [0,-1,-1,0,0,0]
+    , Xs [0,-1,-1,0,1]
+    , Xs [0,-1,-1,1,0]
+    , Xs [0,-1,-1,-1]
+    , Xs [0,-1,7,0,0]
+    , Xs [0,-1,7,1]
+    , Xs [0,-1,-8,0]
+    , Xs [0,-1,2]
+    , Xs [0,7,0,0,0,0,0]
+    , Xs [0,7,0,0,0,1]
+    , Xs [0,7,0,0,1,0]
+    , Xs [0,7,0,0,-1]
+    , Xs [0,7,0,1,0,0]
+    , Xs [0,7,0,1,1]
+    , Xs [0,7,0,-1,0]
+    , Xs [0,7,0,7]
+    , Xs [0,7,1,0,0,0]
+    , Xs [0,7,1,0,1]
+    , Xs [0,7,1,1,0]
+    , Xs [0,7,1,-1]
+    , Xs [0,7,-1,0,0]
+    , Xs [0,7,-1,1]
+    , Xs [0,7,7,0]
+    , Xs [0,7,-8]
+    , Xs [0,-8,0,0,0,0]
+    , Xs [0,-8,0,0,1]
+    , Xs [0,-8,0,1,0]
+    , Xs [0,-8,0,-1]
+    , Xs [0,-8,1,0,0]
+    , Xs [0,-8,1,1]
+    , Xs [0,-8,-1,0]
+    , Xs [0,-8,7]
+    , Xs [0,2,0,0,0]
+    , Xs [0,2,0,1]
+    , Xs [0,2,1,0]
+    , Xs [0,2,-1]
+    , Xs [0,-2,0,0]
+    , Xs [0,-2,1]
+    , Xs [0,6,0]
+    , Xs [0,-7]
+    , Xs [1,0,0,0,0,0,0,0,0]
+    , Xs [1,0,0,0,0,0,0,1]
+    , Xs [1,0,0,0,0,0,1,0]
+    , Xs [1,0,0,0,0,0,-1]
+    , Xs [1,0,0,0,0,1,0,0]
+    , Xs [1,0,0,0,0,1,1]
+    , Xs [1,0,0,0,0,-1,0]
+    , Xs [1,0,0,0,0,7]
+    , Xs [1,0,0,0,1,0,0,0]
+    , Xs [1,0,0,0,1,0,1]
+    , Xs [1,0,0,0,1,1,0]
+    , Xs [1,0,0,0,1,-1]
+    , Xs [1,0,0,0,-1,0,0]
+    , Xs [1,0,0,0,-1,1]
+    , Xs [1,0,0,0,7,0]
+    , Xs [1,0,0,0,-8]
+    , Xs [1,0,0,1,0,0,0,0]
+    , Xs [1,0,0,1,0,0,1]
+    , Xs [1,0,0,1,0,1,0]
+    , Xs [1,0,0,1,0,-1]
+    , Xs [1,0,0,1,1,0,0]
+    , Xs [1,0,0,1,1,1]
+    , Xs [1,0,0,1,-1,0]
+    , Xs [1,0,0,1,7]
+    , Xs [1,0,0,-1,0,0,0]
+    , Xs [1,0,0,-1,0,1]
+    , Xs [1,0,0,-1,1,0]
+    , Xs [1,0,0,-1,-1]
+    , Xs [1,0,0,7,0,0]
+    , Xs [1,0,0,7,1]
+    , Xs [1,0,0,-8,0]
+    , Xs [1,0,0,2]
+    , Xs [1,0,1,0,0,0,0,0]
+    , Xs [1,0,1,0,0,0,1]
+    , Xs [1,0,1,0,0,1,0]
+    , Xs [1,0,1,0,0,-1]
+    , Xs [1,0,1,0,1,0,0]
+    , Xs [1,0,1,0,1,1]
+    , Xs [1,0,1,0,-1,0]
+    , Xs [1,0,1,0,7]
+    , Xs [1,0,1,1,0,0,0]
+    , Xs [1,0,1,1,0,1]
+    , Xs [1,0,1,1,1,0]
+    , Xs [1,0,1,1,-1]
+    , Xs [1,0,1,-1,0,0]
+    , Xs [1,0,1,-1,1]
+    , Xs [1,0,1,7,0]
+    , Xs [1,0,1,-8]
+    , Xs [1,0,-1,0,0,0,0]
+    , Xs [1,0,-1,0,0,1]
+    , Xs [1,0,-1,0,1,0]
+    , Xs [1,0,-1,0,-1]
+    , Xs [1,0,-1,1,0,0]
+    , Xs [1,0,-1,1,1]
+    , Xs [1,0,-1,-1,0]
+    , Xs [1,0,-1,7]
+    , Xs [1,0,7,0,0,0]
+    , Xs [1,0,7,0,1]
+    , Xs [1,0,7,1,0]
+    , Xs [1,0,7,-1]
+    , Xs [1,0,-8,0,0]
+    , Xs [1,0,-8,1]
+    , Xs [1,0,2,0]
+    , Xs [1,0,-2]
+    , Xs [1,1,0,0,0,0,0,0]
+    , Xs [1,1,0,0,0,0,1]
+    , Xs [1,1,0,0,0,1,0]
+    , Xs [1,1,0,0,0,-1]
+    , Xs [1,1,0,0,1,0,0]
+    , Xs [1,1,0,0,1,1]
+    , Xs [1,1,0,0,-1,0]
+    , Xs [1,1,0,0,7]
+    , Xs [1,1,0,1,0,0,0]
+    , Xs [1,1,0,1,0,1]
+    , Xs [1,1,0,1,1,0]
+    , Xs [1,1,0,1,-1]
+    , Xs [1,1,0,-1,0,0]
+    , Xs [1,1,0,-1,1]
+    , Xs [1,1,0,7,0]
+    , Xs [1,1,0,-8]
+    , Xs [1,1,1,0,0,0,0]
+    , Xs [1,1,1,0,0,1]
+    , Xs [1,1,1,0,1,0]
+    , Xs [1,1,1,0,-1]
+    , Xs [1,1,1,1,0,0]
+    , Xs [1,1,1,1,1]
+    , Xs [1,1,1,-1,0]
+    , Xs [1,1,1,7]
+    , Xs [1,1,-1,0,0,0]
+    , Xs [1,1,-1,0,1]
+    , Xs [1,1,-1,1,0]
+    , Xs [1,1,-1,-1]
+    , Xs [1,1,7,0,0]
+    , Xs [1,1,7,1]
+    , Xs [1,1,-8,0]
+    , Xs [1,1,2]
+    , Xs [1,-1,0,0,0,0,0]
+    , Xs [1,-1,0,0,0,1]
+    , Xs [1,-1,0,0,1,0]
+    , Xs [1,-1,0,0,-1]
+    , Xs [1,-1,0,1,0,0]
+    , Xs [1,-1,0,1,1]
+    , Xs [1,-1,0,-1,0]
+    , Xs [1,-1,0,7]
+    , Xs [1,-1,1,0,0,0]
+    , Xs [1,-1,1,0,1]
+    , Xs [1,-1,1,1,0]
+    , Xs [1,-1,1,-1]
+    , Xs [1,-1,-1,0,0]
+    , Xs [1,-1,-1,1]
+    , Xs [1,-1,7,0]
+    , Xs [1,-1,-8]
+    , Xs [1,7,0,0,0,0]
+    , Xs [1,7,0,0,1]
+    , Xs [1,7,0,1,0]
+    , Xs [1,7,0,-1]
+    , Xs [1,7,1,0,0]
+    , Xs [1,7,1,1]
+    , Xs [1,7,-1,0]
+    , Xs [1,7,7]
+    , Xs [1,-8,0,0,0]
+    , Xs [1,-8,0,1]
+    , Xs [1,-8,1,0]
+    , Xs [1,-8,-1]
+    , Xs [1,2,0,0]
+    , Xs [1,2,1]
+    , Xs [1,-2,0]
+    , Xs [1,6]
+    , Xs [-1,0,0,0,0,0,0,0]
+    , Xs [-1,0,0,0,0,0,1]
+    , Xs [-1,0,0,0,0,1,0]
+    , Xs [-1,0,0,0,0,-1]
+    , Xs [-1,0,0,0,1,0,0]
+    , Xs [-1,0,0,0,1,1]
+    , Xs [-1,0,0,0,-1,0]
+    , Xs [-1,0,0,0,7]
+    , Xs [-1,0,0,1,0,0,0]
+    , Xs [-1,0,0,1,0,1]
+    , Xs [-1,0,0,1,1,0]
+    , Xs [-1,0,0,1,-1]
+    , Xs [-1,0,0,-1,0,0]
+    , Xs [-1,0,0,-1,1]
+    , Xs [-1,0,0,7,0]
+    , Xs [-1,0,0,-8]
+    , Xs [-1,0,1,0,0,0,0]
+    , Xs [-1,0,1,0,0,1]
+    , Xs [-1,0,1,0,1,0]
+    , Xs [-1,0,1,0,-1]
+    , Xs [-1,0,1,1,0,0]
+    , Xs [-1,0,1,1,1]
+    , Xs [-1,0,1,-1,0]
+    , Xs [-1,0,1,7]
+    , Xs [-1,0,-1,0,0,0]
+    , Xs [-1,0,-1,0,1]
+    , Xs [-1,0,-1,1,0]
+    , Xs [-1,0,-1,-1]
+    , Xs [-1,0,7,0,0]
+    , Xs [-1,0,7,1]
+    , Xs [-1,0,-8,0]
+    , Xs [-1,0,2]
+    , Xs [-1,1,0,0,0,0,0]
+    , Xs [-1,1,0,0,0,1]
+    , Xs [-1,1,0,0,1,0]
+    , Xs [-1,1,0,0,-1]
+    , Xs [-1,1,0,1,0,0]
+    , Xs [-1,1,0,1,1]
+    , Xs [-1,1,0,-1,0]
+    , Xs [-1,1,0,7]
+    , Xs [-1,1,1,0,0,0]
+    , Xs [-1,1,1,0,1]
+    , Xs [-1,1,1,1,0]
+    , Xs [-1,1,1,-1]
+    , Xs [-1,1,-1,0,0]
+    , Xs [-1,1,-1,1]
+    , Xs [-1,1,7,0]
+    , Xs [-1,1,-8]
+    , Xs [-1,-1,0,0,0,0]
+    , Xs [-1,-1,0,0,1]
+    , Xs [-1,-1,0,1,0]
+    , Xs [-1,-1,0,-1]
+    , Xs [-1,-1,1,0,0]
+    , Xs [-1,-1,1,1]
+    , Xs [-1,-1,-1,0]
+    , Xs [-1,-1,7]
+    , Xs [-1,7,0,0,0]
+    , Xs [-1,7,0,1]
+    , Xs [-1,7,1,0]
+    , Xs [-1,7,-1]
+    , Xs [-1,-8,0,0]
+    , Xs [-1,-8,1]
+    , Xs [-1,2,0]
+    , Xs [-1,-2]
+    , Xs [7,0,0,0,0,0,0]
+    , Xs [7,0,0,0,0,1]
+    , Xs [7,0,0,0,1,0]
+    , Xs [7,0,0,0,-1]
+    , Xs [7,0,0,1,0,0]
+    , Xs [7,0,0,1,1]
+    , Xs [7,0,0,-1,0]
+    , Xs [7,0,0,7]
+    , Xs [7,0,1,0,0,0]
+    , Xs [7,0,1,0,1]
+    , Xs [7,0,1,1,0]
+    , Xs [7,0,1,-1]
+    , Xs [7,0,-1,0,0]
+    , Xs [7,0,-1,1]
+    , Xs [7,0,7,0]
+    , Xs [7,0,-8]
+    , Xs [7,1,0,0,0,0]
+    , Xs [7,1,0,0,1]
+    , Xs [7,1,0,1,0]
+    , Xs [7,1,0,-1]
+    , Xs [7,1,1,0,0]
+    , Xs [7,1,1,1]
+    , Xs [7,1,-1,0]
+    , Xs [7,1,7]
+    , Xs [7,-1,0,0,0]
+    , Xs [7,-1,0,1]
+    , Xs [7,-1,1,0]
+    , Xs [7,-1,-1]
+    , Xs [7,7,0,0]
+    , Xs [7,7,1]
+    , Xs [7,-8,0]
+    , Xs [7,2]
+    , Xs [-8,0,0,0,0,0]
+    , Xs [-8,0,0,0,1]
+    , Xs [-8,0,0,1,0]
+    , Xs [-8,0,0,-1]
+    , Xs [-8,0,1,0,0]
+    , Xs [-8,0,1,1]
+    , Xs [-8,0,-1,0]
+    , Xs [-8,0,7]
+    , Xs [-8,1,0,0,0]
+    , Xs [-8,1,0,1]
+    , Xs [-8,1,1,0]
+    , Xs [-8,1,-1]
+    , Xs [-8,-1,0,0]
+    , Xs [-8,-1,1]
+    , Xs [-8,7,0]
+    , Xs [-8,-8]
+    , Xs [2,0,0,0,0]
+    , Xs [2,0,0,1]
+    , Xs [2,0,1,0]
+    , Xs [2,0,-1]
+    , Xs [2,1,0,0]
+    , Xs [2,1,1]
+    , Xs [2,-1,0]
+    , Xs [2,7]
+    , Xs [-2,0,0,0]
+    , Xs [-2,0,1]
+    , Xs [-2,1,0]
+    , Xs [-2,-1]
+    , Xs [6,0,0]
+    , Xs [6,1]
+    , Xs [-7,0]
+    , Xs [3]
+    ]
+  , ...
+  ]
diff --git a/tests/diff/tiers-XsNat7.out b/tests/diff/tiers-XsNat7.out
new file mode 100644
--- /dev/null
+++ b/tests/diff/tiers-XsNat7.out
@@ -0,0 +1,1033 @@
+map length (tiers :: [[ Xs Nat7 ]])  =  [0,1,1,2,4,8,16,32,64,127,253,504,...]
+
+length (list :: [ Xs Nat7 ])  =  Infinity
+
+allUnique (list :: [ Xs Nat7 ])  =  True
+
+ratioRepetitions (list :: [ Xs Nat7 ])  =  0 % 1
+
+tiers :: [Xs Nat7]  =
+  [ []
+  , [Xs []]
+  , [Xs [0]]
+  , [ Xs [0,0]
+    , Xs [1]
+    ]
+  , [ Xs [0,0,0]
+    , Xs [0,1]
+    , Xs [1,0]
+    , Xs [2]
+    ]
+  , [ Xs [0,0,0,0]
+    , Xs [0,0,1]
+    , Xs [0,1,0]
+    , Xs [0,2]
+    , Xs [1,0,0]
+    , Xs [1,1]
+    , Xs [2,0]
+    , Xs [6]
+    ]
+  , [ Xs [0,0,0,0,0]
+    , Xs [0,0,0,1]
+    , Xs [0,0,1,0]
+    , Xs [0,0,2]
+    , Xs [0,1,0,0]
+    , Xs [0,1,1]
+    , Xs [0,2,0]
+    , Xs [0,6]
+    , Xs [1,0,0,0]
+    , Xs [1,0,1]
+    , Xs [1,1,0]
+    , Xs [1,2]
+    , Xs [2,0,0]
+    , Xs [2,1]
+    , Xs [6,0]
+    , Xs [3]
+    ]
+  , [ Xs [0,0,0,0,0,0]
+    , Xs [0,0,0,0,1]
+    , Xs [0,0,0,1,0]
+    , Xs [0,0,0,2]
+    , Xs [0,0,1,0,0]
+    , Xs [0,0,1,1]
+    , Xs [0,0,2,0]
+    , Xs [0,0,6]
+    , Xs [0,1,0,0,0]
+    , Xs [0,1,0,1]
+    , Xs [0,1,1,0]
+    , Xs [0,1,2]
+    , Xs [0,2,0,0]
+    , Xs [0,2,1]
+    , Xs [0,6,0]
+    , Xs [0,3]
+    , Xs [1,0,0,0,0]
+    , Xs [1,0,0,1]
+    , Xs [1,0,1,0]
+    , Xs [1,0,2]
+    , Xs [1,1,0,0]
+    , Xs [1,1,1]
+    , Xs [1,2,0]
+    , Xs [1,6]
+    , Xs [2,0,0,0]
+    , Xs [2,0,1]
+    , Xs [2,1,0]
+    , Xs [2,2]
+    , Xs [6,0,0]
+    , Xs [6,1]
+    , Xs [3,0]
+    , Xs [4]
+    ]
+  , [ Xs [0,0,0,0,0,0,0]
+    , Xs [0,0,0,0,0,1]
+    , Xs [0,0,0,0,1,0]
+    , Xs [0,0,0,0,2]
+    , Xs [0,0,0,1,0,0]
+    , Xs [0,0,0,1,1]
+    , Xs [0,0,0,2,0]
+    , Xs [0,0,0,6]
+    , Xs [0,0,1,0,0,0]
+    , Xs [0,0,1,0,1]
+    , Xs [0,0,1,1,0]
+    , Xs [0,0,1,2]
+    , Xs [0,0,2,0,0]
+    , Xs [0,0,2,1]
+    , Xs [0,0,6,0]
+    , Xs [0,0,3]
+    , Xs [0,1,0,0,0,0]
+    , Xs [0,1,0,0,1]
+    , Xs [0,1,0,1,0]
+    , Xs [0,1,0,2]
+    , Xs [0,1,1,0,0]
+    , Xs [0,1,1,1]
+    , Xs [0,1,2,0]
+    , Xs [0,1,6]
+    , Xs [0,2,0,0,0]
+    , Xs [0,2,0,1]
+    , Xs [0,2,1,0]
+    , Xs [0,2,2]
+    , Xs [0,6,0,0]
+    , Xs [0,6,1]
+    , Xs [0,3,0]
+    , Xs [0,4]
+    , Xs [1,0,0,0,0,0]
+    , Xs [1,0,0,0,1]
+    , Xs [1,0,0,1,0]
+    , Xs [1,0,0,2]
+    , Xs [1,0,1,0,0]
+    , Xs [1,0,1,1]
+    , Xs [1,0,2,0]
+    , Xs [1,0,6]
+    , Xs [1,1,0,0,0]
+    , Xs [1,1,0,1]
+    , Xs [1,1,1,0]
+    , Xs [1,1,2]
+    , Xs [1,2,0,0]
+    , Xs [1,2,1]
+    , Xs [1,6,0]
+    , Xs [1,3]
+    , Xs [2,0,0,0,0]
+    , Xs [2,0,0,1]
+    , Xs [2,0,1,0]
+    , Xs [2,0,2]
+    , Xs [2,1,0,0]
+    , Xs [2,1,1]
+    , Xs [2,2,0]
+    , Xs [2,6]
+    , Xs [6,0,0,0]
+    , Xs [6,0,1]
+    , Xs [6,1,0]
+    , Xs [6,2]
+    , Xs [3,0,0]
+    , Xs [3,1]
+    , Xs [4,0]
+    , Xs [5]
+    ]
+  , [ Xs [0,0,0,0,0,0,0,0]
+    , Xs [0,0,0,0,0,0,1]
+    , Xs [0,0,0,0,0,1,0]
+    , Xs [0,0,0,0,0,2]
+    , Xs [0,0,0,0,1,0,0]
+    , Xs [0,0,0,0,1,1]
+    , Xs [0,0,0,0,2,0]
+    , Xs [0,0,0,0,6]
+    , Xs [0,0,0,1,0,0,0]
+    , Xs [0,0,0,1,0,1]
+    , Xs [0,0,0,1,1,0]
+    , Xs [0,0,0,1,2]
+    , Xs [0,0,0,2,0,0]
+    , Xs [0,0,0,2,1]
+    , Xs [0,0,0,6,0]
+    , Xs [0,0,0,3]
+    , Xs [0,0,1,0,0,0,0]
+    , Xs [0,0,1,0,0,1]
+    , Xs [0,0,1,0,1,0]
+    , Xs [0,0,1,0,2]
+    , Xs [0,0,1,1,0,0]
+    , Xs [0,0,1,1,1]
+    , Xs [0,0,1,2,0]
+    , Xs [0,0,1,6]
+    , Xs [0,0,2,0,0,0]
+    , Xs [0,0,2,0,1]
+    , Xs [0,0,2,1,0]
+    , Xs [0,0,2,2]
+    , Xs [0,0,6,0,0]
+    , Xs [0,0,6,1]
+    , Xs [0,0,3,0]
+    , Xs [0,0,4]
+    , Xs [0,1,0,0,0,0,0]
+    , Xs [0,1,0,0,0,1]
+    , Xs [0,1,0,0,1,0]
+    , Xs [0,1,0,0,2]
+    , Xs [0,1,0,1,0,0]
+    , Xs [0,1,0,1,1]
+    , Xs [0,1,0,2,0]
+    , Xs [0,1,0,6]
+    , Xs [0,1,1,0,0,0]
+    , Xs [0,1,1,0,1]
+    , Xs [0,1,1,1,0]
+    , Xs [0,1,1,2]
+    , Xs [0,1,2,0,0]
+    , Xs [0,1,2,1]
+    , Xs [0,1,6,0]
+    , Xs [0,1,3]
+    , Xs [0,2,0,0,0,0]
+    , Xs [0,2,0,0,1]
+    , Xs [0,2,0,1,0]
+    , Xs [0,2,0,2]
+    , Xs [0,2,1,0,0]
+    , Xs [0,2,1,1]
+    , Xs [0,2,2,0]
+    , Xs [0,2,6]
+    , Xs [0,6,0,0,0]
+    , Xs [0,6,0,1]
+    , Xs [0,6,1,0]
+    , Xs [0,6,2]
+    , Xs [0,3,0,0]
+    , Xs [0,3,1]
+    , Xs [0,4,0]
+    , Xs [0,5]
+    , Xs [1,0,0,0,0,0,0]
+    , Xs [1,0,0,0,0,1]
+    , Xs [1,0,0,0,1,0]
+    , Xs [1,0,0,0,2]
+    , Xs [1,0,0,1,0,0]
+    , Xs [1,0,0,1,1]
+    , Xs [1,0,0,2,0]
+    , Xs [1,0,0,6]
+    , Xs [1,0,1,0,0,0]
+    , Xs [1,0,1,0,1]
+    , Xs [1,0,1,1,0]
+    , Xs [1,0,1,2]
+    , Xs [1,0,2,0,0]
+    , Xs [1,0,2,1]
+    , Xs [1,0,6,0]
+    , Xs [1,0,3]
+    , Xs [1,1,0,0,0,0]
+    , Xs [1,1,0,0,1]
+    , Xs [1,1,0,1,0]
+    , Xs [1,1,0,2]
+    , Xs [1,1,1,0,0]
+    , Xs [1,1,1,1]
+    , Xs [1,1,2,0]
+    , Xs [1,1,6]
+    , Xs [1,2,0,0,0]
+    , Xs [1,2,0,1]
+    , Xs [1,2,1,0]
+    , Xs [1,2,2]
+    , Xs [1,6,0,0]
+    , Xs [1,6,1]
+    , Xs [1,3,0]
+    , Xs [1,4]
+    , Xs [2,0,0,0,0,0]
+    , Xs [2,0,0,0,1]
+    , Xs [2,0,0,1,0]
+    , Xs [2,0,0,2]
+    , Xs [2,0,1,0,0]
+    , Xs [2,0,1,1]
+    , Xs [2,0,2,0]
+    , Xs [2,0,6]
+    , Xs [2,1,0,0,0]
+    , Xs [2,1,0,1]
+    , Xs [2,1,1,0]
+    , Xs [2,1,2]
+    , Xs [2,2,0,0]
+    , Xs [2,2,1]
+    , Xs [2,6,0]
+    , Xs [2,3]
+    , Xs [6,0,0,0,0]
+    , Xs [6,0,0,1]
+    , Xs [6,0,1,0]
+    , Xs [6,0,2]
+    , Xs [6,1,0,0]
+    , Xs [6,1,1]
+    , Xs [6,2,0]
+    , Xs [6,6]
+    , Xs [3,0,0,0]
+    , Xs [3,0,1]
+    , Xs [3,1,0]
+    , Xs [3,2]
+    , Xs [4,0,0]
+    , Xs [4,1]
+    , Xs [5,0]
+    ]
+  , [ Xs [0,0,0,0,0,0,0,0,0]
+    , Xs [0,0,0,0,0,0,0,1]
+    , Xs [0,0,0,0,0,0,1,0]
+    , Xs [0,0,0,0,0,0,2]
+    , Xs [0,0,0,0,0,1,0,0]
+    , Xs [0,0,0,0,0,1,1]
+    , Xs [0,0,0,0,0,2,0]
+    , Xs [0,0,0,0,0,6]
+    , Xs [0,0,0,0,1,0,0,0]
+    , Xs [0,0,0,0,1,0,1]
+    , Xs [0,0,0,0,1,1,0]
+    , Xs [0,0,0,0,1,2]
+    , Xs [0,0,0,0,2,0,0]
+    , Xs [0,0,0,0,2,1]
+    , Xs [0,0,0,0,6,0]
+    , Xs [0,0,0,0,3]
+    , Xs [0,0,0,1,0,0,0,0]
+    , Xs [0,0,0,1,0,0,1]
+    , Xs [0,0,0,1,0,1,0]
+    , Xs [0,0,0,1,0,2]
+    , Xs [0,0,0,1,1,0,0]
+    , Xs [0,0,0,1,1,1]
+    , Xs [0,0,0,1,2,0]
+    , Xs [0,0,0,1,6]
+    , Xs [0,0,0,2,0,0,0]
+    , Xs [0,0,0,2,0,1]
+    , Xs [0,0,0,2,1,0]
+    , Xs [0,0,0,2,2]
+    , Xs [0,0,0,6,0,0]
+    , Xs [0,0,0,6,1]
+    , Xs [0,0,0,3,0]
+    , Xs [0,0,0,4]
+    , Xs [0,0,1,0,0,0,0,0]
+    , Xs [0,0,1,0,0,0,1]
+    , Xs [0,0,1,0,0,1,0]
+    , Xs [0,0,1,0,0,2]
+    , Xs [0,0,1,0,1,0,0]
+    , Xs [0,0,1,0,1,1]
+    , Xs [0,0,1,0,2,0]
+    , Xs [0,0,1,0,6]
+    , Xs [0,0,1,1,0,0,0]
+    , Xs [0,0,1,1,0,1]
+    , Xs [0,0,1,1,1,0]
+    , Xs [0,0,1,1,2]
+    , Xs [0,0,1,2,0,0]
+    , Xs [0,0,1,2,1]
+    , Xs [0,0,1,6,0]
+    , Xs [0,0,1,3]
+    , Xs [0,0,2,0,0,0,0]
+    , Xs [0,0,2,0,0,1]
+    , Xs [0,0,2,0,1,0]
+    , Xs [0,0,2,0,2]
+    , Xs [0,0,2,1,0,0]
+    , Xs [0,0,2,1,1]
+    , Xs [0,0,2,2,0]
+    , Xs [0,0,2,6]
+    , Xs [0,0,6,0,0,0]
+    , Xs [0,0,6,0,1]
+    , Xs [0,0,6,1,0]
+    , Xs [0,0,6,2]
+    , Xs [0,0,3,0,0]
+    , Xs [0,0,3,1]
+    , Xs [0,0,4,0]
+    , Xs [0,0,5]
+    , Xs [0,1,0,0,0,0,0,0]
+    , Xs [0,1,0,0,0,0,1]
+    , Xs [0,1,0,0,0,1,0]
+    , Xs [0,1,0,0,0,2]
+    , Xs [0,1,0,0,1,0,0]
+    , Xs [0,1,0,0,1,1]
+    , Xs [0,1,0,0,2,0]
+    , Xs [0,1,0,0,6]
+    , Xs [0,1,0,1,0,0,0]
+    , Xs [0,1,0,1,0,1]
+    , Xs [0,1,0,1,1,0]
+    , Xs [0,1,0,1,2]
+    , Xs [0,1,0,2,0,0]
+    , Xs [0,1,0,2,1]
+    , Xs [0,1,0,6,0]
+    , Xs [0,1,0,3]
+    , Xs [0,1,1,0,0,0,0]
+    , Xs [0,1,1,0,0,1]
+    , Xs [0,1,1,0,1,0]
+    , Xs [0,1,1,0,2]
+    , Xs [0,1,1,1,0,0]
+    , Xs [0,1,1,1,1]
+    , Xs [0,1,1,2,0]
+    , Xs [0,1,1,6]
+    , Xs [0,1,2,0,0,0]
+    , Xs [0,1,2,0,1]
+    , Xs [0,1,2,1,0]
+    , Xs [0,1,2,2]
+    , Xs [0,1,6,0,0]
+    , Xs [0,1,6,1]
+    , Xs [0,1,3,0]
+    , Xs [0,1,4]
+    , Xs [0,2,0,0,0,0,0]
+    , Xs [0,2,0,0,0,1]
+    , Xs [0,2,0,0,1,0]
+    , Xs [0,2,0,0,2]
+    , Xs [0,2,0,1,0,0]
+    , Xs [0,2,0,1,1]
+    , Xs [0,2,0,2,0]
+    , Xs [0,2,0,6]
+    , Xs [0,2,1,0,0,0]
+    , Xs [0,2,1,0,1]
+    , Xs [0,2,1,1,0]
+    , Xs [0,2,1,2]
+    , Xs [0,2,2,0,0]
+    , Xs [0,2,2,1]
+    , Xs [0,2,6,0]
+    , Xs [0,2,3]
+    , Xs [0,6,0,0,0,0]
+    , Xs [0,6,0,0,1]
+    , Xs [0,6,0,1,0]
+    , Xs [0,6,0,2]
+    , Xs [0,6,1,0,0]
+    , Xs [0,6,1,1]
+    , Xs [0,6,2,0]
+    , Xs [0,6,6]
+    , Xs [0,3,0,0,0]
+    , Xs [0,3,0,1]
+    , Xs [0,3,1,0]
+    , Xs [0,3,2]
+    , Xs [0,4,0,0]
+    , Xs [0,4,1]
+    , Xs [0,5,0]
+    , Xs [1,0,0,0,0,0,0,0]
+    , Xs [1,0,0,0,0,0,1]
+    , Xs [1,0,0,0,0,1,0]
+    , Xs [1,0,0,0,0,2]
+    , Xs [1,0,0,0,1,0,0]
+    , Xs [1,0,0,0,1,1]
+    , Xs [1,0,0,0,2,0]
+    , Xs [1,0,0,0,6]
+    , Xs [1,0,0,1,0,0,0]
+    , Xs [1,0,0,1,0,1]
+    , Xs [1,0,0,1,1,0]
+    , Xs [1,0,0,1,2]
+    , Xs [1,0,0,2,0,0]
+    , Xs [1,0,0,2,1]
+    , Xs [1,0,0,6,0]
+    , Xs [1,0,0,3]
+    , Xs [1,0,1,0,0,0,0]
+    , Xs [1,0,1,0,0,1]
+    , Xs [1,0,1,0,1,0]
+    , Xs [1,0,1,0,2]
+    , Xs [1,0,1,1,0,0]
+    , Xs [1,0,1,1,1]
+    , Xs [1,0,1,2,0]
+    , Xs [1,0,1,6]
+    , Xs [1,0,2,0,0,0]
+    , Xs [1,0,2,0,1]
+    , Xs [1,0,2,1,0]
+    , Xs [1,0,2,2]
+    , Xs [1,0,6,0,0]
+    , Xs [1,0,6,1]
+    , Xs [1,0,3,0]
+    , Xs [1,0,4]
+    , Xs [1,1,0,0,0,0,0]
+    , Xs [1,1,0,0,0,1]
+    , Xs [1,1,0,0,1,0]
+    , Xs [1,1,0,0,2]
+    , Xs [1,1,0,1,0,0]
+    , Xs [1,1,0,1,1]
+    , Xs [1,1,0,2,0]
+    , Xs [1,1,0,6]
+    , Xs [1,1,1,0,0,0]
+    , Xs [1,1,1,0,1]
+    , Xs [1,1,1,1,0]
+    , Xs [1,1,1,2]
+    , Xs [1,1,2,0,0]
+    , Xs [1,1,2,1]
+    , Xs [1,1,6,0]
+    , Xs [1,1,3]
+    , Xs [1,2,0,0,0,0]
+    , Xs [1,2,0,0,1]
+    , Xs [1,2,0,1,0]
+    , Xs [1,2,0,2]
+    , Xs [1,2,1,0,0]
+    , Xs [1,2,1,1]
+    , Xs [1,2,2,0]
+    , Xs [1,2,6]
+    , Xs [1,6,0,0,0]
+    , Xs [1,6,0,1]
+    , Xs [1,6,1,0]
+    , Xs [1,6,2]
+    , Xs [1,3,0,0]
+    , Xs [1,3,1]
+    , Xs [1,4,0]
+    , Xs [1,5]
+    , Xs [2,0,0,0,0,0,0]
+    , Xs [2,0,0,0,0,1]
+    , Xs [2,0,0,0,1,0]
+    , Xs [2,0,0,0,2]
+    , Xs [2,0,0,1,0,0]
+    , Xs [2,0,0,1,1]
+    , Xs [2,0,0,2,0]
+    , Xs [2,0,0,6]
+    , Xs [2,0,1,0,0,0]
+    , Xs [2,0,1,0,1]
+    , Xs [2,0,1,1,0]
+    , Xs [2,0,1,2]
+    , Xs [2,0,2,0,0]
+    , Xs [2,0,2,1]
+    , Xs [2,0,6,0]
+    , Xs [2,0,3]
+    , Xs [2,1,0,0,0,0]
+    , Xs [2,1,0,0,1]
+    , Xs [2,1,0,1,0]
+    , Xs [2,1,0,2]
+    , Xs [2,1,1,0,0]
+    , Xs [2,1,1,1]
+    , Xs [2,1,2,0]
+    , Xs [2,1,6]
+    , Xs [2,2,0,0,0]
+    , Xs [2,2,0,1]
+    , Xs [2,2,1,0]
+    , Xs [2,2,2]
+    , Xs [2,6,0,0]
+    , Xs [2,6,1]
+    , Xs [2,3,0]
+    , Xs [2,4]
+    , Xs [6,0,0,0,0,0]
+    , Xs [6,0,0,0,1]
+    , Xs [6,0,0,1,0]
+    , Xs [6,0,0,2]
+    , Xs [6,0,1,0,0]
+    , Xs [6,0,1,1]
+    , Xs [6,0,2,0]
+    , Xs [6,0,6]
+    , Xs [6,1,0,0,0]
+    , Xs [6,1,0,1]
+    , Xs [6,1,1,0]
+    , Xs [6,1,2]
+    , Xs [6,2,0,0]
+    , Xs [6,2,1]
+    , Xs [6,6,0]
+    , Xs [6,3]
+    , Xs [3,0,0,0,0]
+    , Xs [3,0,0,1]
+    , Xs [3,0,1,0]
+    , Xs [3,0,2]
+    , Xs [3,1,0,0]
+    , Xs [3,1,1]
+    , Xs [3,2,0]
+    , Xs [3,6]
+    , Xs [4,0,0,0]
+    , Xs [4,0,1]
+    , Xs [4,1,0]
+    , Xs [4,2]
+    , Xs [5,0,0]
+    , Xs [5,1]
+    ]
+  , [ Xs [0,0,0,0,0,0,0,0,0,0]
+    , Xs [0,0,0,0,0,0,0,0,1]
+    , Xs [0,0,0,0,0,0,0,1,0]
+    , Xs [0,0,0,0,0,0,0,2]
+    , Xs [0,0,0,0,0,0,1,0,0]
+    , Xs [0,0,0,0,0,0,1,1]
+    , Xs [0,0,0,0,0,0,2,0]
+    , Xs [0,0,0,0,0,0,6]
+    , Xs [0,0,0,0,0,1,0,0,0]
+    , Xs [0,0,0,0,0,1,0,1]
+    , Xs [0,0,0,0,0,1,1,0]
+    , Xs [0,0,0,0,0,1,2]
+    , Xs [0,0,0,0,0,2,0,0]
+    , Xs [0,0,0,0,0,2,1]
+    , Xs [0,0,0,0,0,6,0]
+    , Xs [0,0,0,0,0,3]
+    , Xs [0,0,0,0,1,0,0,0,0]
+    , Xs [0,0,0,0,1,0,0,1]
+    , Xs [0,0,0,0,1,0,1,0]
+    , Xs [0,0,0,0,1,0,2]
+    , Xs [0,0,0,0,1,1,0,0]
+    , Xs [0,0,0,0,1,1,1]
+    , Xs [0,0,0,0,1,2,0]
+    , Xs [0,0,0,0,1,6]
+    , Xs [0,0,0,0,2,0,0,0]
+    , Xs [0,0,0,0,2,0,1]
+    , Xs [0,0,0,0,2,1,0]
+    , Xs [0,0,0,0,2,2]
+    , Xs [0,0,0,0,6,0,0]
+    , Xs [0,0,0,0,6,1]
+    , Xs [0,0,0,0,3,0]
+    , Xs [0,0,0,0,4]
+    , Xs [0,0,0,1,0,0,0,0,0]
+    , Xs [0,0,0,1,0,0,0,1]
+    , Xs [0,0,0,1,0,0,1,0]
+    , Xs [0,0,0,1,0,0,2]
+    , Xs [0,0,0,1,0,1,0,0]
+    , Xs [0,0,0,1,0,1,1]
+    , Xs [0,0,0,1,0,2,0]
+    , Xs [0,0,0,1,0,6]
+    , Xs [0,0,0,1,1,0,0,0]
+    , Xs [0,0,0,1,1,0,1]
+    , Xs [0,0,0,1,1,1,0]
+    , Xs [0,0,0,1,1,2]
+    , Xs [0,0,0,1,2,0,0]
+    , Xs [0,0,0,1,2,1]
+    , Xs [0,0,0,1,6,0]
+    , Xs [0,0,0,1,3]
+    , Xs [0,0,0,2,0,0,0,0]
+    , Xs [0,0,0,2,0,0,1]
+    , Xs [0,0,0,2,0,1,0]
+    , Xs [0,0,0,2,0,2]
+    , Xs [0,0,0,2,1,0,0]
+    , Xs [0,0,0,2,1,1]
+    , Xs [0,0,0,2,2,0]
+    , Xs [0,0,0,2,6]
+    , Xs [0,0,0,6,0,0,0]
+    , Xs [0,0,0,6,0,1]
+    , Xs [0,0,0,6,1,0]
+    , Xs [0,0,0,6,2]
+    , Xs [0,0,0,3,0,0]
+    , Xs [0,0,0,3,1]
+    , Xs [0,0,0,4,0]
+    , Xs [0,0,0,5]
+    , Xs [0,0,1,0,0,0,0,0,0]
+    , Xs [0,0,1,0,0,0,0,1]
+    , Xs [0,0,1,0,0,0,1,0]
+    , Xs [0,0,1,0,0,0,2]
+    , Xs [0,0,1,0,0,1,0,0]
+    , Xs [0,0,1,0,0,1,1]
+    , Xs [0,0,1,0,0,2,0]
+    , Xs [0,0,1,0,0,6]
+    , Xs [0,0,1,0,1,0,0,0]
+    , Xs [0,0,1,0,1,0,1]
+    , Xs [0,0,1,0,1,1,0]
+    , Xs [0,0,1,0,1,2]
+    , Xs [0,0,1,0,2,0,0]
+    , Xs [0,0,1,0,2,1]
+    , Xs [0,0,1,0,6,0]
+    , Xs [0,0,1,0,3]
+    , Xs [0,0,1,1,0,0,0,0]
+    , Xs [0,0,1,1,0,0,1]
+    , Xs [0,0,1,1,0,1,0]
+    , Xs [0,0,1,1,0,2]
+    , Xs [0,0,1,1,1,0,0]
+    , Xs [0,0,1,1,1,1]
+    , Xs [0,0,1,1,2,0]
+    , Xs [0,0,1,1,6]
+    , Xs [0,0,1,2,0,0,0]
+    , Xs [0,0,1,2,0,1]
+    , Xs [0,0,1,2,1,0]
+    , Xs [0,0,1,2,2]
+    , Xs [0,0,1,6,0,0]
+    , Xs [0,0,1,6,1]
+    , Xs [0,0,1,3,0]
+    , Xs [0,0,1,4]
+    , Xs [0,0,2,0,0,0,0,0]
+    , Xs [0,0,2,0,0,0,1]
+    , Xs [0,0,2,0,0,1,0]
+    , Xs [0,0,2,0,0,2]
+    , Xs [0,0,2,0,1,0,0]
+    , Xs [0,0,2,0,1,1]
+    , Xs [0,0,2,0,2,0]
+    , Xs [0,0,2,0,6]
+    , Xs [0,0,2,1,0,0,0]
+    , Xs [0,0,2,1,0,1]
+    , Xs [0,0,2,1,1,0]
+    , Xs [0,0,2,1,2]
+    , Xs [0,0,2,2,0,0]
+    , Xs [0,0,2,2,1]
+    , Xs [0,0,2,6,0]
+    , Xs [0,0,2,3]
+    , Xs [0,0,6,0,0,0,0]
+    , Xs [0,0,6,0,0,1]
+    , Xs [0,0,6,0,1,0]
+    , Xs [0,0,6,0,2]
+    , Xs [0,0,6,1,0,0]
+    , Xs [0,0,6,1,1]
+    , Xs [0,0,6,2,0]
+    , Xs [0,0,6,6]
+    , Xs [0,0,3,0,0,0]
+    , Xs [0,0,3,0,1]
+    , Xs [0,0,3,1,0]
+    , Xs [0,0,3,2]
+    , Xs [0,0,4,0,0]
+    , Xs [0,0,4,1]
+    , Xs [0,0,5,0]
+    , Xs [0,1,0,0,0,0,0,0,0]
+    , Xs [0,1,0,0,0,0,0,1]
+    , Xs [0,1,0,0,0,0,1,0]
+    , Xs [0,1,0,0,0,0,2]
+    , Xs [0,1,0,0,0,1,0,0]
+    , Xs [0,1,0,0,0,1,1]
+    , Xs [0,1,0,0,0,2,0]
+    , Xs [0,1,0,0,0,6]
+    , Xs [0,1,0,0,1,0,0,0]
+    , Xs [0,1,0,0,1,0,1]
+    , Xs [0,1,0,0,1,1,0]
+    , Xs [0,1,0,0,1,2]
+    , Xs [0,1,0,0,2,0,0]
+    , Xs [0,1,0,0,2,1]
+    , Xs [0,1,0,0,6,0]
+    , Xs [0,1,0,0,3]
+    , Xs [0,1,0,1,0,0,0,0]
+    , Xs [0,1,0,1,0,0,1]
+    , Xs [0,1,0,1,0,1,0]
+    , Xs [0,1,0,1,0,2]
+    , Xs [0,1,0,1,1,0,0]
+    , Xs [0,1,0,1,1,1]
+    , Xs [0,1,0,1,2,0]
+    , Xs [0,1,0,1,6]
+    , Xs [0,1,0,2,0,0,0]
+    , Xs [0,1,0,2,0,1]
+    , Xs [0,1,0,2,1,0]
+    , Xs [0,1,0,2,2]
+    , Xs [0,1,0,6,0,0]
+    , Xs [0,1,0,6,1]
+    , Xs [0,1,0,3,0]
+    , Xs [0,1,0,4]
+    , Xs [0,1,1,0,0,0,0,0]
+    , Xs [0,1,1,0,0,0,1]
+    , Xs [0,1,1,0,0,1,0]
+    , Xs [0,1,1,0,0,2]
+    , Xs [0,1,1,0,1,0,0]
+    , Xs [0,1,1,0,1,1]
+    , Xs [0,1,1,0,2,0]
+    , Xs [0,1,1,0,6]
+    , Xs [0,1,1,1,0,0,0]
+    , Xs [0,1,1,1,0,1]
+    , Xs [0,1,1,1,1,0]
+    , Xs [0,1,1,1,2]
+    , Xs [0,1,1,2,0,0]
+    , Xs [0,1,1,2,1]
+    , Xs [0,1,1,6,0]
+    , Xs [0,1,1,3]
+    , Xs [0,1,2,0,0,0,0]
+    , Xs [0,1,2,0,0,1]
+    , Xs [0,1,2,0,1,0]
+    , Xs [0,1,2,0,2]
+    , Xs [0,1,2,1,0,0]
+    , Xs [0,1,2,1,1]
+    , Xs [0,1,2,2,0]
+    , Xs [0,1,2,6]
+    , Xs [0,1,6,0,0,0]
+    , Xs [0,1,6,0,1]
+    , Xs [0,1,6,1,0]
+    , Xs [0,1,6,2]
+    , Xs [0,1,3,0,0]
+    , Xs [0,1,3,1]
+    , Xs [0,1,4,0]
+    , Xs [0,1,5]
+    , Xs [0,2,0,0,0,0,0,0]
+    , Xs [0,2,0,0,0,0,1]
+    , Xs [0,2,0,0,0,1,0]
+    , Xs [0,2,0,0,0,2]
+    , Xs [0,2,0,0,1,0,0]
+    , Xs [0,2,0,0,1,1]
+    , Xs [0,2,0,0,2,0]
+    , Xs [0,2,0,0,6]
+    , Xs [0,2,0,1,0,0,0]
+    , Xs [0,2,0,1,0,1]
+    , Xs [0,2,0,1,1,0]
+    , Xs [0,2,0,1,2]
+    , Xs [0,2,0,2,0,0]
+    , Xs [0,2,0,2,1]
+    , Xs [0,2,0,6,0]
+    , Xs [0,2,0,3]
+    , Xs [0,2,1,0,0,0,0]
+    , Xs [0,2,1,0,0,1]
+    , Xs [0,2,1,0,1,0]
+    , Xs [0,2,1,0,2]
+    , Xs [0,2,1,1,0,0]
+    , Xs [0,2,1,1,1]
+    , Xs [0,2,1,2,0]
+    , Xs [0,2,1,6]
+    , Xs [0,2,2,0,0,0]
+    , Xs [0,2,2,0,1]
+    , Xs [0,2,2,1,0]
+    , Xs [0,2,2,2]
+    , Xs [0,2,6,0,0]
+    , Xs [0,2,6,1]
+    , Xs [0,2,3,0]
+    , Xs [0,2,4]
+    , Xs [0,6,0,0,0,0,0]
+    , Xs [0,6,0,0,0,1]
+    , Xs [0,6,0,0,1,0]
+    , Xs [0,6,0,0,2]
+    , Xs [0,6,0,1,0,0]
+    , Xs [0,6,0,1,1]
+    , Xs [0,6,0,2,0]
+    , Xs [0,6,0,6]
+    , Xs [0,6,1,0,0,0]
+    , Xs [0,6,1,0,1]
+    , Xs [0,6,1,1,0]
+    , Xs [0,6,1,2]
+    , Xs [0,6,2,0,0]
+    , Xs [0,6,2,1]
+    , Xs [0,6,6,0]
+    , Xs [0,6,3]
+    , Xs [0,3,0,0,0,0]
+    , Xs [0,3,0,0,1]
+    , Xs [0,3,0,1,0]
+    , Xs [0,3,0,2]
+    , Xs [0,3,1,0,0]
+    , Xs [0,3,1,1]
+    , Xs [0,3,2,0]
+    , Xs [0,3,6]
+    , Xs [0,4,0,0,0]
+    , Xs [0,4,0,1]
+    , Xs [0,4,1,0]
+    , Xs [0,4,2]
+    , Xs [0,5,0,0]
+    , Xs [0,5,1]
+    , Xs [1,0,0,0,0,0,0,0,0]
+    , Xs [1,0,0,0,0,0,0,1]
+    , Xs [1,0,0,0,0,0,1,0]
+    , Xs [1,0,0,0,0,0,2]
+    , Xs [1,0,0,0,0,1,0,0]
+    , Xs [1,0,0,0,0,1,1]
+    , Xs [1,0,0,0,0,2,0]
+    , Xs [1,0,0,0,0,6]
+    , Xs [1,0,0,0,1,0,0,0]
+    , Xs [1,0,0,0,1,0,1]
+    , Xs [1,0,0,0,1,1,0]
+    , Xs [1,0,0,0,1,2]
+    , Xs [1,0,0,0,2,0,0]
+    , Xs [1,0,0,0,2,1]
+    , Xs [1,0,0,0,6,0]
+    , Xs [1,0,0,0,3]
+    , Xs [1,0,0,1,0,0,0,0]
+    , Xs [1,0,0,1,0,0,1]
+    , Xs [1,0,0,1,0,1,0]
+    , Xs [1,0,0,1,0,2]
+    , Xs [1,0,0,1,1,0,0]
+    , Xs [1,0,0,1,1,1]
+    , Xs [1,0,0,1,2,0]
+    , Xs [1,0,0,1,6]
+    , Xs [1,0,0,2,0,0,0]
+    , Xs [1,0,0,2,0,1]
+    , Xs [1,0,0,2,1,0]
+    , Xs [1,0,0,2,2]
+    , Xs [1,0,0,6,0,0]
+    , Xs [1,0,0,6,1]
+    , Xs [1,0,0,3,0]
+    , Xs [1,0,0,4]
+    , Xs [1,0,1,0,0,0,0,0]
+    , Xs [1,0,1,0,0,0,1]
+    , Xs [1,0,1,0,0,1,0]
+    , Xs [1,0,1,0,0,2]
+    , Xs [1,0,1,0,1,0,0]
+    , Xs [1,0,1,0,1,1]
+    , Xs [1,0,1,0,2,0]
+    , Xs [1,0,1,0,6]
+    , Xs [1,0,1,1,0,0,0]
+    , Xs [1,0,1,1,0,1]
+    , Xs [1,0,1,1,1,0]
+    , Xs [1,0,1,1,2]
+    , Xs [1,0,1,2,0,0]
+    , Xs [1,0,1,2,1]
+    , Xs [1,0,1,6,0]
+    , Xs [1,0,1,3]
+    , Xs [1,0,2,0,0,0,0]
+    , Xs [1,0,2,0,0,1]
+    , Xs [1,0,2,0,1,0]
+    , Xs [1,0,2,0,2]
+    , Xs [1,0,2,1,0,0]
+    , Xs [1,0,2,1,1]
+    , Xs [1,0,2,2,0]
+    , Xs [1,0,2,6]
+    , Xs [1,0,6,0,0,0]
+    , Xs [1,0,6,0,1]
+    , Xs [1,0,6,1,0]
+    , Xs [1,0,6,2]
+    , Xs [1,0,3,0,0]
+    , Xs [1,0,3,1]
+    , Xs [1,0,4,0]
+    , Xs [1,0,5]
+    , Xs [1,1,0,0,0,0,0,0]
+    , Xs [1,1,0,0,0,0,1]
+    , Xs [1,1,0,0,0,1,0]
+    , Xs [1,1,0,0,0,2]
+    , Xs [1,1,0,0,1,0,0]
+    , Xs [1,1,0,0,1,1]
+    , Xs [1,1,0,0,2,0]
+    , Xs [1,1,0,0,6]
+    , Xs [1,1,0,1,0,0,0]
+    , Xs [1,1,0,1,0,1]
+    , Xs [1,1,0,1,1,0]
+    , Xs [1,1,0,1,2]
+    , Xs [1,1,0,2,0,0]
+    , Xs [1,1,0,2,1]
+    , Xs [1,1,0,6,0]
+    , Xs [1,1,0,3]
+    , Xs [1,1,1,0,0,0,0]
+    , Xs [1,1,1,0,0,1]
+    , Xs [1,1,1,0,1,0]
+    , Xs [1,1,1,0,2]
+    , Xs [1,1,1,1,0,0]
+    , Xs [1,1,1,1,1]
+    , Xs [1,1,1,2,0]
+    , Xs [1,1,1,6]
+    , Xs [1,1,2,0,0,0]
+    , Xs [1,1,2,0,1]
+    , Xs [1,1,2,1,0]
+    , Xs [1,1,2,2]
+    , Xs [1,1,6,0,0]
+    , Xs [1,1,6,1]
+    , Xs [1,1,3,0]
+    , Xs [1,1,4]
+    , Xs [1,2,0,0,0,0,0]
+    , Xs [1,2,0,0,0,1]
+    , Xs [1,2,0,0,1,0]
+    , Xs [1,2,0,0,2]
+    , Xs [1,2,0,1,0,0]
+    , Xs [1,2,0,1,1]
+    , Xs [1,2,0,2,0]
+    , Xs [1,2,0,6]
+    , Xs [1,2,1,0,0,0]
+    , Xs [1,2,1,0,1]
+    , Xs [1,2,1,1,0]
+    , Xs [1,2,1,2]
+    , Xs [1,2,2,0,0]
+    , Xs [1,2,2,1]
+    , Xs [1,2,6,0]
+    , Xs [1,2,3]
+    , Xs [1,6,0,0,0,0]
+    , Xs [1,6,0,0,1]
+    , Xs [1,6,0,1,0]
+    , Xs [1,6,0,2]
+    , Xs [1,6,1,0,0]
+    , Xs [1,6,1,1]
+    , Xs [1,6,2,0]
+    , Xs [1,6,6]
+    , Xs [1,3,0,0,0]
+    , Xs [1,3,0,1]
+    , Xs [1,3,1,0]
+    , Xs [1,3,2]
+    , Xs [1,4,0,0]
+    , Xs [1,4,1]
+    , Xs [1,5,0]
+    , Xs [2,0,0,0,0,0,0,0]
+    , Xs [2,0,0,0,0,0,1]
+    , Xs [2,0,0,0,0,1,0]
+    , Xs [2,0,0,0,0,2]
+    , Xs [2,0,0,0,1,0,0]
+    , Xs [2,0,0,0,1,1]
+    , Xs [2,0,0,0,2,0]
+    , Xs [2,0,0,0,6]
+    , Xs [2,0,0,1,0,0,0]
+    , Xs [2,0,0,1,0,1]
+    , Xs [2,0,0,1,1,0]
+    , Xs [2,0,0,1,2]
+    , Xs [2,0,0,2,0,0]
+    , Xs [2,0,0,2,1]
+    , Xs [2,0,0,6,0]
+    , Xs [2,0,0,3]
+    , Xs [2,0,1,0,0,0,0]
+    , Xs [2,0,1,0,0,1]
+    , Xs [2,0,1,0,1,0]
+    , Xs [2,0,1,0,2]
+    , Xs [2,0,1,1,0,0]
+    , Xs [2,0,1,1,1]
+    , Xs [2,0,1,2,0]
+    , Xs [2,0,1,6]
+    , Xs [2,0,2,0,0,0]
+    , Xs [2,0,2,0,1]
+    , Xs [2,0,2,1,0]
+    , Xs [2,0,2,2]
+    , Xs [2,0,6,0,0]
+    , Xs [2,0,6,1]
+    , Xs [2,0,3,0]
+    , Xs [2,0,4]
+    , Xs [2,1,0,0,0,0,0]
+    , Xs [2,1,0,0,0,1]
+    , Xs [2,1,0,0,1,0]
+    , Xs [2,1,0,0,2]
+    , Xs [2,1,0,1,0,0]
+    , Xs [2,1,0,1,1]
+    , Xs [2,1,0,2,0]
+    , Xs [2,1,0,6]
+    , Xs [2,1,1,0,0,0]
+    , Xs [2,1,1,0,1]
+    , Xs [2,1,1,1,0]
+    , Xs [2,1,1,2]
+    , Xs [2,1,2,0,0]
+    , Xs [2,1,2,1]
+    , Xs [2,1,6,0]
+    , Xs [2,1,3]
+    , Xs [2,2,0,0,0,0]
+    , Xs [2,2,0,0,1]
+    , Xs [2,2,0,1,0]
+    , Xs [2,2,0,2]
+    , Xs [2,2,1,0,0]
+    , Xs [2,2,1,1]
+    , Xs [2,2,2,0]
+    , Xs [2,2,6]
+    , Xs [2,6,0,0,0]
+    , Xs [2,6,0,1]
+    , Xs [2,6,1,0]
+    , Xs [2,6,2]
+    , Xs [2,3,0,0]
+    , Xs [2,3,1]
+    , Xs [2,4,0]
+    , Xs [2,5]
+    , Xs [6,0,0,0,0,0,0]
+    , Xs [6,0,0,0,0,1]
+    , Xs [6,0,0,0,1,0]
+    , Xs [6,0,0,0,2]
+    , Xs [6,0,0,1,0,0]
+    , Xs [6,0,0,1,1]
+    , Xs [6,0,0,2,0]
+    , Xs [6,0,0,6]
+    , Xs [6,0,1,0,0,0]
+    , Xs [6,0,1,0,1]
+    , Xs [6,0,1,1,0]
+    , Xs [6,0,1,2]
+    , Xs [6,0,2,0,0]
+    , Xs [6,0,2,1]
+    , Xs [6,0,6,0]
+    , Xs [6,0,3]
+    , Xs [6,1,0,0,0,0]
+    , Xs [6,1,0,0,1]
+    , Xs [6,1,0,1,0]
+    , Xs [6,1,0,2]
+    , Xs [6,1,1,0,0]
+    , Xs [6,1,1,1]
+    , Xs [6,1,2,0]
+    , Xs [6,1,6]
+    , Xs [6,2,0,0,0]
+    , Xs [6,2,0,1]
+    , Xs [6,2,1,0]
+    , Xs [6,2,2]
+    , Xs [6,6,0,0]
+    , Xs [6,6,1]
+    , Xs [6,3,0]
+    , Xs [6,4]
+    , Xs [3,0,0,0,0,0]
+    , Xs [3,0,0,0,1]
+    , Xs [3,0,0,1,0]
+    , Xs [3,0,0,2]
+    , Xs [3,0,1,0,0]
+    , Xs [3,0,1,1]
+    , Xs [3,0,2,0]
+    , Xs [3,0,6]
+    , Xs [3,1,0,0,0]
+    , Xs [3,1,0,1]
+    , Xs [3,1,1,0]
+    , Xs [3,1,2]
+    , Xs [3,2,0,0]
+    , Xs [3,2,1]
+    , Xs [3,6,0]
+    , Xs [3,3]
+    , Xs [4,0,0,0,0]
+    , Xs [4,0,0,1]
+    , Xs [4,0,1,0]
+    , Xs [4,0,2]
+    , Xs [4,1,0,0]
+    , Xs [4,1,1]
+    , Xs [4,2,0]
+    , Xs [4,6]
+    , Xs [5,0,0,0]
+    , Xs [5,0,1]
+    , Xs [5,1,0]
+    , Xs [5,2]
+    ]
+  , ...
+  ]
diff --git a/tests/diff/tiers-XsWord4.out b/tests/diff/tiers-XsWord4.out
new file mode 100644
--- /dev/null
+++ b/tests/diff/tiers-XsWord4.out
@@ -0,0 +1,1045 @@
+map length (tiers :: [[ Xs Word4 ]])  =  [0,1,1,2,4,8,16,32,64,128,256,512,...]
+
+length (list :: [ Xs Word4 ])  =  Infinity
+
+allUnique (list :: [ Xs Word4 ])  =  True
+
+ratioRepetitions (list :: [ Xs Word4 ])  =  0 % 1
+
+tiers :: [Xs Word4]  =
+  [ []
+  , [Xs []]
+  , [Xs [0]]
+  , [ Xs [0,0]
+    , Xs [1]
+    ]
+  , [ Xs [0,0,0]
+    , Xs [0,1]
+    , Xs [1,0]
+    , Xs [2]
+    ]
+  , [ Xs [0,0,0,0]
+    , Xs [0,0,1]
+    , Xs [0,1,0]
+    , Xs [0,2]
+    , Xs [1,0,0]
+    , Xs [1,1]
+    , Xs [2,0]
+    , Xs [15]
+    ]
+  , [ Xs [0,0,0,0,0]
+    , Xs [0,0,0,1]
+    , Xs [0,0,1,0]
+    , Xs [0,0,2]
+    , Xs [0,1,0,0]
+    , Xs [0,1,1]
+    , Xs [0,2,0]
+    , Xs [0,15]
+    , Xs [1,0,0,0]
+    , Xs [1,0,1]
+    , Xs [1,1,0]
+    , Xs [1,2]
+    , Xs [2,0,0]
+    , Xs [2,1]
+    , Xs [15,0]
+    , Xs [3]
+    ]
+  , [ Xs [0,0,0,0,0,0]
+    , Xs [0,0,0,0,1]
+    , Xs [0,0,0,1,0]
+    , Xs [0,0,0,2]
+    , Xs [0,0,1,0,0]
+    , Xs [0,0,1,1]
+    , Xs [0,0,2,0]
+    , Xs [0,0,15]
+    , Xs [0,1,0,0,0]
+    , Xs [0,1,0,1]
+    , Xs [0,1,1,0]
+    , Xs [0,1,2]
+    , Xs [0,2,0,0]
+    , Xs [0,2,1]
+    , Xs [0,15,0]
+    , Xs [0,3]
+    , Xs [1,0,0,0,0]
+    , Xs [1,0,0,1]
+    , Xs [1,0,1,0]
+    , Xs [1,0,2]
+    , Xs [1,1,0,0]
+    , Xs [1,1,1]
+    , Xs [1,2,0]
+    , Xs [1,15]
+    , Xs [2,0,0,0]
+    , Xs [2,0,1]
+    , Xs [2,1,0]
+    , Xs [2,2]
+    , Xs [15,0,0]
+    , Xs [15,1]
+    , Xs [3,0]
+    , Xs [4]
+    ]
+  , [ Xs [0,0,0,0,0,0,0]
+    , Xs [0,0,0,0,0,1]
+    , Xs [0,0,0,0,1,0]
+    , Xs [0,0,0,0,2]
+    , Xs [0,0,0,1,0,0]
+    , Xs [0,0,0,1,1]
+    , Xs [0,0,0,2,0]
+    , Xs [0,0,0,15]
+    , Xs [0,0,1,0,0,0]
+    , Xs [0,0,1,0,1]
+    , Xs [0,0,1,1,0]
+    , Xs [0,0,1,2]
+    , Xs [0,0,2,0,0]
+    , Xs [0,0,2,1]
+    , Xs [0,0,15,0]
+    , Xs [0,0,3]
+    , Xs [0,1,0,0,0,0]
+    , Xs [0,1,0,0,1]
+    , Xs [0,1,0,1,0]
+    , Xs [0,1,0,2]
+    , Xs [0,1,1,0,0]
+    , Xs [0,1,1,1]
+    , Xs [0,1,2,0]
+    , Xs [0,1,15]
+    , Xs [0,2,0,0,0]
+    , Xs [0,2,0,1]
+    , Xs [0,2,1,0]
+    , Xs [0,2,2]
+    , Xs [0,15,0,0]
+    , Xs [0,15,1]
+    , Xs [0,3,0]
+    , Xs [0,4]
+    , Xs [1,0,0,0,0,0]
+    , Xs [1,0,0,0,1]
+    , Xs [1,0,0,1,0]
+    , Xs [1,0,0,2]
+    , Xs [1,0,1,0,0]
+    , Xs [1,0,1,1]
+    , Xs [1,0,2,0]
+    , Xs [1,0,15]
+    , Xs [1,1,0,0,0]
+    , Xs [1,1,0,1]
+    , Xs [1,1,1,0]
+    , Xs [1,1,2]
+    , Xs [1,2,0,0]
+    , Xs [1,2,1]
+    , Xs [1,15,0]
+    , Xs [1,3]
+    , Xs [2,0,0,0,0]
+    , Xs [2,0,0,1]
+    , Xs [2,0,1,0]
+    , Xs [2,0,2]
+    , Xs [2,1,0,0]
+    , Xs [2,1,1]
+    , Xs [2,2,0]
+    , Xs [2,15]
+    , Xs [15,0,0,0]
+    , Xs [15,0,1]
+    , Xs [15,1,0]
+    , Xs [15,2]
+    , Xs [3,0,0]
+    , Xs [3,1]
+    , Xs [4,0]
+    , Xs [14]
+    ]
+  , [ Xs [0,0,0,0,0,0,0,0]
+    , Xs [0,0,0,0,0,0,1]
+    , Xs [0,0,0,0,0,1,0]
+    , Xs [0,0,0,0,0,2]
+    , Xs [0,0,0,0,1,0,0]
+    , Xs [0,0,0,0,1,1]
+    , Xs [0,0,0,0,2,0]
+    , Xs [0,0,0,0,15]
+    , Xs [0,0,0,1,0,0,0]
+    , Xs [0,0,0,1,0,1]
+    , Xs [0,0,0,1,1,0]
+    , Xs [0,0,0,1,2]
+    , Xs [0,0,0,2,0,0]
+    , Xs [0,0,0,2,1]
+    , Xs [0,0,0,15,0]
+    , Xs [0,0,0,3]
+    , Xs [0,0,1,0,0,0,0]
+    , Xs [0,0,1,0,0,1]
+    , Xs [0,0,1,0,1,0]
+    , Xs [0,0,1,0,2]
+    , Xs [0,0,1,1,0,0]
+    , Xs [0,0,1,1,1]
+    , Xs [0,0,1,2,0]
+    , Xs [0,0,1,15]
+    , Xs [0,0,2,0,0,0]
+    , Xs [0,0,2,0,1]
+    , Xs [0,0,2,1,0]
+    , Xs [0,0,2,2]
+    , Xs [0,0,15,0,0]
+    , Xs [0,0,15,1]
+    , Xs [0,0,3,0]
+    , Xs [0,0,4]
+    , Xs [0,1,0,0,0,0,0]
+    , Xs [0,1,0,0,0,1]
+    , Xs [0,1,0,0,1,0]
+    , Xs [0,1,0,0,2]
+    , Xs [0,1,0,1,0,0]
+    , Xs [0,1,0,1,1]
+    , Xs [0,1,0,2,0]
+    , Xs [0,1,0,15]
+    , Xs [0,1,1,0,0,0]
+    , Xs [0,1,1,0,1]
+    , Xs [0,1,1,1,0]
+    , Xs [0,1,1,2]
+    , Xs [0,1,2,0,0]
+    , Xs [0,1,2,1]
+    , Xs [0,1,15,0]
+    , Xs [0,1,3]
+    , Xs [0,2,0,0,0,0]
+    , Xs [0,2,0,0,1]
+    , Xs [0,2,0,1,0]
+    , Xs [0,2,0,2]
+    , Xs [0,2,1,0,0]
+    , Xs [0,2,1,1]
+    , Xs [0,2,2,0]
+    , Xs [0,2,15]
+    , Xs [0,15,0,0,0]
+    , Xs [0,15,0,1]
+    , Xs [0,15,1,0]
+    , Xs [0,15,2]
+    , Xs [0,3,0,0]
+    , Xs [0,3,1]
+    , Xs [0,4,0]
+    , Xs [0,14]
+    , Xs [1,0,0,0,0,0,0]
+    , Xs [1,0,0,0,0,1]
+    , Xs [1,0,0,0,1,0]
+    , Xs [1,0,0,0,2]
+    , Xs [1,0,0,1,0,0]
+    , Xs [1,0,0,1,1]
+    , Xs [1,0,0,2,0]
+    , Xs [1,0,0,15]
+    , Xs [1,0,1,0,0,0]
+    , Xs [1,0,1,0,1]
+    , Xs [1,0,1,1,0]
+    , Xs [1,0,1,2]
+    , Xs [1,0,2,0,0]
+    , Xs [1,0,2,1]
+    , Xs [1,0,15,0]
+    , Xs [1,0,3]
+    , Xs [1,1,0,0,0,0]
+    , Xs [1,1,0,0,1]
+    , Xs [1,1,0,1,0]
+    , Xs [1,1,0,2]
+    , Xs [1,1,1,0,0]
+    , Xs [1,1,1,1]
+    , Xs [1,1,2,0]
+    , Xs [1,1,15]
+    , Xs [1,2,0,0,0]
+    , Xs [1,2,0,1]
+    , Xs [1,2,1,0]
+    , Xs [1,2,2]
+    , Xs [1,15,0,0]
+    , Xs [1,15,1]
+    , Xs [1,3,0]
+    , Xs [1,4]
+    , Xs [2,0,0,0,0,0]
+    , Xs [2,0,0,0,1]
+    , Xs [2,0,0,1,0]
+    , Xs [2,0,0,2]
+    , Xs [2,0,1,0,0]
+    , Xs [2,0,1,1]
+    , Xs [2,0,2,0]
+    , Xs [2,0,15]
+    , Xs [2,1,0,0,0]
+    , Xs [2,1,0,1]
+    , Xs [2,1,1,0]
+    , Xs [2,1,2]
+    , Xs [2,2,0,0]
+    , Xs [2,2,1]
+    , Xs [2,15,0]
+    , Xs [2,3]
+    , Xs [15,0,0,0,0]
+    , Xs [15,0,0,1]
+    , Xs [15,0,1,0]
+    , Xs [15,0,2]
+    , Xs [15,1,0,0]
+    , Xs [15,1,1]
+    , Xs [15,2,0]
+    , Xs [15,15]
+    , Xs [3,0,0,0]
+    , Xs [3,0,1]
+    , Xs [3,1,0]
+    , Xs [3,2]
+    , Xs [4,0,0]
+    , Xs [4,1]
+    , Xs [14,0]
+    , Xs [5]
+    ]
+  , [ Xs [0,0,0,0,0,0,0,0,0]
+    , Xs [0,0,0,0,0,0,0,1]
+    , Xs [0,0,0,0,0,0,1,0]
+    , Xs [0,0,0,0,0,0,2]
+    , Xs [0,0,0,0,0,1,0,0]
+    , Xs [0,0,0,0,0,1,1]
+    , Xs [0,0,0,0,0,2,0]
+    , Xs [0,0,0,0,0,15]
+    , Xs [0,0,0,0,1,0,0,0]
+    , Xs [0,0,0,0,1,0,1]
+    , Xs [0,0,0,0,1,1,0]
+    , Xs [0,0,0,0,1,2]
+    , Xs [0,0,0,0,2,0,0]
+    , Xs [0,0,0,0,2,1]
+    , Xs [0,0,0,0,15,0]
+    , Xs [0,0,0,0,3]
+    , Xs [0,0,0,1,0,0,0,0]
+    , Xs [0,0,0,1,0,0,1]
+    , Xs [0,0,0,1,0,1,0]
+    , Xs [0,0,0,1,0,2]
+    , Xs [0,0,0,1,1,0,0]
+    , Xs [0,0,0,1,1,1]
+    , Xs [0,0,0,1,2,0]
+    , Xs [0,0,0,1,15]
+    , Xs [0,0,0,2,0,0,0]
+    , Xs [0,0,0,2,0,1]
+    , Xs [0,0,0,2,1,0]
+    , Xs [0,0,0,2,2]
+    , Xs [0,0,0,15,0,0]
+    , Xs [0,0,0,15,1]
+    , Xs [0,0,0,3,0]
+    , Xs [0,0,0,4]
+    , Xs [0,0,1,0,0,0,0,0]
+    , Xs [0,0,1,0,0,0,1]
+    , Xs [0,0,1,0,0,1,0]
+    , Xs [0,0,1,0,0,2]
+    , Xs [0,0,1,0,1,0,0]
+    , Xs [0,0,1,0,1,1]
+    , Xs [0,0,1,0,2,0]
+    , Xs [0,0,1,0,15]
+    , Xs [0,0,1,1,0,0,0]
+    , Xs [0,0,1,1,0,1]
+    , Xs [0,0,1,1,1,0]
+    , Xs [0,0,1,1,2]
+    , Xs [0,0,1,2,0,0]
+    , Xs [0,0,1,2,1]
+    , Xs [0,0,1,15,0]
+    , Xs [0,0,1,3]
+    , Xs [0,0,2,0,0,0,0]
+    , Xs [0,0,2,0,0,1]
+    , Xs [0,0,2,0,1,0]
+    , Xs [0,0,2,0,2]
+    , Xs [0,0,2,1,0,0]
+    , Xs [0,0,2,1,1]
+    , Xs [0,0,2,2,0]
+    , Xs [0,0,2,15]
+    , Xs [0,0,15,0,0,0]
+    , Xs [0,0,15,0,1]
+    , Xs [0,0,15,1,0]
+    , Xs [0,0,15,2]
+    , Xs [0,0,3,0,0]
+    , Xs [0,0,3,1]
+    , Xs [0,0,4,0]
+    , Xs [0,0,14]
+    , Xs [0,1,0,0,0,0,0,0]
+    , Xs [0,1,0,0,0,0,1]
+    , Xs [0,1,0,0,0,1,0]
+    , Xs [0,1,0,0,0,2]
+    , Xs [0,1,0,0,1,0,0]
+    , Xs [0,1,0,0,1,1]
+    , Xs [0,1,0,0,2,0]
+    , Xs [0,1,0,0,15]
+    , Xs [0,1,0,1,0,0,0]
+    , Xs [0,1,0,1,0,1]
+    , Xs [0,1,0,1,1,0]
+    , Xs [0,1,0,1,2]
+    , Xs [0,1,0,2,0,0]
+    , Xs [0,1,0,2,1]
+    , Xs [0,1,0,15,0]
+    , Xs [0,1,0,3]
+    , Xs [0,1,1,0,0,0,0]
+    , Xs [0,1,1,0,0,1]
+    , Xs [0,1,1,0,1,0]
+    , Xs [0,1,1,0,2]
+    , Xs [0,1,1,1,0,0]
+    , Xs [0,1,1,1,1]
+    , Xs [0,1,1,2,0]
+    , Xs [0,1,1,15]
+    , Xs [0,1,2,0,0,0]
+    , Xs [0,1,2,0,1]
+    , Xs [0,1,2,1,0]
+    , Xs [0,1,2,2]
+    , Xs [0,1,15,0,0]
+    , Xs [0,1,15,1]
+    , Xs [0,1,3,0]
+    , Xs [0,1,4]
+    , Xs [0,2,0,0,0,0,0]
+    , Xs [0,2,0,0,0,1]
+    , Xs [0,2,0,0,1,0]
+    , Xs [0,2,0,0,2]
+    , Xs [0,2,0,1,0,0]
+    , Xs [0,2,0,1,1]
+    , Xs [0,2,0,2,0]
+    , Xs [0,2,0,15]
+    , Xs [0,2,1,0,0,0]
+    , Xs [0,2,1,0,1]
+    , Xs [0,2,1,1,0]
+    , Xs [0,2,1,2]
+    , Xs [0,2,2,0,0]
+    , Xs [0,2,2,1]
+    , Xs [0,2,15,0]
+    , Xs [0,2,3]
+    , Xs [0,15,0,0,0,0]
+    , Xs [0,15,0,0,1]
+    , Xs [0,15,0,1,0]
+    , Xs [0,15,0,2]
+    , Xs [0,15,1,0,0]
+    , Xs [0,15,1,1]
+    , Xs [0,15,2,0]
+    , Xs [0,15,15]
+    , Xs [0,3,0,0,0]
+    , Xs [0,3,0,1]
+    , Xs [0,3,1,0]
+    , Xs [0,3,2]
+    , Xs [0,4,0,0]
+    , Xs [0,4,1]
+    , Xs [0,14,0]
+    , Xs [0,5]
+    , Xs [1,0,0,0,0,0,0,0]
+    , Xs [1,0,0,0,0,0,1]
+    , Xs [1,0,0,0,0,1,0]
+    , Xs [1,0,0,0,0,2]
+    , Xs [1,0,0,0,1,0,0]
+    , Xs [1,0,0,0,1,1]
+    , Xs [1,0,0,0,2,0]
+    , Xs [1,0,0,0,15]
+    , Xs [1,0,0,1,0,0,0]
+    , Xs [1,0,0,1,0,1]
+    , Xs [1,0,0,1,1,0]
+    , Xs [1,0,0,1,2]
+    , Xs [1,0,0,2,0,0]
+    , Xs [1,0,0,2,1]
+    , Xs [1,0,0,15,0]
+    , Xs [1,0,0,3]
+    , Xs [1,0,1,0,0,0,0]
+    , Xs [1,0,1,0,0,1]
+    , Xs [1,0,1,0,1,0]
+    , Xs [1,0,1,0,2]
+    , Xs [1,0,1,1,0,0]
+    , Xs [1,0,1,1,1]
+    , Xs [1,0,1,2,0]
+    , Xs [1,0,1,15]
+    , Xs [1,0,2,0,0,0]
+    , Xs [1,0,2,0,1]
+    , Xs [1,0,2,1,0]
+    , Xs [1,0,2,2]
+    , Xs [1,0,15,0,0]
+    , Xs [1,0,15,1]
+    , Xs [1,0,3,0]
+    , Xs [1,0,4]
+    , Xs [1,1,0,0,0,0,0]
+    , Xs [1,1,0,0,0,1]
+    , Xs [1,1,0,0,1,0]
+    , Xs [1,1,0,0,2]
+    , Xs [1,1,0,1,0,0]
+    , Xs [1,1,0,1,1]
+    , Xs [1,1,0,2,0]
+    , Xs [1,1,0,15]
+    , Xs [1,1,1,0,0,0]
+    , Xs [1,1,1,0,1]
+    , Xs [1,1,1,1,0]
+    , Xs [1,1,1,2]
+    , Xs [1,1,2,0,0]
+    , Xs [1,1,2,1]
+    , Xs [1,1,15,0]
+    , Xs [1,1,3]
+    , Xs [1,2,0,0,0,0]
+    , Xs [1,2,0,0,1]
+    , Xs [1,2,0,1,0]
+    , Xs [1,2,0,2]
+    , Xs [1,2,1,0,0]
+    , Xs [1,2,1,1]
+    , Xs [1,2,2,0]
+    , Xs [1,2,15]
+    , Xs [1,15,0,0,0]
+    , Xs [1,15,0,1]
+    , Xs [1,15,1,0]
+    , Xs [1,15,2]
+    , Xs [1,3,0,0]
+    , Xs [1,3,1]
+    , Xs [1,4,0]
+    , Xs [1,14]
+    , Xs [2,0,0,0,0,0,0]
+    , Xs [2,0,0,0,0,1]
+    , Xs [2,0,0,0,1,0]
+    , Xs [2,0,0,0,2]
+    , Xs [2,0,0,1,0,0]
+    , Xs [2,0,0,1,1]
+    , Xs [2,0,0,2,0]
+    , Xs [2,0,0,15]
+    , Xs [2,0,1,0,0,0]
+    , Xs [2,0,1,0,1]
+    , Xs [2,0,1,1,0]
+    , Xs [2,0,1,2]
+    , Xs [2,0,2,0,0]
+    , Xs [2,0,2,1]
+    , Xs [2,0,15,0]
+    , Xs [2,0,3]
+    , Xs [2,1,0,0,0,0]
+    , Xs [2,1,0,0,1]
+    , Xs [2,1,0,1,0]
+    , Xs [2,1,0,2]
+    , Xs [2,1,1,0,0]
+    , Xs [2,1,1,1]
+    , Xs [2,1,2,0]
+    , Xs [2,1,15]
+    , Xs [2,2,0,0,0]
+    , Xs [2,2,0,1]
+    , Xs [2,2,1,0]
+    , Xs [2,2,2]
+    , Xs [2,15,0,0]
+    , Xs [2,15,1]
+    , Xs [2,3,0]
+    , Xs [2,4]
+    , Xs [15,0,0,0,0,0]
+    , Xs [15,0,0,0,1]
+    , Xs [15,0,0,1,0]
+    , Xs [15,0,0,2]
+    , Xs [15,0,1,0,0]
+    , Xs [15,0,1,1]
+    , Xs [15,0,2,0]
+    , Xs [15,0,15]
+    , Xs [15,1,0,0,0]
+    , Xs [15,1,0,1]
+    , Xs [15,1,1,0]
+    , Xs [15,1,2]
+    , Xs [15,2,0,0]
+    , Xs [15,2,1]
+    , Xs [15,15,0]
+    , Xs [15,3]
+    , Xs [3,0,0,0,0]
+    , Xs [3,0,0,1]
+    , Xs [3,0,1,0]
+    , Xs [3,0,2]
+    , Xs [3,1,0,0]
+    , Xs [3,1,1]
+    , Xs [3,2,0]
+    , Xs [3,15]
+    , Xs [4,0,0,0]
+    , Xs [4,0,1]
+    , Xs [4,1,0]
+    , Xs [4,2]
+    , Xs [14,0,0]
+    , Xs [14,1]
+    , Xs [5,0]
+    , Xs [6]
+    ]
+  , [ Xs [0,0,0,0,0,0,0,0,0,0]
+    , Xs [0,0,0,0,0,0,0,0,1]
+    , Xs [0,0,0,0,0,0,0,1,0]
+    , Xs [0,0,0,0,0,0,0,2]
+    , Xs [0,0,0,0,0,0,1,0,0]
+    , Xs [0,0,0,0,0,0,1,1]
+    , Xs [0,0,0,0,0,0,2,0]
+    , Xs [0,0,0,0,0,0,15]
+    , Xs [0,0,0,0,0,1,0,0,0]
+    , Xs [0,0,0,0,0,1,0,1]
+    , Xs [0,0,0,0,0,1,1,0]
+    , Xs [0,0,0,0,0,1,2]
+    , Xs [0,0,0,0,0,2,0,0]
+    , Xs [0,0,0,0,0,2,1]
+    , Xs [0,0,0,0,0,15,0]
+    , Xs [0,0,0,0,0,3]
+    , Xs [0,0,0,0,1,0,0,0,0]
+    , Xs [0,0,0,0,1,0,0,1]
+    , Xs [0,0,0,0,1,0,1,0]
+    , Xs [0,0,0,0,1,0,2]
+    , Xs [0,0,0,0,1,1,0,0]
+    , Xs [0,0,0,0,1,1,1]
+    , Xs [0,0,0,0,1,2,0]
+    , Xs [0,0,0,0,1,15]
+    , Xs [0,0,0,0,2,0,0,0]
+    , Xs [0,0,0,0,2,0,1]
+    , Xs [0,0,0,0,2,1,0]
+    , Xs [0,0,0,0,2,2]
+    , Xs [0,0,0,0,15,0,0]
+    , Xs [0,0,0,0,15,1]
+    , Xs [0,0,0,0,3,0]
+    , Xs [0,0,0,0,4]
+    , Xs [0,0,0,1,0,0,0,0,0]
+    , Xs [0,0,0,1,0,0,0,1]
+    , Xs [0,0,0,1,0,0,1,0]
+    , Xs [0,0,0,1,0,0,2]
+    , Xs [0,0,0,1,0,1,0,0]
+    , Xs [0,0,0,1,0,1,1]
+    , Xs [0,0,0,1,0,2,0]
+    , Xs [0,0,0,1,0,15]
+    , Xs [0,0,0,1,1,0,0,0]
+    , Xs [0,0,0,1,1,0,1]
+    , Xs [0,0,0,1,1,1,0]
+    , Xs [0,0,0,1,1,2]
+    , Xs [0,0,0,1,2,0,0]
+    , Xs [0,0,0,1,2,1]
+    , Xs [0,0,0,1,15,0]
+    , Xs [0,0,0,1,3]
+    , Xs [0,0,0,2,0,0,0,0]
+    , Xs [0,0,0,2,0,0,1]
+    , Xs [0,0,0,2,0,1,0]
+    , Xs [0,0,0,2,0,2]
+    , Xs [0,0,0,2,1,0,0]
+    , Xs [0,0,0,2,1,1]
+    , Xs [0,0,0,2,2,0]
+    , Xs [0,0,0,2,15]
+    , Xs [0,0,0,15,0,0,0]
+    , Xs [0,0,0,15,0,1]
+    , Xs [0,0,0,15,1,0]
+    , Xs [0,0,0,15,2]
+    , Xs [0,0,0,3,0,0]
+    , Xs [0,0,0,3,1]
+    , Xs [0,0,0,4,0]
+    , Xs [0,0,0,14]
+    , Xs [0,0,1,0,0,0,0,0,0]
+    , Xs [0,0,1,0,0,0,0,1]
+    , Xs [0,0,1,0,0,0,1,0]
+    , Xs [0,0,1,0,0,0,2]
+    , Xs [0,0,1,0,0,1,0,0]
+    , Xs [0,0,1,0,0,1,1]
+    , Xs [0,0,1,0,0,2,0]
+    , Xs [0,0,1,0,0,15]
+    , Xs [0,0,1,0,1,0,0,0]
+    , Xs [0,0,1,0,1,0,1]
+    , Xs [0,0,1,0,1,1,0]
+    , Xs [0,0,1,0,1,2]
+    , Xs [0,0,1,0,2,0,0]
+    , Xs [0,0,1,0,2,1]
+    , Xs [0,0,1,0,15,0]
+    , Xs [0,0,1,0,3]
+    , Xs [0,0,1,1,0,0,0,0]
+    , Xs [0,0,1,1,0,0,1]
+    , Xs [0,0,1,1,0,1,0]
+    , Xs [0,0,1,1,0,2]
+    , Xs [0,0,1,1,1,0,0]
+    , Xs [0,0,1,1,1,1]
+    , Xs [0,0,1,1,2,0]
+    , Xs [0,0,1,1,15]
+    , Xs [0,0,1,2,0,0,0]
+    , Xs [0,0,1,2,0,1]
+    , Xs [0,0,1,2,1,0]
+    , Xs [0,0,1,2,2]
+    , Xs [0,0,1,15,0,0]
+    , Xs [0,0,1,15,1]
+    , Xs [0,0,1,3,0]
+    , Xs [0,0,1,4]
+    , Xs [0,0,2,0,0,0,0,0]
+    , Xs [0,0,2,0,0,0,1]
+    , Xs [0,0,2,0,0,1,0]
+    , Xs [0,0,2,0,0,2]
+    , Xs [0,0,2,0,1,0,0]
+    , Xs [0,0,2,0,1,1]
+    , Xs [0,0,2,0,2,0]
+    , Xs [0,0,2,0,15]
+    , Xs [0,0,2,1,0,0,0]
+    , Xs [0,0,2,1,0,1]
+    , Xs [0,0,2,1,1,0]
+    , Xs [0,0,2,1,2]
+    , Xs [0,0,2,2,0,0]
+    , Xs [0,0,2,2,1]
+    , Xs [0,0,2,15,0]
+    , Xs [0,0,2,3]
+    , Xs [0,0,15,0,0,0,0]
+    , Xs [0,0,15,0,0,1]
+    , Xs [0,0,15,0,1,0]
+    , Xs [0,0,15,0,2]
+    , Xs [0,0,15,1,0,0]
+    , Xs [0,0,15,1,1]
+    , Xs [0,0,15,2,0]
+    , Xs [0,0,15,15]
+    , Xs [0,0,3,0,0,0]
+    , Xs [0,0,3,0,1]
+    , Xs [0,0,3,1,0]
+    , Xs [0,0,3,2]
+    , Xs [0,0,4,0,0]
+    , Xs [0,0,4,1]
+    , Xs [0,0,14,0]
+    , Xs [0,0,5]
+    , Xs [0,1,0,0,0,0,0,0,0]
+    , Xs [0,1,0,0,0,0,0,1]
+    , Xs [0,1,0,0,0,0,1,0]
+    , Xs [0,1,0,0,0,0,2]
+    , Xs [0,1,0,0,0,1,0,0]
+    , Xs [0,1,0,0,0,1,1]
+    , Xs [0,1,0,0,0,2,0]
+    , Xs [0,1,0,0,0,15]
+    , Xs [0,1,0,0,1,0,0,0]
+    , Xs [0,1,0,0,1,0,1]
+    , Xs [0,1,0,0,1,1,0]
+    , Xs [0,1,0,0,1,2]
+    , Xs [0,1,0,0,2,0,0]
+    , Xs [0,1,0,0,2,1]
+    , Xs [0,1,0,0,15,0]
+    , Xs [0,1,0,0,3]
+    , Xs [0,1,0,1,0,0,0,0]
+    , Xs [0,1,0,1,0,0,1]
+    , Xs [0,1,0,1,0,1,0]
+    , Xs [0,1,0,1,0,2]
+    , Xs [0,1,0,1,1,0,0]
+    , Xs [0,1,0,1,1,1]
+    , Xs [0,1,0,1,2,0]
+    , Xs [0,1,0,1,15]
+    , Xs [0,1,0,2,0,0,0]
+    , Xs [0,1,0,2,0,1]
+    , Xs [0,1,0,2,1,0]
+    , Xs [0,1,0,2,2]
+    , Xs [0,1,0,15,0,0]
+    , Xs [0,1,0,15,1]
+    , Xs [0,1,0,3,0]
+    , Xs [0,1,0,4]
+    , Xs [0,1,1,0,0,0,0,0]
+    , Xs [0,1,1,0,0,0,1]
+    , Xs [0,1,1,0,0,1,0]
+    , Xs [0,1,1,0,0,2]
+    , Xs [0,1,1,0,1,0,0]
+    , Xs [0,1,1,0,1,1]
+    , Xs [0,1,1,0,2,0]
+    , Xs [0,1,1,0,15]
+    , Xs [0,1,1,1,0,0,0]
+    , Xs [0,1,1,1,0,1]
+    , Xs [0,1,1,1,1,0]
+    , Xs [0,1,1,1,2]
+    , Xs [0,1,1,2,0,0]
+    , Xs [0,1,1,2,1]
+    , Xs [0,1,1,15,0]
+    , Xs [0,1,1,3]
+    , Xs [0,1,2,0,0,0,0]
+    , Xs [0,1,2,0,0,1]
+    , Xs [0,1,2,0,1,0]
+    , Xs [0,1,2,0,2]
+    , Xs [0,1,2,1,0,0]
+    , Xs [0,1,2,1,1]
+    , Xs [0,1,2,2,0]
+    , Xs [0,1,2,15]
+    , Xs [0,1,15,0,0,0]
+    , Xs [0,1,15,0,1]
+    , Xs [0,1,15,1,0]
+    , Xs [0,1,15,2]
+    , Xs [0,1,3,0,0]
+    , Xs [0,1,3,1]
+    , Xs [0,1,4,0]
+    , Xs [0,1,14]
+    , Xs [0,2,0,0,0,0,0,0]
+    , Xs [0,2,0,0,0,0,1]
+    , Xs [0,2,0,0,0,1,0]
+    , Xs [0,2,0,0,0,2]
+    , Xs [0,2,0,0,1,0,0]
+    , Xs [0,2,0,0,1,1]
+    , Xs [0,2,0,0,2,0]
+    , Xs [0,2,0,0,15]
+    , Xs [0,2,0,1,0,0,0]
+    , Xs [0,2,0,1,0,1]
+    , Xs [0,2,0,1,1,0]
+    , Xs [0,2,0,1,2]
+    , Xs [0,2,0,2,0,0]
+    , Xs [0,2,0,2,1]
+    , Xs [0,2,0,15,0]
+    , Xs [0,2,0,3]
+    , Xs [0,2,1,0,0,0,0]
+    , Xs [0,2,1,0,0,1]
+    , Xs [0,2,1,0,1,0]
+    , Xs [0,2,1,0,2]
+    , Xs [0,2,1,1,0,0]
+    , Xs [0,2,1,1,1]
+    , Xs [0,2,1,2,0]
+    , Xs [0,2,1,15]
+    , Xs [0,2,2,0,0,0]
+    , Xs [0,2,2,0,1]
+    , Xs [0,2,2,1,0]
+    , Xs [0,2,2,2]
+    , Xs [0,2,15,0,0]
+    , Xs [0,2,15,1]
+    , Xs [0,2,3,0]
+    , Xs [0,2,4]
+    , Xs [0,15,0,0,0,0,0]
+    , Xs [0,15,0,0,0,1]
+    , Xs [0,15,0,0,1,0]
+    , Xs [0,15,0,0,2]
+    , Xs [0,15,0,1,0,0]
+    , Xs [0,15,0,1,1]
+    , Xs [0,15,0,2,0]
+    , Xs [0,15,0,15]
+    , Xs [0,15,1,0,0,0]
+    , Xs [0,15,1,0,1]
+    , Xs [0,15,1,1,0]
+    , Xs [0,15,1,2]
+    , Xs [0,15,2,0,0]
+    , Xs [0,15,2,1]
+    , Xs [0,15,15,0]
+    , Xs [0,15,3]
+    , Xs [0,3,0,0,0,0]
+    , Xs [0,3,0,0,1]
+    , Xs [0,3,0,1,0]
+    , Xs [0,3,0,2]
+    , Xs [0,3,1,0,0]
+    , Xs [0,3,1,1]
+    , Xs [0,3,2,0]
+    , Xs [0,3,15]
+    , Xs [0,4,0,0,0]
+    , Xs [0,4,0,1]
+    , Xs [0,4,1,0]
+    , Xs [0,4,2]
+    , Xs [0,14,0,0]
+    , Xs [0,14,1]
+    , Xs [0,5,0]
+    , Xs [0,6]
+    , Xs [1,0,0,0,0,0,0,0,0]
+    , Xs [1,0,0,0,0,0,0,1]
+    , Xs [1,0,0,0,0,0,1,0]
+    , Xs [1,0,0,0,0,0,2]
+    , Xs [1,0,0,0,0,1,0,0]
+    , Xs [1,0,0,0,0,1,1]
+    , Xs [1,0,0,0,0,2,0]
+    , Xs [1,0,0,0,0,15]
+    , Xs [1,0,0,0,1,0,0,0]
+    , Xs [1,0,0,0,1,0,1]
+    , Xs [1,0,0,0,1,1,0]
+    , Xs [1,0,0,0,1,2]
+    , Xs [1,0,0,0,2,0,0]
+    , Xs [1,0,0,0,2,1]
+    , Xs [1,0,0,0,15,0]
+    , Xs [1,0,0,0,3]
+    , Xs [1,0,0,1,0,0,0,0]
+    , Xs [1,0,0,1,0,0,1]
+    , Xs [1,0,0,1,0,1,0]
+    , Xs [1,0,0,1,0,2]
+    , Xs [1,0,0,1,1,0,0]
+    , Xs [1,0,0,1,1,1]
+    , Xs [1,0,0,1,2,0]
+    , Xs [1,0,0,1,15]
+    , Xs [1,0,0,2,0,0,0]
+    , Xs [1,0,0,2,0,1]
+    , Xs [1,0,0,2,1,0]
+    , Xs [1,0,0,2,2]
+    , Xs [1,0,0,15,0,0]
+    , Xs [1,0,0,15,1]
+    , Xs [1,0,0,3,0]
+    , Xs [1,0,0,4]
+    , Xs [1,0,1,0,0,0,0,0]
+    , Xs [1,0,1,0,0,0,1]
+    , Xs [1,0,1,0,0,1,0]
+    , Xs [1,0,1,0,0,2]
+    , Xs [1,0,1,0,1,0,0]
+    , Xs [1,0,1,0,1,1]
+    , Xs [1,0,1,0,2,0]
+    , Xs [1,0,1,0,15]
+    , Xs [1,0,1,1,0,0,0]
+    , Xs [1,0,1,1,0,1]
+    , Xs [1,0,1,1,1,0]
+    , Xs [1,0,1,1,2]
+    , Xs [1,0,1,2,0,0]
+    , Xs [1,0,1,2,1]
+    , Xs [1,0,1,15,0]
+    , Xs [1,0,1,3]
+    , Xs [1,0,2,0,0,0,0]
+    , Xs [1,0,2,0,0,1]
+    , Xs [1,0,2,0,1,0]
+    , Xs [1,0,2,0,2]
+    , Xs [1,0,2,1,0,0]
+    , Xs [1,0,2,1,1]
+    , Xs [1,0,2,2,0]
+    , Xs [1,0,2,15]
+    , Xs [1,0,15,0,0,0]
+    , Xs [1,0,15,0,1]
+    , Xs [1,0,15,1,0]
+    , Xs [1,0,15,2]
+    , Xs [1,0,3,0,0]
+    , Xs [1,0,3,1]
+    , Xs [1,0,4,0]
+    , Xs [1,0,14]
+    , Xs [1,1,0,0,0,0,0,0]
+    , Xs [1,1,0,0,0,0,1]
+    , Xs [1,1,0,0,0,1,0]
+    , Xs [1,1,0,0,0,2]
+    , Xs [1,1,0,0,1,0,0]
+    , Xs [1,1,0,0,1,1]
+    , Xs [1,1,0,0,2,0]
+    , Xs [1,1,0,0,15]
+    , Xs [1,1,0,1,0,0,0]
+    , Xs [1,1,0,1,0,1]
+    , Xs [1,1,0,1,1,0]
+    , Xs [1,1,0,1,2]
+    , Xs [1,1,0,2,0,0]
+    , Xs [1,1,0,2,1]
+    , Xs [1,1,0,15,0]
+    , Xs [1,1,0,3]
+    , Xs [1,1,1,0,0,0,0]
+    , Xs [1,1,1,0,0,1]
+    , Xs [1,1,1,0,1,0]
+    , Xs [1,1,1,0,2]
+    , Xs [1,1,1,1,0,0]
+    , Xs [1,1,1,1,1]
+    , Xs [1,1,1,2,0]
+    , Xs [1,1,1,15]
+    , Xs [1,1,2,0,0,0]
+    , Xs [1,1,2,0,1]
+    , Xs [1,1,2,1,0]
+    , Xs [1,1,2,2]
+    , Xs [1,1,15,0,0]
+    , Xs [1,1,15,1]
+    , Xs [1,1,3,0]
+    , Xs [1,1,4]
+    , Xs [1,2,0,0,0,0,0]
+    , Xs [1,2,0,0,0,1]
+    , Xs [1,2,0,0,1,0]
+    , Xs [1,2,0,0,2]
+    , Xs [1,2,0,1,0,0]
+    , Xs [1,2,0,1,1]
+    , Xs [1,2,0,2,0]
+    , Xs [1,2,0,15]
+    , Xs [1,2,1,0,0,0]
+    , Xs [1,2,1,0,1]
+    , Xs [1,2,1,1,0]
+    , Xs [1,2,1,2]
+    , Xs [1,2,2,0,0]
+    , Xs [1,2,2,1]
+    , Xs [1,2,15,0]
+    , Xs [1,2,3]
+    , Xs [1,15,0,0,0,0]
+    , Xs [1,15,0,0,1]
+    , Xs [1,15,0,1,0]
+    , Xs [1,15,0,2]
+    , Xs [1,15,1,0,0]
+    , Xs [1,15,1,1]
+    , Xs [1,15,2,0]
+    , Xs [1,15,15]
+    , Xs [1,3,0,0,0]
+    , Xs [1,3,0,1]
+    , Xs [1,3,1,0]
+    , Xs [1,3,2]
+    , Xs [1,4,0,0]
+    , Xs [1,4,1]
+    , Xs [1,14,0]
+    , Xs [1,5]
+    , Xs [2,0,0,0,0,0,0,0]
+    , Xs [2,0,0,0,0,0,1]
+    , Xs [2,0,0,0,0,1,0]
+    , Xs [2,0,0,0,0,2]
+    , Xs [2,0,0,0,1,0,0]
+    , Xs [2,0,0,0,1,1]
+    , Xs [2,0,0,0,2,0]
+    , Xs [2,0,0,0,15]
+    , Xs [2,0,0,1,0,0,0]
+    , Xs [2,0,0,1,0,1]
+    , Xs [2,0,0,1,1,0]
+    , Xs [2,0,0,1,2]
+    , Xs [2,0,0,2,0,0]
+    , Xs [2,0,0,2,1]
+    , Xs [2,0,0,15,0]
+    , Xs [2,0,0,3]
+    , Xs [2,0,1,0,0,0,0]
+    , Xs [2,0,1,0,0,1]
+    , Xs [2,0,1,0,1,0]
+    , Xs [2,0,1,0,2]
+    , Xs [2,0,1,1,0,0]
+    , Xs [2,0,1,1,1]
+    , Xs [2,0,1,2,0]
+    , Xs [2,0,1,15]
+    , Xs [2,0,2,0,0,0]
+    , Xs [2,0,2,0,1]
+    , Xs [2,0,2,1,0]
+    , Xs [2,0,2,2]
+    , Xs [2,0,15,0,0]
+    , Xs [2,0,15,1]
+    , Xs [2,0,3,0]
+    , Xs [2,0,4]
+    , Xs [2,1,0,0,0,0,0]
+    , Xs [2,1,0,0,0,1]
+    , Xs [2,1,0,0,1,0]
+    , Xs [2,1,0,0,2]
+    , Xs [2,1,0,1,0,0]
+    , Xs [2,1,0,1,1]
+    , Xs [2,1,0,2,0]
+    , Xs [2,1,0,15]
+    , Xs [2,1,1,0,0,0]
+    , Xs [2,1,1,0,1]
+    , Xs [2,1,1,1,0]
+    , Xs [2,1,1,2]
+    , Xs [2,1,2,0,0]
+    , Xs [2,1,2,1]
+    , Xs [2,1,15,0]
+    , Xs [2,1,3]
+    , Xs [2,2,0,0,0,0]
+    , Xs [2,2,0,0,1]
+    , Xs [2,2,0,1,0]
+    , Xs [2,2,0,2]
+    , Xs [2,2,1,0,0]
+    , Xs [2,2,1,1]
+    , Xs [2,2,2,0]
+    , Xs [2,2,15]
+    , Xs [2,15,0,0,0]
+    , Xs [2,15,0,1]
+    , Xs [2,15,1,0]
+    , Xs [2,15,2]
+    , Xs [2,3,0,0]
+    , Xs [2,3,1]
+    , Xs [2,4,0]
+    , Xs [2,14]
+    , Xs [15,0,0,0,0,0,0]
+    , Xs [15,0,0,0,0,1]
+    , Xs [15,0,0,0,1,0]
+    , Xs [15,0,0,0,2]
+    , Xs [15,0,0,1,0,0]
+    , Xs [15,0,0,1,1]
+    , Xs [15,0,0,2,0]
+    , Xs [15,0,0,15]
+    , Xs [15,0,1,0,0,0]
+    , Xs [15,0,1,0,1]
+    , Xs [15,0,1,1,0]
+    , Xs [15,0,1,2]
+    , Xs [15,0,2,0,0]
+    , Xs [15,0,2,1]
+    , Xs [15,0,15,0]
+    , Xs [15,0,3]
+    , Xs [15,1,0,0,0,0]
+    , Xs [15,1,0,0,1]
+    , Xs [15,1,0,1,0]
+    , Xs [15,1,0,2]
+    , Xs [15,1,1,0,0]
+    , Xs [15,1,1,1]
+    , Xs [15,1,2,0]
+    , Xs [15,1,15]
+    , Xs [15,2,0,0,0]
+    , Xs [15,2,0,1]
+    , Xs [15,2,1,0]
+    , Xs [15,2,2]
+    , Xs [15,15,0,0]
+    , Xs [15,15,1]
+    , Xs [15,3,0]
+    , Xs [15,4]
+    , Xs [3,0,0,0,0,0]
+    , Xs [3,0,0,0,1]
+    , Xs [3,0,0,1,0]
+    , Xs [3,0,0,2]
+    , Xs [3,0,1,0,0]
+    , Xs [3,0,1,1]
+    , Xs [3,0,2,0]
+    , Xs [3,0,15]
+    , Xs [3,1,0,0,0]
+    , Xs [3,1,0,1]
+    , Xs [3,1,1,0]
+    , Xs [3,1,2]
+    , Xs [3,2,0,0]
+    , Xs [3,2,1]
+    , Xs [3,15,0]
+    , Xs [3,3]
+    , Xs [4,0,0,0,0]
+    , Xs [4,0,0,1]
+    , Xs [4,0,1,0]
+    , Xs [4,0,2]
+    , Xs [4,1,0,0]
+    , Xs [4,1,1]
+    , Xs [4,2,0]
+    , Xs [4,15]
+    , Xs [14,0,0,0]
+    , Xs [14,0,1]
+    , Xs [14,1,0]
+    , Xs [14,2]
+    , Xs [5,0,0]
+    , Xs [5,1]
+    , Xs [6,0]
+    , Xs [13]
+    ]
+  , ...
+  ]
diff --git a/tests/test-operators.hs b/tests/test-operators.hs
--- a/tests/test-operators.hs
+++ b/tests/test-operators.hs
@@ -109,6 +109,8 @@
   , holds n $ okEqOrd -:> float  -- fails if NaN is included in enumeration
   , holds n $ okEqOrd -:> double -- fails if NaN is included in enumeration
   , holds n $ okEqOrd -:> rational
+  , holds n $ okEqOrd -:> nat
+  , holds n $ okEqOrd -:> natural
 
   , holds n $ okNum -:> int
   , holds n $ okNum -:> integer
@@ -116,6 +118,8 @@
 --, holds n $ \x y z -> none isInfinite [x,y,z] ==> okNum x y (z -: float)
 --, holds n $ \x y z -> none isInfinite [x,y,z] ==> okNum x y (z -: double)
   , holds n $ okNum -:> rational
+  , holds n $ okNum -:> nat
+  , holds n $ okNum -:> natural
 
   , holds n $ idempotent id   -:> int
   , holds n $ idempotent abs  -:> int
diff --git a/tests/test-types.hs b/tests/test-types.hs
--- a/tests/test-types.hs
+++ b/tests/test-types.hs
@@ -26,7 +26,6 @@
 tests =
   [ True
 
-
   , list `permutation` [minBound..maxBound :: Int1]
   , list `permutation` [minBound..maxBound :: Int2]
   , list `permutation` [minBound..maxBound :: Int3]
@@ -45,49 +44,49 @@
   , list `permutation` [minBound..maxBound :: Nat6]
   , list `permutation` [minBound..maxBound :: Nat7]
 
-  , map (unX) list `permutation` [minBound..maxBound :: Int8]
-  , map (unX) list `permutation` [minBound..maxBound :: Int4]
-  , map (unX) list `permutation` [minBound..maxBound :: Int3]
+  , map unX list `permutation` [minBound..maxBound :: Int8]
+  , map unX list `permutation` [minBound..maxBound :: Int4]
+  , map unX list `permutation` [minBound..maxBound :: Int3]
 -- TODO: make the following commented tests pass:
---, map (unX) list `permutation` [minBound..maxBound :: Int2]
---, map (unX) list `permutation` [minBound..maxBound :: Int1]
-  , map (unX) list `permutation` [minBound..maxBound :: Word8]
-  , map (unX) list `permutation` [minBound..maxBound :: Word4]
-  , map (unX) list `permutation` [minBound..maxBound :: Word3]
-  , map (unX) list `permutation` [minBound..maxBound :: Word2]
-  , map (unX) list `permutation` [minBound..maxBound :: Word1]
-  , map (unX) list `permutation` [minBound..maxBound :: Nat7]
-  , map (unX) list `permutation` [minBound..maxBound :: Nat6]
-  , map (unX) list `permutation` [minBound..maxBound :: Nat5]
-  , map (unX) list `permutation` [minBound..maxBound :: Nat4]
+--, map unX list `permutation` [minBound..maxBound :: Int2]
+--, map unX list `permutation` [minBound..maxBound :: Int1]
+  , map unX list `permutation` [minBound..maxBound :: Word8]
+  , map unX list `permutation` [minBound..maxBound :: Word4]
+  , map unX list `permutation` [minBound..maxBound :: Word3]
+  , map unX list `permutation` [minBound..maxBound :: Word2]
+  , map unX list `permutation` [minBound..maxBound :: Word1]
+  , map unX list `permutation` [minBound..maxBound :: Nat7]
+  , map unX list `permutation` [minBound..maxBound :: Nat6]
+  , map unX list `permutation` [minBound..maxBound :: Nat5]
+  , map unX list `permutation` [minBound..maxBound :: Nat4]
 -- TODO: make the following commented tests pass:
---, map (unX) list `permutation` [minBound..maxBound :: Nat3]
---, map (unX) list `permutation` [minBound..maxBound :: Nat2]
---, map (unX) list `permutation` [minBound..maxBound :: Nat1]
+--, map unX list `permutation` [minBound..maxBound :: Nat3]
+--, map unX list `permutation` [minBound..maxBound :: Nat2]
+--, map unX list `permutation` [minBound..maxBound :: Nat1]
 
-  , (prefiX :: [Int8])  `isPrefixOf` map (unX) list
-  , (prefiX :: [Int16]) `isPrefixOf` map (unX) list
-  , (prefiX :: [Int32]) `isPrefixOf` map (unX) list
-  , (prefiX :: [Int64]) `isPrefixOf` map (unX) list
-  , (prefiX :: [Int])   `isPrefixOf` map (unX) list
+  , (prefiX :: [Int8])  `isPrefixOf` map unX list
+  , (prefiX :: [Int16]) `isPrefixOf` map unX list
+  , (prefiX :: [Int32]) `isPrefixOf` map unX list
+  , (prefiX :: [Int64]) `isPrefixOf` map unX list
+  , (prefiX :: [Int])   `isPrefixOf` map unX list
 
-  , (prefiXN :: [Word8])  `isPrefixOf` map (unX) list
-  , (prefiXN :: [Word16]) `isPrefixOf` map (unX) list
-  , (prefiXN :: [Word32]) `isPrefixOf` map (unX) list
-  , (prefiXN :: [Word64]) `isPrefixOf` map (unX) list
-  , (prefiXN :: [Word])   `isPrefixOf` map (unX) list
+  , (prefiXN :: [Word8])  `isPrefixOf` map unX list
+  , (prefiXN :: [Word16]) `isPrefixOf` map unX list
+  , (prefiXN :: [Word32]) `isPrefixOf` map unX list
+  , (prefiXN :: [Word64]) `isPrefixOf` map unX list
+  , (prefiXN :: [Word])   `isPrefixOf` map unX list
 
-  , (prefiXs :: [[Int8]])  `isPrefixOf` map (unXs) list
-  , (prefiXs :: [[Int16]]) `isPrefixOf` map (unXs) list
-  , (prefiXs :: [[Int32]]) `isPrefixOf` map (unXs) list
-  , (prefiXs :: [[Int64]]) `isPrefixOf` map (unXs) list
-  , (prefiXs :: [[Int]])   `isPrefixOf` map (unXs) list
+  , (prefiXs :: [[Int8]])  `isPrefixOf` map unXs list
+  , (prefiXs :: [[Int16]]) `isPrefixOf` map unXs list
+  , (prefiXs :: [[Int32]]) `isPrefixOf` map unXs list
+  , (prefiXs :: [[Int64]]) `isPrefixOf` map unXs list
+  , (prefiXs :: [[Int]])   `isPrefixOf` map unXs list
 
-  , (prefiXNs :: [[Word8]])  `isPrefixOf` map (unXs) list
-  , (prefiXNs :: [[Word16]]) `isPrefixOf` map (unXs) list
-  , (prefiXNs :: [[Word32]]) `isPrefixOf` map (unXs) list
-  , (prefiXNs :: [[Word64]]) `isPrefixOf` map (unXs) list
-  , (prefiXNs :: [[Word]])   `isPrefixOf` map (unXs) list
+  , (prefiXNs :: [[Word8]])  `isPrefixOf` map unXs list
+  , (prefiXNs :: [[Word16]]) `isPrefixOf` map unXs list
+  , (prefiXNs :: [[Word32]]) `isPrefixOf` map unXs list
+  , (prefiXNs :: [[Word64]]) `isPrefixOf` map unXs list
+  , (prefiXNs :: [[Word]])   `isPrefixOf` map unXs list
 
 
   , [minBound..maxBound :: Int1] == signedRange 1
@@ -112,7 +111,12 @@
   , fails 100 (\i -> i + 1 < (i::Int2))
   , fails 100 (\i -> i + 1 < (i::Int3))
   , fails 100 (\i -> i + 1 < (i::Int4))
+
+  , holds 100 (\(Nat n) -> n >= 0)
+  , holds 100 (\(Natural n) -> n >= 0)
   ]
+  where
+  unXs (Xs xs) = xs
 
 
 prefiX :: (Bounded a, Integral a) => [a]
