diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -1,8 +1,10 @@
 # Builds and tests this Haskell project on "GitHub Actions"
 #
-# 2021  Rudy Matela
+# 2021-2024  Rudy Matela
 #
-# some docs: https://github.com/haskell/actions/tree/main/setup
+# some docs: https://github.com/haskell-actions/setup
+#
+# The official haskell docker image: https://hub.docker.com/_/haskell
 name: build
 on: [push]
 jobs:
@@ -11,24 +13,26 @@
     steps:
 
       - name: Cache ~/.cabal/packages
-        uses: actions/cache@v2
+        uses: actions/cache@v3
         with:
           path: ~/.cabal/packages
-          key:          v1-${{ runner.os }}-cabal-packages-${{ hashFiles('hello.cabal') }}
+          key:          v1-${{ runner.os }}-cabal-packages-${{ hashFiles('*.cabal') }}
           restore-keys: v1-${{ runner.os }}-cabal-packages-
 
       - name: Cache ~/.cabal and ~/.ghc
-        uses: actions/cache@v2
+        uses: actions/cache@v3
         with:
           path: |
             ~/.cabal
             !~/.cabal/packages
             ~/.ghc
-          key:          v1-${{ runner.os }}-cabal-ghc-latest-${{ hashFiles('hello.cabal') }}
+          key:          v1-${{ runner.os }}-cabal-ghc-latest-${{ hashFiles('*.cabal') }}
           restore-keys: v1-${{ runner.os }}-cabal-ghc-latest-
 
       - run: du -hd3 ~/.cabal ~/.ghc || true
 
+      - run: make --version
+
       - run: haddock --version || sudo apt-get install ghc-haddock
       - run: ghc     --version
       - run: cabal   --version
@@ -36,22 +40,31 @@
       - run: ghc-pkg list
 
       - name: Check out repository
-        uses: actions/checkout@v2
+        uses: actions/checkout@v3
 
-      - run: cabal update
+      - run: git --version
+
       - run: make install-dependencies
 
-      - run: make
-      - run: make test
-      - run: make haddock
+      # 2023-07: some projects were failing with missing base for GHC 9.6.
+      #          Here we compile through cabal only provisionally.
+      # - run: make
+      # - run: make test
+      # - run: make haddock
       - run: make test-sdist
-      - run: make test-via-cabal
+      #- run: make test-via-cabal
+      - run: cabal configure --enable-tests --enable-benchmarks --ghc-options="-O0"
+      - run: cabal build
+      - run: cabal test
+      - run: cabal haddock
 
 
   test-with-ghc:
     strategy:
       matrix:
         ghc:
+          - '9.8'
+          - '9.6'
           - '9.4'
           - '9.2'
           - '9.0'
@@ -60,28 +73,26 @@
           - '8.6'
           - '8.4'
           - '8.2'
-          - '8.0'
           - '7.10'
-          - '7.8'
     runs-on: ubuntu-latest
     needs: build-and-test
     container: haskell:${{ matrix.ghc }}
     steps:
       - name: Cache ~/.cabal/packages
-        uses: actions/cache@v2
+        uses: actions/cache@v3
         with:
           path: ~/.cabal/packages
-          key:          v1-${{ runner.os }}-cabal-packages-${{ hashFiles('hello.cabal') }}
+          key:          v1-${{ runner.os }}-cabal-packages-${{ hashFiles('*.cabal') }}
           restore-keys: v1-${{ runner.os }}-cabal-packages-
 
       - name: Cache ~/.cabal and ~/.ghc
-        uses: actions/cache@v2
+        uses: actions/cache@v3
         with:
           path: |
             ~/.cabal
             !~/.cabal/packages
             ~/.ghc
-          key:          v1-${{ runner.os }}-cabal-ghc-${{ matrix.ghc }}-${{ hashFiles('hello.cabal') }}
+          key:          v1-${{ runner.os }}-cabal-ghc-${{ matrix.ghc }}-${{ hashFiles('*.cabal') }}
           restore-keys: v1-${{ runner.os }}-cabal-ghc-${{ matrix.ghc }}-
 
       - run: du -hd3 ~/.cabal ~/.ghc || true
@@ -96,9 +107,8 @@
       - run: ghc-pkg list
 
       - name: Check out repository
-        uses: actions/checkout@v2
+        uses: actions/checkout@v3
 
-      - run: cabal update
       - run: make install-dependencies
 
       - run: make
@@ -112,12 +122,12 @@
     needs: build-and-test
     steps:
       - name: Setup Haskell's GHC and Cabal as required by current Stackage LTS
-        uses: haskell/actions/setup@v1
+        uses: haskell-actions/setup@v2
         with: # lts-19.19
           ghc-version: '9.0.2'
           cabal-version: '3.4'
 
-      - uses: actions/cache@v2
+      - uses: actions/cache@v3
         with:
           path: ~/.stack
           key:          v1-${{ runner.os }}-stack-${{ hashFiles('stack.yaml') }}
@@ -126,7 +136,7 @@
       - run: stack --version
 
       - name: Check out repository
-        uses: actions/checkout@v2
+        uses: actions/checkout@v3
       - run: make test-via-stack
 
   test-with-hugs:
@@ -136,5 +146,5 @@
       - run: sudo apt-get update
       - run: sudo apt-get install hugs
       - name: Check out repository
-        uses: actions/checkout@v2
+        uses: actions/checkout@v3
       - run: make hugs-test
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2015-2020, Rudy Matela
+Copyright (c) 2015-2024, Rudy Matela
 
 All rights reserved.
 
diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 # Makefile for LeanCheck
 #
-# Copyright:   (c) 2015-2020 Rudy Matela
+# Copyright:   (c) 2015-2024 Rudy Matela
 # License:     3-Clause BSD  (see the file LICENSE)
 # Maintainer:  Rudy Matela <rudy@matela.com.br>
 TESTS = test/main      \
@@ -42,9 +42,9 @@
 
 test: $(patsubst %,%.run,$(TESTS)) diff-test test-sdist
 
-diff-test: diff-test-tiers diff-test-funtiers $(patsubst %,%.diff-test,$(EGS))
+diff-test: diff-tiers diff-funtiers $(patsubst %,%.diff,$(EGS))
 
-update-diff-test: update-diff-test-tiers update-diff-test-funtiers $(patsubst %,%.update-diff-test,$(EGS))
+txt: txt-tiers txt-funtiers $(patsubst %,%.txt,$(EGS))
 
 test-10000: $(patsubst %,%.run-10000,$(TESTS)) diff-test test-sdist
 
@@ -54,21 +54,23 @@
 %.run-10000: %
 	./$< 10000
 
-eg/%.diff-test: eg/%
-	./$< | diff -rud test/diff/$<.out -
+%.txt: %
+	./$< >$@
 
-eg/%.update-diff-test: eg/%
-	./$< >           test/diff/$<.out
+%.diff: %
+	./$< | diff $<.txt -
 
 # Evaluation order changed from GHC 8.4 to GHC 8.6, so we need to skip the
 # contents of the exception for test-list.diff-test.
 # Exception is multiline starting with GHC 9.4, hence the 'tr' trick
-eg/test-list.diff-test: eg/test-list
-	./$< | tr '\n' '\0' | sed -e "s/Exception '[^']*'/Exception '...'/" | tr '\0' '\n' | diff -rud test/diff/$<.out -
+hide_exceptions = tr '\n' '\0' | sed -e "s/Exception '[^']*'/Exception '...'/" | tr '\0' '\n'
 
-eg/test-list.update-diff-test: eg/test-list
-	./$< | tr '\n' '\0' | sed -e "s/Exception '[^']*'/Exception '...'/" | tr '\0' '\n' >           test/diff/$<.out
+eg/test-list.txt: eg/test-list
+	./$< | $(hide_exceptions) > $@
 
+eg/test-list.diff: eg/test-list
+	./$< | $(hide_exceptions) | diff $<.txt -
+
 clean: clean-hi-o clean-haddock
 	rm -f bench/tiers-default.hs
 	rm -f bench/tiers-4cases.hs
@@ -106,6 +108,10 @@
 test-via-stack:
 	stack test leancheck:test:main --ghc-options="$(GHCFLAGS) -O0" --system-ghc --no-install-ghc --no-terminal
 
+test-with-ghc-7.6:
+	make clean
+	make GHC=ghc-7.6 GHCFLAGS=-dynamic test/{main,fun,funshow,io,operators,stats,tiers,types,error}.run -j9
+
 legacy-test: # needs ghc-9.4 .. ghc-7.8 installed as such
 	make clean  &&  make test -j GHC=ghc-9.4
 	make clean  &&  make test -j GHC=ghc-9.2
@@ -132,11 +138,18 @@
 	cabal clean  &&  cabal-ghc-7.8  configure  &&  cabal-ghc-7.8  test
 	cabal clean  &&  cabal test
 
-hlint:
+hlint: ..hlint # src.hlint eg.hlint test.hlint bench.hlint
+
+# use "make src.hlint" to run hlint only on the src folder
+%.hlint:
 	hlint \
 	  --ignore "Use import/export shortcut" \
 	  --ignore "Redundant bracket" \
-	  .
+	  --ignore "Redundant lambda" \
+	  --ignore "Use lambda-case" \
+	  --ignore "Redundant ==" \
+	  --ignore "Use isNothing" \
+	  $*
 
 markdown: \
   README.html \
@@ -169,141 +182,141 @@
 
 include mk/haskell.mk
 
-diff-test-tiers: bench/tiers
+diff-tiers: bench/tiers
 	# simple types
-	./bench/tiers "()"               | diff -rud test/diff/tiers.out             -
-	./bench/tiers "Int"              | diff -rud test/diff/tiers-Int.out         -
-	./bench/tiers "Nat"              | diff -rud test/diff/tiers-Nat.out         -
-	./bench/tiers "Integer"          | diff -rud test/diff/tiers-Integer.out     -
-	./bench/tiers "Bool"             | diff -rud test/diff/tiers-Bool.out        -
-	./bench/tiers "Char"             | diff -rud test/diff/tiers-Char.out        -
-	./bench/tiers "Float"            | diff -rud test/diff/tiers-Float.out       -
-	./bench/tiers "Double"           | diff -rud test/diff/tiers-Double.out      -
-	./bench/tiers "Rational"         | diff -rud test/diff/tiers-Rational.out    -
+	$< "()"              | diff -rud bench/tiers-txt/U.txt           -
+	$< "Int"             | diff -rud bench/tiers-txt/Int.txt         -
+	$< "Nat"             | diff -rud bench/tiers-txt/Nat.txt         -
+	$< "Integer"         | diff -rud bench/tiers-txt/Integer.txt     -
+	$< "Bool"            | diff -rud bench/tiers-txt/Bool.txt        -
+	$< "Char"            | diff -rud bench/tiers-txt/Char.txt        -
+	$< "Float"           | diff -rud bench/tiers-txt/Float.txt       -
+	$< "Double"          | diff -rud bench/tiers-txt/Double.txt      -
+	$< "Rational"        | diff -rud bench/tiers-txt/Rational.txt    -
 	# fixed width integer types
-	./bench/tiers "Nat2"             | diff -rud test/diff/tiers-Nat2.out        -
-	./bench/tiers "Nat3"             | diff -rud test/diff/tiers-Nat3.out        -
-	./bench/tiers "Nat4"             | diff -rud test/diff/tiers-Nat4.out        -
-	./bench/tiers "Word2"            | diff -rud test/diff/tiers-Word2.out       -
-	./bench/tiers "Word3"            | diff -rud test/diff/tiers-Word3.out       -
-	./bench/tiers "Word4"         64 | diff -rud test/diff/tiers-Word4.out       -
-	./bench/tiers "Word8"        256 | diff -rud test/diff/tiers-Word8.out       -
-	./bench/tiers "Int2"             | diff -rud test/diff/tiers-Int2.out        -
-	./bench/tiers "Int3"             | diff -rud test/diff/tiers-Int3.out        -
-	./bench/tiers "Int4"          64 | diff -rud test/diff/tiers-Int4.out        -
-	./bench/tiers "Int8"         256 | diff -rud test/diff/tiers-Int8.out        -
+	$< "Nat2"            | diff -rud bench/tiers-txt/Nat2.txt        -
+	$< "Nat3"            | diff -rud bench/tiers-txt/Nat3.txt        -
+	$< "Nat4"            | diff -rud bench/tiers-txt/Nat4.txt        -
+	$< "Word2"           | diff -rud bench/tiers-txt/Word2.txt       -
+	$< "Word3"           | diff -rud bench/tiers-txt/Word3.txt       -
+	$< "Word4"        64 | diff -rud bench/tiers-txt/Word4.txt       -
+	$< "Word8"       256 | diff -rud bench/tiers-txt/Word8.txt       -
+	$< "Int2"            | diff -rud bench/tiers-txt/Int2.txt        -
+	$< "Int3"            | diff -rud bench/tiers-txt/Int3.txt        -
+	$< "Int4"         64 | diff -rud bench/tiers-txt/Int4.txt        -
+	$< "Int8"        256 | diff -rud bench/tiers-txt/Int8.txt        -
 	# complex numbers
-	./bench/tiers "Complex Double"   | diff -rud test/diff/tiers-ComplexDouble.out -
+	$< "Complex Double"  | diff -rud bench/tiers-txt/ComplexDouble.txt -
 	# list s
-	./bench/tiers "[()]"             | diff -rud test/diff/tiers-Us.out          -
-	./bench/tiers "[Int]"          6 | diff -rud test/diff/tiers-Ints.out        -
-	./bench/tiers "[Nat]"          6 | diff -rud test/diff/tiers-Nats.out        -
-	./bench/tiers "[Bool]"         6 | diff -rud test/diff/tiers-Bools.out       -
-	./bench/tiers "String"         6 | diff -rud test/diff/tiers-String.out      -
+	$< "[()]"            | diff -rud bench/tiers-txt/Us.txt          -
+	$< "[Int]"         6 | diff -rud bench/tiers-txt/Ints.txt        -
+	$< "[Nat]"         6 | diff -rud bench/tiers-txt/Nats.txt        -
+	$< "[Bool]"        6 | diff -rud bench/tiers-txt/Bools.txt       -
+	$< "String"        6 | diff -rud bench/tiers-txt/String.txt      -
 	# pairs
-	./bench/tiers "(Int,Int)"        | diff -rud test/diff/tiers-Int,Int.out     -
-	./bench/tiers "(Nat,Nat)"        | diff -rud test/diff/tiers-Nat,Nat.out     -
-	./bench/tiers "(Int,Int,Int)"  6 | diff -rud test/diff/tiers-Int,Int,Int.out -
-	./bench/tiers "(Nat,Nat,Nat)"  6 | diff -rud test/diff/tiers-Nat,Nat,Nat.out -
+	$< "(Int,Int)"       | diff -rud bench/tiers-txt/Int,Int.txt     -
+	$< "(Nat,Nat)"       | diff -rud bench/tiers-txt/Nat,Nat.txt     -
+	$< "(Int,Int,Int)" 6 | diff -rud bench/tiers-txt/Int,Int,Int.txt -
+	$< "(Nat,Nat,Nat)" 6 | diff -rud bench/tiers-txt/Nat,Nat,Nat.txt -
 	# lists & pairs
-	./bench/tiers "[((),())]"        | diff -rud test/diff/tiers-U,Us.out        -
-	./bench/tiers "([()],[()])"      | diff -rud test/diff/tiers-Us,Us.out       -
+	$< "[((),())]"       | diff -rud bench/tiers-txt/U,Us.txt        -
+	$< "([()],[()])"     | diff -rud bench/tiers-txt/Us,Us.txt       -
 	# special lists
-	./bench/tiers "Set Bool"         | diff -rud test/diff/tiers-SetBool.out     -
-	./bench/tiers "Set ()"           | diff -rud test/diff/tiers-SetU.out        -
-	./bench/tiers "Set Nat"          | diff -rud test/diff/tiers-SetNat.out      -
-	./bench/tiers "Set Nat2"         | diff -rud test/diff/tiers-SetNat2.out     -
-	./bench/tiers "Set Nat3"         | diff -rud test/diff/tiers-SetNat3.out     -
-	./bench/tiers "Bag Bool"         | diff -rud test/diff/tiers-BagBool.out     -
-	./bench/tiers "Bag ()"           | diff -rud test/diff/tiers-BagU.out        -
-	./bench/tiers "Bag Nat"          | diff -rud test/diff/tiers-BagNat.out      -
-	./bench/tiers "Bag Nat2"         | diff -rud test/diff/tiers-BagNat2.out     -
-	./bench/tiers "Bag Nat3"         | diff -rud test/diff/tiers-BagNat3.out     -
-	./bench/tiers "NoDup Bool"       | diff -rud test/diff/tiers-NoDupBool.out   -
-	./bench/tiers "NoDup ()"         | diff -rud test/diff/tiers-NoDupU.out      -
-	./bench/tiers "NoDup Nat"        | diff -rud test/diff/tiers-NoDupNat.out    -
-	./bench/tiers "NoDup Nat2"       | diff -rud test/diff/tiers-NoDupNat2.out   -
-	./bench/tiers "NoDup Nat3"       | diff -rud test/diff/tiers-NoDupNat3.out   -
-	./bench/tiers "Map Bool Bool"    | diff -rud test/diff/tiers-MapBoolBool.out -
-	./bench/tiers "Map () ()"        | diff -rud test/diff/tiers-MapUU.out       -
-	./bench/tiers "Map Nat Nat"      | diff -rud test/diff/tiers-MapNatNat.out   -
-	./bench/tiers "Map Nat2 Nat2"    | diff -rud test/diff/tiers-MapNat2Nat2.out -
-	./bench/tiers "Map Nat3 Nat3"    | diff -rud test/diff/tiers-MapNat3Nat3.out -
+	$< "Set Bool"        | diff -rud bench/tiers-txt/SetBool.txt     -
+	$< "Set ()"          | diff -rud bench/tiers-txt/SetU.txt        -
+	$< "Set Nat"         | diff -rud bench/tiers-txt/SetNat.txt      -
+	$< "Set Nat2"        | diff -rud bench/tiers-txt/SetNat2.txt     -
+	$< "Set Nat3"        | diff -rud bench/tiers-txt/SetNat3.txt     -
+	$< "Bag Bool"        | diff -rud bench/tiers-txt/BagBool.txt     -
+	$< "Bag ()"          | diff -rud bench/tiers-txt/BagU.txt        -
+	$< "Bag Nat"         | diff -rud bench/tiers-txt/BagNat.txt      -
+	$< "Bag Nat2"        | diff -rud bench/tiers-txt/BagNat2.txt     -
+	$< "Bag Nat3"        | diff -rud bench/tiers-txt/BagNat3.txt     -
+	$< "NoDup Bool"      | diff -rud bench/tiers-txt/NoDupBool.txt   -
+	$< "NoDup ()"        | diff -rud bench/tiers-txt/NoDupU.txt      -
+	$< "NoDup Nat"       | diff -rud bench/tiers-txt/NoDupNat.txt    -
+	$< "NoDup Nat2"      | diff -rud bench/tiers-txt/NoDupNat2.txt   -
+	$< "NoDup Nat3"      | diff -rud bench/tiers-txt/NoDupNat3.txt   -
+	$< "Map Bool Bool"   | diff -rud bench/tiers-txt/MapBoolBool.txt -
+	$< "Map () ()"       | diff -rud bench/tiers-txt/MapUU.txt       -
+	$< "Map Nat Nat"     | diff -rud bench/tiers-txt/MapNatNat.txt   -
+	$< "Map Nat2 Nat2"   | diff -rud bench/tiers-txt/MapNat2Nat2.txt -
+	$< "Map Nat3 Nat3"   | diff -rud bench/tiers-txt/MapNat3Nat3.txt -
 	# extreme integers
-	./bench/tiers "X Int4"           | diff -rud test/diff/tiers-XInt4.out       -
-	./bench/tiers "X Word4"          | diff -rud test/diff/tiers-XWord4.out      -
-	./bench/tiers "X Nat7"           | diff -rud test/diff/tiers-XNat7.out       -
-	./bench/tiers "Xs Int4"          | diff -rud test/diff/tiers-XsInt4.out      -
-	./bench/tiers "Xs Word4"         | diff -rud test/diff/tiers-XsWord4.out     -
-	./bench/tiers "Xs Nat7"          | diff -rud test/diff/tiers-XsNat7.out      -
+	$< "X Int4"          | diff -rud bench/tiers-txt/XInt4.txt       -
+	$< "X Word4"         | diff -rud bench/tiers-txt/XWord4.txt      -
+	$< "X Nat7"          | diff -rud bench/tiers-txt/XNat7.txt       -
+	$< "Xs Int4"         | diff -rud bench/tiers-txt/XsInt4.txt      -
+	$< "Xs Word4"        | diff -rud bench/tiers-txt/XsWord4.txt     -
+	$< "Xs Nat7"         | diff -rud bench/tiers-txt/XsNat7.txt      -
 
-update-diff-test-tiers: bench/tiers
+txt-tiers: bench/tiers
 	# simple types
-	./bench/tiers "()"               > test/diff/tiers.out
-	./bench/tiers "Int"              > test/diff/tiers-Int.out
-	./bench/tiers "Nat"              > test/diff/tiers-Nat.out
-	./bench/tiers "Integer"          > test/diff/tiers-Integer.out
-	./bench/tiers "Bool"             > test/diff/tiers-Bool.out
-	./bench/tiers "Char"             > test/diff/tiers-Char.out
-	./bench/tiers "Float"            > test/diff/tiers-Float.out
-	./bench/tiers "Double"           > test/diff/tiers-Double.out
-	./bench/tiers "Rational"         > test/diff/tiers-Rational.out
+	$< "()"              > bench/tiers-txt/U.txt
+	$< "Int"             > bench/tiers-txt/Int.txt
+	$< "Nat"             > bench/tiers-txt/Nat.txt
+	$< "Integer"         > bench/tiers-txt/Integer.txt
+	$< "Bool"            > bench/tiers-txt/Bool.txt
+	$< "Char"            > bench/tiers-txt/Char.txt
+	$< "Float"           > bench/tiers-txt/Float.txt
+	$< "Double"          > bench/tiers-txt/Double.txt
+	$< "Rational"        > bench/tiers-txt/Rational.txt
 	# fixed width integer types
-	./bench/tiers "Nat2"             > test/diff/tiers-Nat2.out
-	./bench/tiers "Nat3"             > test/diff/tiers-Nat3.out
-	./bench/tiers "Nat4"             > test/diff/tiers-Nat4.out
-	./bench/tiers "Word2"            > test/diff/tiers-Word2.out
-	./bench/tiers "Word3"            > test/diff/tiers-Word3.out
-	./bench/tiers "Word4"         64 > test/diff/tiers-Word4.out
-	./bench/tiers "Word8"        256 > test/diff/tiers-Word8.out
-	./bench/tiers "Int2"             > test/diff/tiers-Int2.out
-	./bench/tiers "Int3"             > test/diff/tiers-Int3.out
-	./bench/tiers "Int4"          64 > test/diff/tiers-Int4.out
-	./bench/tiers "Int8"         256 > test/diff/tiers-Int8.out
+	$< "Nat2"            > bench/tiers-txt/Nat2.txt
+	$< "Nat3"            > bench/tiers-txt/Nat3.txt
+	$< "Nat4"            > bench/tiers-txt/Nat4.txt
+	$< "Word2"           > bench/tiers-txt/Word2.txt
+	$< "Word3"           > bench/tiers-txt/Word3.txt
+	$< "Word4"        64 > bench/tiers-txt/Word4.txt
+	$< "Word8"       256 > bench/tiers-txt/Word8.txt
+	$< "Int2"            > bench/tiers-txt/Int2.txt
+	$< "Int3"            > bench/tiers-txt/Int3.txt
+	$< "Int4"         64 > bench/tiers-txt/Int4.txt
+	$< "Int8"        256 > bench/tiers-txt/Int8.txt
 	# complex numbers
-	./bench/tiers "Complex Double"   > test/diff/tiers-ComplexDouble.out
+	$< "Complex Double"  > bench/tiers-txt/ComplexDouble.txt
 	# lists
-	./bench/tiers "[()]"             > test/diff/tiers-Us.out
-	./bench/tiers "[Int]"          6 > test/diff/tiers-Ints.out
-	./bench/tiers "[Nat]"          6 > test/diff/tiers-Nats.out
-	./bench/tiers "[Bool]"         6 > test/diff/tiers-Bools.out
-	./bench/tiers "String"         6 > test/diff/tiers-String.out
+	$< "[()]"            > bench/tiers-txt/Us.txt
+	$< "[Int]"         6 > bench/tiers-txt/Ints.txt
+	$< "[Nat]"         6 > bench/tiers-txt/Nats.txt
+	$< "[Bool]"        6 > bench/tiers-txt/Bools.txt
+	$< "String"        6 > bench/tiers-txt/String.txt
 	# pairs
-	./bench/tiers "(Int,Int)"        > test/diff/tiers-Int,Int.out
-	./bench/tiers "(Nat,Nat)"        > test/diff/tiers-Nat,Nat.out
-	./bench/tiers "(Int,Int,Int)"  6 > test/diff/tiers-Int,Int,Int.out
-	./bench/tiers "(Nat,Nat,Nat)"  6 > test/diff/tiers-Nat,Nat,Nat.out
+	$< "(Int,Int)"       > bench/tiers-txt/Int,Int.txt
+	$< "(Nat,Nat)"       > bench/tiers-txt/Nat,Nat.txt
+	$< "(Int,Int,Int)" 6 > bench/tiers-txt/Int,Int,Int.txt
+	$< "(Nat,Nat,Nat)" 6 > bench/tiers-txt/Nat,Nat,Nat.txt
 	# lists & pairs
-	./bench/tiers "[((),())]"        > test/diff/tiers-U,Us.out
-	./bench/tiers "([()],[()])"      > test/diff/tiers-Us,Us.out
+	$< "[((),())]"       > bench/tiers-txt/U,Us.txt
+	$< "([()],[()])"     > bench/tiers-txt/Us,Us.txt
 	# special lists
-	./bench/tiers "Set Bool"         > test/diff/tiers-SetBool.out
-	./bench/tiers "Set ()"           > test/diff/tiers-SetU.out
-	./bench/tiers "Set Nat"          > test/diff/tiers-SetNat.out
-	./bench/tiers "Set Nat2"         > test/diff/tiers-SetNat2.out
-	./bench/tiers "Set Nat3"         > test/diff/tiers-SetNat3.out
-	./bench/tiers "Bag Bool"         > test/diff/tiers-BagBool.out
-	./bench/tiers "Bag ()"           > test/diff/tiers-BagU.out
-	./bench/tiers "Bag Nat"          > test/diff/tiers-BagNat.out
-	./bench/tiers "Bag Nat2"         > test/diff/tiers-BagNat2.out
-	./bench/tiers "Bag Nat3"         > test/diff/tiers-BagNat3.out
-	./bench/tiers "NoDup Bool"       > test/diff/tiers-NoDupBool.out
-	./bench/tiers "NoDup ()"         > test/diff/tiers-NoDupU.out
-	./bench/tiers "NoDup Nat"        > test/diff/tiers-NoDupNat.out
-	./bench/tiers "NoDup Nat2"       > test/diff/tiers-NoDupNat2.out
-	./bench/tiers "NoDup Nat3"       > test/diff/tiers-NoDupNat3.out
-	./bench/tiers "Map Bool Bool"    > test/diff/tiers-MapBoolBool.out
-	./bench/tiers "Map () ()"        > test/diff/tiers-MapUU.out
-	./bench/tiers "Map Nat Nat"      > test/diff/tiers-MapNatNat.out
-	./bench/tiers "Map Nat2 Nat2"    > test/diff/tiers-MapNat2Nat2.out
-	./bench/tiers "Map Nat3 Nat3"    > test/diff/tiers-MapNat3Nat3.out
+	$< "Set Bool"        > bench/tiers-txt/SetBool.txt
+	$< "Set ()"          > bench/tiers-txt/SetU.txt
+	$< "Set Nat"         > bench/tiers-txt/SetNat.txt
+	$< "Set Nat2"        > bench/tiers-txt/SetNat2.txt
+	$< "Set Nat3"        > bench/tiers-txt/SetNat3.txt
+	$< "Bag Bool"        > bench/tiers-txt/BagBool.txt
+	$< "Bag ()"          > bench/tiers-txt/BagU.txt
+	$< "Bag Nat"         > bench/tiers-txt/BagNat.txt
+	$< "Bag Nat2"        > bench/tiers-txt/BagNat2.txt
+	$< "Bag Nat3"        > bench/tiers-txt/BagNat3.txt
+	$< "NoDup Bool"      > bench/tiers-txt/NoDupBool.txt
+	$< "NoDup ()"        > bench/tiers-txt/NoDupU.txt
+	$< "NoDup Nat"       > bench/tiers-txt/NoDupNat.txt
+	$< "NoDup Nat2"      > bench/tiers-txt/NoDupNat2.txt
+	$< "NoDup Nat3"      > bench/tiers-txt/NoDupNat3.txt
+	$< "Map Bool Bool"   > bench/tiers-txt/MapBoolBool.txt
+	$< "Map () ()"       > bench/tiers-txt/MapUU.txt
+	$< "Map Nat Nat"     > bench/tiers-txt/MapNatNat.txt
+	$< "Map Nat2 Nat2"   > bench/tiers-txt/MapNat2Nat2.txt
+	$< "Map Nat3 Nat3"   > bench/tiers-txt/MapNat3Nat3.txt
 	# extreme integers
-	./bench/tiers "X Int4"           > test/diff/tiers-XInt4.out
-	./bench/tiers "X Word4"          > test/diff/tiers-XWord4.out
-	./bench/tiers "X Nat7"           > test/diff/tiers-XNat7.out
-	./bench/tiers "Xs Int4"          > test/diff/tiers-XsInt4.out
-	./bench/tiers "Xs Word4"         > test/diff/tiers-XsWord4.out
-	./bench/tiers "Xs Nat7"          > test/diff/tiers-XsNat7.out
+	$< "X Int4"          > bench/tiers-txt/XInt4.txt
+	$< "X Word4"         > bench/tiers-txt/XWord4.txt
+	$< "X Nat7"          > bench/tiers-txt/XNat7.txt
+	$< "Xs Int4"         > bench/tiers-txt/XsInt4.txt
+	$< "Xs Word4"        > bench/tiers-txt/XsWord4.txt
+	$< "Xs Nat7"         > bench/tiers-txt/XsNat7.txt
 
 prepare-depend: bench/tiers-default.hs \
                 bench/tiers-4cases.hs
@@ -323,75 +336,75 @@
 
 bench/tiers-4cases: bench/tiers-4cases.hs
 
-diff-test-funtiers: bench/tiers-default.diff-test \
-                    bench/tiers-4cases.diff-test
+diff-funtiers: bench/tiers-default.diff \
+               bench/tiers-4cases.diff
 
-update-diff-test-funtiers: bench/tiers-default.update-diff-test \
-                           bench/tiers-4cases.update-diff-test
+txt-funtiers: bench/tiers-default.txt \
+              bench/tiers-4cases.txt
 
-bench/tiers-%.diff-test: bench/tiers-%
+bench/tiers-%.diff: bench/tiers-%
 	# functions
-	$< "()->()"           | diff -rud test/diff/tiers-$*-U-U.out         -
-	$< "Bool->Bool"       | diff -rud test/diff/tiers-$*-Bool-Bool.out   -
-	$< "Bool->Bool->Bool" | diff -rud test/diff/tiers-$*-Bool-Bool-Bool.out -
-	$< "Bool->()"         | diff -rud test/diff/tiers-$*-Bool-U.out      -
-	$< "()->Bool"         | diff -rud test/diff/tiers-$*-U-Bool.out      -
-	$< "Int->Int"       9 | diff -rud test/diff/tiers-$*-Int-Int.out     -
-	$< "Nat->Nat"       9 | diff -rud test/diff/tiers-$*-Nat-Nat.out     -
-	$< "()->Nat"        6 | diff -rud test/diff/tiers-$*-U-Nat.out       -
-	$< "Nat->()"        6 | diff -rud test/diff/tiers-$*-Nat-U.out       -
-	$< "Int->Int->Int"  6 | diff -rud test/diff/tiers-$*-Int-Int-Int.out -
-	$< "Nat->Nat->Nat"  6 | diff -rud test/diff/tiers-$*-Nat-Nat-Nat.out -
-	$< "(Nat,Nat)->Nat" 6 | diff -rud test/diff/tiers-$*-Nat,Nat-Nat.out -
-	$< "Maybe Bool->Bool" | diff -rud test/diff/tiers-$*-MBool-Bool.out  -
-	$< "Bool->Maybe Bool" | diff -rud test/diff/tiers-$*-Bool-MBool.out  -
-	$< "Maybe Bool->Maybe Bool" | diff -rud test/diff/tiers-$*-MBool-MBool.out -
+	$< "()->()"           | diff -rud bench/tiers-txt/$*-U-U.txt         -
+	$< "Bool->Bool"       | diff -rud bench/tiers-txt/$*-Bool-Bool.txt   -
+	$< "Bool->Bool->Bool" | diff -rud bench/tiers-txt/$*-Bool-Bool-Bool.txt -
+	$< "Bool->()"         | diff -rud bench/tiers-txt/$*-Bool-U.txt      -
+	$< "()->Bool"         | diff -rud bench/tiers-txt/$*-U-Bool.txt      -
+	$< "Int->Int"       9 | diff -rud bench/tiers-txt/$*-Int-Int.txt     -
+	$< "Nat->Nat"       9 | diff -rud bench/tiers-txt/$*-Nat-Nat.txt     -
+	$< "()->Nat"        6 | diff -rud bench/tiers-txt/$*-U-Nat.txt       -
+	$< "Nat->()"        6 | diff -rud bench/tiers-txt/$*-Nat-U.txt       -
+	$< "Int->Int->Int"  6 | diff -rud bench/tiers-txt/$*-Int-Int-Int.txt -
+	$< "Nat->Nat->Nat"  6 | diff -rud bench/tiers-txt/$*-Nat-Nat-Nat.txt -
+	$< "(Nat,Nat)->Nat" 6 | diff -rud bench/tiers-txt/$*-Nat,Nat-Nat.txt -
+	$< "Maybe Bool->Bool" | diff -rud bench/tiers-txt/$*-MBool-Bool.txt  -
+	$< "Bool->Maybe Bool" | diff -rud bench/tiers-txt/$*-Bool-MBool.txt  -
+	$< "Maybe Bool->Maybe Bool" | diff -rud bench/tiers-txt/$*-MBool-MBool.txt -
 	# functions with mixed arguments
-	$< "Bool->Int->Bool" 6 | diff -rud test/diff/tiers-$*-Bool-Int-Bool.out -
-	$< "Int->Bool->Bool" 6 | diff -rud test/diff/tiers-$*-Int-Bool-Bool.out -
+	$< "Bool->Int->Bool" 6 | diff -rud bench/tiers-txt/$*-Bool-Int-Bool.txt -
+	$< "Int->Bool->Bool" 6 | diff -rud bench/tiers-txt/$*-Int-Bool-Bool.txt -
 	# functions with 3 arguments
-	$< "Int->Int->Int->Int"     4 | diff -rud test/diff/tiers-$*-Int-Int-Int-Int.out -
-	$< "Bool->Bool->Bool->Bool"   | diff -rud test/diff/tiers-$*-Bool-Bool-Bool-Bool.out -
+	$< "Int->Int->Int->Int"     4 | diff -rud bench/tiers-txt/$*-Int-Int-Int-Int.txt -
+	$< "Bool->Bool->Bool->Bool"   | diff -rud bench/tiers-txt/$*-Bool-Bool-Bool-Bool.txt -
 	# functions of lists
-	$< "[Bool]->[Bool]" 5 | diff -rud test/diff/tiers-$*-Bools-Bools.out -
-	$< "[Nat]->[Nat]"   6 | diff -rud test/diff/tiers-$*-Nats-Nats.out   -
-	$< "[Int]->[Int]"   6 | diff -rud test/diff/tiers-$*-Ints-Ints.out   -
+	$< "[Bool]->[Bool]" 5 | diff -rud bench/tiers-txt/$*-Bools-Bools.txt -
+	$< "[Nat]->[Nat]"   6 | diff -rud bench/tiers-txt/$*-Nats-Nats.txt   -
+	$< "[Int]->[Int]"   6 | diff -rud bench/tiers-txt/$*-Ints-Ints.txt   -
 	# more functions
-	$< "Nat2->Nat2"       | diff -rud test/diff/tiers-$*-Nat2-Nat2.out   -
-	$< "Nat2->Nat3"       | diff -rud test/diff/tiers-$*-Nat2-Nat3.out   -
-	$< "Nat3->Nat2"       | diff -rud test/diff/tiers-$*-Nat3-Nat2.out   -
-	$< "Nat3->Nat3"       | diff -rud test/diff/tiers-$*-Nat3-Nat3.out   -
+	$< "Nat2->Nat2"       | diff -rud bench/tiers-txt/$*-Nat2-Nat2.txt   -
+	$< "Nat2->Nat3"       | diff -rud bench/tiers-txt/$*-Nat2-Nat3.txt   -
+	$< "Nat3->Nat2"       | diff -rud bench/tiers-txt/$*-Nat3-Nat2.txt   -
+	$< "Nat3->Nat3"       | diff -rud bench/tiers-txt/$*-Nat3-Nat3.txt   -
 
-bench/tiers-%.update-diff-test: bench/tiers-%
+bench/tiers-%.txt: bench/tiers-%
 	# functions
-	$< "()->()"           > test/diff/tiers-$*-U-U.out
-	$< "Bool->Bool"       > test/diff/tiers-$*-Bool-Bool.out
-	$< "Bool->Bool->Bool" > test/diff/tiers-$*-Bool-Bool-Bool.out
-	$< "Bool->()"         > test/diff/tiers-$*-Bool-U.out
-	$< "()->Bool"         > test/diff/tiers-$*-U-Bool.out
-	$< "Int->Int"       9 > test/diff/tiers-$*-Int-Int.out
-	$< "Nat->Nat"       9 > test/diff/tiers-$*-Nat-Nat.out
-	$< "Nat->()"        6 > test/diff/tiers-$*-Nat-U.out
-	$< "()->Nat"        6 > test/diff/tiers-$*-U-Nat.out
-	$< "Int->Int->Int"  6 > test/diff/tiers-$*-Int-Int-Int.out
-	$< "Nat->Nat->Nat"  6 > test/diff/tiers-$*-Nat-Nat-Nat.out
-	$< "(Nat,Nat)->Nat" 6 > test/diff/tiers-$*-Nat,Nat-Nat.out
-	$< "Maybe Bool->Bool" > test/diff/tiers-$*-MBool-Bool.out
-	$< "Bool->Maybe Bool" > test/diff/tiers-$*-Bool-MBool.out
-	$< "Maybe Bool->Maybe Bool" > test/diff/tiers-$*-MBool-MBool.out
+	$< "()->()"           > bench/tiers-txt/$*-U-U.txt
+	$< "Bool->Bool"       > bench/tiers-txt/$*-Bool-Bool.txt
+	$< "Bool->Bool->Bool" > bench/tiers-txt/$*-Bool-Bool-Bool.txt
+	$< "Bool->()"         > bench/tiers-txt/$*-Bool-U.txt
+	$< "()->Bool"         > bench/tiers-txt/$*-U-Bool.txt
+	$< "Int->Int"       9 > bench/tiers-txt/$*-Int-Int.txt
+	$< "Nat->Nat"       9 > bench/tiers-txt/$*-Nat-Nat.txt
+	$< "Nat->()"        6 > bench/tiers-txt/$*-Nat-U.txt
+	$< "()->Nat"        6 > bench/tiers-txt/$*-U-Nat.txt
+	$< "Int->Int->Int"  6 > bench/tiers-txt/$*-Int-Int-Int.txt
+	$< "Nat->Nat->Nat"  6 > bench/tiers-txt/$*-Nat-Nat-Nat.txt
+	$< "(Nat,Nat)->Nat" 6 > bench/tiers-txt/$*-Nat,Nat-Nat.txt
+	$< "Maybe Bool->Bool" > bench/tiers-txt/$*-MBool-Bool.txt
+	$< "Bool->Maybe Bool" > bench/tiers-txt/$*-Bool-MBool.txt
+	$< "Maybe Bool->Maybe Bool" > bench/tiers-txt/$*-MBool-MBool.txt
 	# functions with mixed arguments
-	$< "Bool->Int->Bool" 6 > test/diff/tiers-$*-Bool-Int-Bool.out
-	$< "Int->Bool->Bool" 6 > test/diff/tiers-$*-Int-Bool-Bool.out
+	$< "Bool->Int->Bool" 6 > bench/tiers-txt/$*-Bool-Int-Bool.txt
+	$< "Int->Bool->Bool" 6 > bench/tiers-txt/$*-Int-Bool-Bool.txt
 	# functions with 3 arguments
-	$< "Int->Int->Int->Int"     4 > test/diff/tiers-$*-Int-Int-Int-Int.out
-	$< "Bool->Bool->Bool->Bool"   > test/diff/tiers-$*-Bool-Bool-Bool-Bool.out
+	$< "Int->Int->Int->Int"     4 > bench/tiers-txt/$*-Int-Int-Int-Int.txt
+	$< "Bool->Bool->Bool->Bool"   > bench/tiers-txt/$*-Bool-Bool-Bool-Bool.txt
 	# functions of lists
-	$< "[()]->[()]"     6 > test/diff/tiers-$*-Us-Us.out
-	$< "[Bool]->[Bool]" 5 > test/diff/tiers-$*-Bools-Bools.out
-	$< "[Nat]->[Nat]"   6 > test/diff/tiers-$*-Nats-Nats.out
-	$< "[Int]->[Int]"   6 > test/diff/tiers-$*-Ints-Ints.out
+	$< "[()]->[()]"     6 > bench/tiers-txt/$*-Us-Us.txt
+	$< "[Bool]->[Bool]" 5 > bench/tiers-txt/$*-Bools-Bools.txt
+	$< "[Nat]->[Nat]"   6 > bench/tiers-txt/$*-Nats-Nats.txt
+	$< "[Int]->[Int]"   6 > bench/tiers-txt/$*-Ints-Ints.txt
 	# more functions
-	$< "Nat2->Nat2"       > test/diff/tiers-$*-Nat2-Nat2.out
-	$< "Nat2->Nat3"       > test/diff/tiers-$*-Nat2-Nat3.out
-	$< "Nat3->Nat2"       > test/diff/tiers-$*-Nat3-Nat2.out
-	$< "Nat3->Nat3"       > test/diff/tiers-$*-Nat3-Nat3.out
+	$< "Nat2->Nat2"       > bench/tiers-txt/$*-Nat2-Nat2.txt
+	$< "Nat2->Nat3"       > bench/tiers-txt/$*-Nat2-Nat3.txt
+	$< "Nat3->Nat2"       > bench/tiers-txt/$*-Nat3-Nat2.txt
+	$< "Nat3->Nat3"       > bench/tiers-txt/$*-Nat3-Nat3.txt
diff --git a/bench/dets.hs b/bench/dets.hs
--- a/bench/dets.hs
+++ b/bench/dets.hs
@@ -1,6 +1,6 @@
 -- dets.hs -- bugs from the Erlang's dets library
 --
--- Copyright (c) 2017-2020 Rudy Matela.
+-- Copyright (c) 2017-2024 Rudy Matela.
 -- Distributed under the 3-Clause BSD licence (see the file LICENSE).
 --
 --
diff --git a/bench/memory-usage.hs b/bench/memory-usage.hs
--- a/bench/memory-usage.hs
+++ b/bench/memory-usage.hs
@@ -1,9 +1,9 @@
 -- memory-usage.hs -- example program illustrating a limitation of LeanCheck
 --
--- Copyright (c) 2020 Rudy Matela.
+-- Copyright (c) 2020-2024 Rudy Matela.
 -- Distributed under the 3-Clause BSD licence (see the file LICENSE).
 --
--- Many thanks to Jonas Duregard for providing this example.
+-- Many thanks to Jonas Duregård for providing this example.
 --
 -- If we set the test limit to millions of values, memory consumption may be
 -- too high.  This is aggravated depending on how tests are ordered.
@@ -15,7 +15,7 @@
 
 -- dummy property that is always 'True' for a correct 'Num' instance.
 evenOrOdd :: (Listable a, Show a, Integral a) => [a] -> Bool
-evenOrOdd xs  =  all (\x -> odd x || even x) xs
+evenOrOdd  =  all (\x -> odd x || even x)
 
 main :: IO ()
 main  =  do
diff --git a/bench/pick.hs b/bench/pick.hs
--- a/bench/pick.hs
+++ b/bench/pick.hs
@@ -1,6 +1,6 @@
 -- pick.hs -- picks the n-th value in a LeanCheck enumeration
 --
--- Copyright (c) 2020 Rudy Matela.
+-- Copyright (c) 2020-2024 Rudy Matela.
 -- Distributed under the 3-Clause BSD licence (see the file LICENSE).
 import Test.LeanCheck
 import Test.LeanCheck.Utils
diff --git a/bench/tiers-txt/4cases-Bool-Bool-Bool-Bool.txt b/bench/tiers-txt/4cases-Bool-Bool-Bool-Bool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-Bool-Bool-Bool-Bool.txt
@@ -0,0 +1,267 @@
+map length (tiers :: [[ Bool->Bool->Bool->Bool ]])  =  [256]
+
+length (list :: [ Bool->Bool->Bool->Bool ])  =  Infinity
+
+allUnique (list :: [ Bool->Bool->Bool->Bool ])  =  True
+
+ratioRepetitions (list :: [ Bool->Bool->Bool->Bool ])  =  0 % 1
+
+tiers :: [Bool->Bool->Bool->Bool]  =
+  [ [ \_ _ _ -> False
+    , \x y z -> case (x,y,z) of (True,True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (True,True,False) -> True; _ -> False
+    , \x y _ -> case (x,y) of (True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (True,False,True) -> True; _ -> False
+    , \x _ z -> case (x,z) of (True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (True,False,True) -> True; (True,True,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,_,_) -> False; (_,False,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (True,False,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (True,False,False) -> True; (True,True,True) -> True; _ -> False
+    , \x _ z -> case (x,z) of (True,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (True,_,False) -> True; (True,True,_) -> True; _ -> False
+    , \x y _ -> case (x,y) of (True,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (True,False,_) -> True; (True,_,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (True,False,_) -> True; (True,_,False) -> True; _ -> False
+    , \x _ _ -> case x of False -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,True,True) -> True; _ -> False
+    , \_ y z -> case (y,z) of (True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,True,True) -> True; (True,True,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,_,False) -> False; (_,False,_) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,True,True) -> True; (True,False,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,_) -> False; (_,_,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,True,True) -> True; (True,False,True) -> True; (True,True,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,_) -> False; (False,_,False) -> False; (_,False,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,True,True) -> True; (True,False,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (_,True,True) -> True; (True,False,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,True,True) -> True; (True,_,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,_) -> False; (False,_,False) -> False; (_,False,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,True,True) -> True; (True,False,_) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,_) -> False; (False,_,False) -> False; (_,True,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,_) -> False; (False,_,False) -> False; (True,True,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,_) -> False; (False,_,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,True,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,True,False) -> True; (True,True,True) -> True; _ -> False
+    , \_ y z -> case (y,z) of (True,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (_,True,False) -> True; (True,True,_) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,True,False) -> True; (True,False,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,True,False) -> True; (True,_,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (_,True,False) -> True; (True,False,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,_) -> False; (_,False,False) -> False; (False,_,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,True,False) -> True; (True,False,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,True,False) -> True; (True,False,False) -> True; (True,True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,_) -> False; (_,_,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,_) -> False; (False,_,True) -> False; (_,False,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,True,False) -> True; (True,False,_) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,_) -> False; (False,_,True) -> False; (True,True,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,_) -> False; (False,_,True) -> False; (_,True,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,_) -> False; (False,_,True) -> False; _ -> True
+    , \x y _ -> case (x,y) of (False,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,True,_) -> True; (_,True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,True,_) -> True; (_,True,False) -> True; _ -> False
+    , \_ y _ -> case y of False -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,True,_) -> True; (True,False,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,_) -> False; (_,False,False) -> False; (True,_,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,_) -> False; (_,False,False) -> False; (True,True,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,_) -> False; (_,False,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,True,_) -> True; (True,False,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,_) -> False; (_,False,True) -> False; (True,True,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,_) -> False; (False,_,_) -> True; (_,_,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,_) -> False; (_,False,True) -> False; _ -> True
+    , \x y _ -> case (x,y) of (False,False) -> False; (True,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,_) -> False; (True,True,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,_) -> False; (True,True,True) -> False; _ -> True
+    , \x y _ -> case (x,y) of (False,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,True) -> True; (True,True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,True) -> True; (True,True,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,True) -> True; (True,True,_) -> True; _ -> False
+    , \_ y z -> case (y,z) of (False,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (_,False,True) -> True; (True,_,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (_,False,True) -> True; (True,True,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,_,False) -> False; (_,False,False) -> False; (False,True,_) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,True) -> True; (True,False,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,True) -> True; (True,False,False) -> True; (True,True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,True) -> True; (True,_,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,_,False) -> False; (False,True,_) -> False; (True,False,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,_,False) -> False; (_,False,_) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,_,False) -> False; (False,True,_) -> False; (_,True,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,_,False) -> False; (False,True,_) -> False; (_,True,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,_,False) -> False; (False,True,_) -> False; _ -> True
+    , \x _ z -> case (x,z) of (False,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,_,True) -> True; (_,True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,_,True) -> True; (True,True,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,_,False) -> False; (_,False,False) -> False; (True,False,_) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,_,True) -> True; (_,False,True) -> True; _ -> False
+    , \_ _ z -> case z of False -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,_,False) -> False; (_,False,False) -> False; (True,True,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,_,False) -> False; (_,False,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,_,True) -> True; (True,False,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,_,False) -> False; (True,False,True) -> False; (_,True,False) -> False; _ -> True
+    , \x _ z -> case (x,z) of (False,False) -> False; (True,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,_,False) -> False; (True,False,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,_,False) -> False; (False,_,_) -> True; (_,False,_) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,_,False) -> False; (_,True,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,_,False) -> False; (True,True,True) -> False; _ -> True
+    , \x _ z -> case (x,z) of (False,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,True) -> True; (False,True,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,True) -> True; (False,True,False) -> True; (True,True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,True) -> True; (_,True,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (_,False,False) -> False; (False,True,True) -> False; (True,False,_) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (_,False,True) -> True; (False,True,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (_,False,False) -> False; (False,True,True) -> False; (True,_,False) -> False; _ -> True
+    , \_ y z -> case (y,z) of (False,False) -> False; (True,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (_,False,False) -> False; (False,True,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,True) -> True; (False,True,False) -> True; (True,False,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,False) -> False; (False,False,True) -> True; (False,True,False) -> True; (False,True,True) -> False; ...
+    , \x y z -> case (x,y,z) of (False,False,False) -> False; (False,False,_) -> True; (_,_,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,False) -> False; (False,True,True) -> False; (True,False,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,False) -> False; (_,False,_) -> True; (False,_,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,False) -> False; (False,True,True) -> False; (True,True,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,False) -> False; (_,True,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,False) -> False; (False,True,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (_,False,False) -> False; (False,_,_) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (_,False,False) -> False; (True,False,_) -> False; (True,_,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (_,False,False) -> False; (True,False,_) -> False; (True,_,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (_,False,False) -> False; (True,False,_) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (_,False,False) -> False; (False,_,_) -> True; (_,False,_) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (_,False,False) -> False; (True,_,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (_,False,False) -> False; (True,True,True) -> False; _ -> True
+    , \_ y z -> case (y,z) of (False,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,False) -> False; (False,_,_) -> True; (_,False,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,False) -> False; (True,False,True) -> False; (True,True,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,False) -> False; (True,_,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,False) -> False; (True,False,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,False) -> False; (True,True,_) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,False) -> False; (True,True,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,False) -> False; (True,True,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,False) -> True; (True,True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,False) -> True; (True,True,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,False) -> True; (True,True,_) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,False) -> True; (True,False,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,False) -> True; (True,_,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,False) -> True; (True,False,True) -> True; (True,True,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,False) -> True; (False,_,_) -> False; (_,False,False) -> False; _ -> True
+    , \_ y z -> case (y,z) of (False,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (_,False,False) -> True; (True,True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (_,False,False) -> True; (True,_,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (_,False,False) -> True; (False,_,_) -> False; (_,False,_) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (_,False,False) -> True; (True,False,_) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (_,False,False) -> True; (True,False,_) -> True; (True,_,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (_,False,False) -> True; (True,False,_) -> True; (True,_,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (_,False,False) -> True; (False,_,_) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,False) -> True; (False,True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,False) -> True; (_,True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,False) -> True; (False,True,True) -> True; (True,True,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,False) -> True; (_,False,_) -> False; (False,_,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,False) -> True; (False,True,True) -> True; (True,False,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,False) -> True; (False,False,_) -> False; (_,_,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,False) -> True; (False,False,True) -> False; (False,True,False) -> False; (False,True,True) -> True; ...
+    , \x y z -> case (x,y,z) of (False,False,True) -> False; (False,True,False) -> False; (True,False,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (_,False,False) -> True; (False,True,True) -> True; _ -> False
+    , \_ y z -> case (y,z) of (False,False) -> True; (True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (_,False,False) -> True; (False,True,True) -> True; (True,_,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (_,False,True) -> False; (False,True,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (_,False,False) -> True; (False,True,True) -> True; (True,False,_) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,True) -> False; (_,True,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,True) -> False; (False,True,False) -> False; (True,True,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,True) -> False; (False,True,False) -> False; _ -> True
+    , \x _ z -> case (x,z) of (False,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,_,False) -> True; (True,True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,_,False) -> True; (_,True,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,_,False) -> True; (False,_,_) -> False; (_,False,_) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,_,False) -> True; (True,False,True) -> True; _ -> False
+    , \x _ z -> case (x,z) of (False,False) -> True; (True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,_,False) -> True; (True,False,True) -> True; (_,True,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,_,True) -> False; (True,False,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,_,False) -> True; (_,False,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,_,False) -> True; (_,False,False) -> True; (True,True,True) -> True; _ -> False
+    , \_ _ z -> case z of False -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,_,True) -> False; (_,False,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,_,False) -> True; (_,False,False) -> True; (True,False,_) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,_,True) -> False; (True,True,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,_,True) -> False; (_,True,True) -> False; _ -> True
+    , \x _ z -> case (x,z) of (False,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,_,False) -> True; (False,True,_) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,_,False) -> True; (False,True,_) -> True; (_,True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,_,False) -> True; (False,True,_) -> True; (_,True,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,_,False) -> True; (_,False,_) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,_,False) -> True; (False,True,_) -> True; (True,False,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,True) -> False; (True,_,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,True) -> False; (True,False,False) -> False; (True,True,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,True) -> False; (True,False,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,_,False) -> True; (_,False,False) -> True; (False,True,_) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (_,False,True) -> False; (True,True,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (_,False,True) -> False; (True,_,True) -> False; _ -> True
+    , \_ y z -> case (y,z) of (False,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,True) -> False; (True,True,_) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,True) -> False; (True,True,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,True) -> False; (True,True,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,True) -> False; _ -> True
+    , \x y _ -> case (x,y) of (False,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,_) -> True; (True,True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,_) -> True; (True,True,False) -> True; _ -> False
+    , \x y _ -> case (x,y) of (False,False) -> True; (True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,_) -> True; (_,False,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,_) -> True; (False,_,_) -> False; (_,_,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,_) -> True; (_,False,True) -> True; (True,True,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,True,_) -> False; (True,False,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,_) -> True; (_,False,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,_) -> True; (_,False,False) -> True; (True,True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,_) -> True; (_,False,False) -> True; (True,_,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,True,_) -> False; (True,False,True) -> False; _ -> True
+    , \_ y _ -> case y of False -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,True,_) -> False; (_,True,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,True,_) -> False; (_,True,True) -> False; _ -> True
+    , \x y _ -> case (x,y) of (False,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,_) -> True; (False,_,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,_) -> True; (False,_,True) -> True; (_,True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,_) -> True; (False,_,True) -> True; (True,True,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,True,False) -> False; (True,False,_) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,_) -> True; (False,_,True) -> True; (_,False,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,_) -> True; (_,_,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,True,False) -> False; (True,False,False) -> False; (True,True,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,True,False) -> False; (True,False,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,_) -> True; (_,False,False) -> True; (False,_,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (_,True,False) -> False; (True,False,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,True,False) -> False; (True,_,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,True,False) -> False; (True,False,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (_,True,False) -> False; (True,True,_) -> False; _ -> True
+    , \_ y z -> case (y,z) of (True,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,True,False) -> False; (True,True,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,True,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,_) -> True; (False,_,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,_) -> True; (False,_,False) -> True; (True,True,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,False,_) -> True; (False,_,False) -> True; (_,True,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,True,True) -> False; (True,False,_) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,_) -> True; (False,_,False) -> True; (_,False,True) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,True,True) -> False; (True,_,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (_,True,True) -> False; (True,False,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,True,True) -> False; (True,False,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,_) -> True; (False,_,False) -> True; (_,False,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,True,True) -> False; (True,False,True) -> False; (True,True,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,False,_) -> True; (_,_,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,True,True) -> False; (True,False,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,_,False) -> True; (_,False,_) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (False,True,True) -> False; (True,True,False) -> False; _ -> True
+    , \_ y z -> case (y,z) of (True,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,True,True) -> False; _ -> True
+    , \x _ _ -> case x of False -> True; _ -> False
+    , \x y z -> case (x,y,z) of (True,False,_) -> False; (True,_,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (True,False,_) -> False; (True,_,True) -> False; _ -> True
+    , \x y _ -> case (x,y) of (True,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (True,_,False) -> False; (True,True,_) -> False; _ -> True
+    , \x _ z -> case (x,z) of (True,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (True,False,False) -> False; (True,True,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (True,False,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (False,_,_) -> True; (_,False,False) -> True; _ -> False
+    , \x y z -> case (x,y,z) of (True,False,True) -> False; (True,True,False) -> False; _ -> True
+    , \x _ z -> case (x,z) of (True,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (True,False,True) -> False; _ -> True
+    , \x y _ -> case (x,y) of (True,True) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (True,True,False) -> False; _ -> True
+    , \x y z -> case (x,y,z) of (True,True,True) -> False; _ -> True
+    , \_ _ _ -> True
+    ]
+  ]
diff --git a/bench/tiers-txt/4cases-Bool-Bool-Bool.txt b/bench/tiers-txt/4cases-Bool-Bool-Bool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-Bool-Bool-Bool.txt
@@ -0,0 +1,27 @@
+map length (tiers :: [[ Bool->Bool->Bool ]])  =  [16]
+
+length (list :: [ Bool->Bool->Bool ])  =  Infinity
+
+allUnique (list :: [ Bool->Bool->Bool ])  =  True
+
+ratioRepetitions (list :: [ Bool->Bool->Bool ])  =  0 % 1
+
+tiers :: [Bool->Bool->Bool]  =
+  [ [ \_ _ -> False
+    , \x y -> case (x,y) of (True,True) -> True; _ -> False
+    , \x y -> case (x,y) of (True,False) -> True; _ -> False
+    , \x _ -> case x of False -> False; _ -> True
+    , \x y -> case (x,y) of (False,True) -> True; _ -> False
+    , \_ y -> case y of False -> False; _ -> True
+    , \x y -> case (x,y) of (False,False) -> False; (True,True) -> False; _ -> True
+    , \x y -> case (x,y) of (False,False) -> False; _ -> True
+    , \x y -> case (x,y) of (False,False) -> True; _ -> False
+    , \x y -> case (x,y) of (False,False) -> True; (True,True) -> True; _ -> False
+    , \_ y -> case y of False -> True; _ -> False
+    , \x y -> case (x,y) of (False,True) -> False; _ -> True
+    , \x _ -> case x of False -> True; _ -> False
+    , \x y -> case (x,y) of (True,False) -> False; _ -> True
+    , \x y -> case (x,y) of (True,True) -> False; _ -> True
+    , \_ _ -> True
+    ]
+  ]
diff --git a/bench/tiers-txt/4cases-Bool-Bool.txt b/bench/tiers-txt/4cases-Bool-Bool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-Bool-Bool.txt
@@ -0,0 +1,15 @@
+map length (tiers :: [[ Bool->Bool ]])  =  [4]
+
+length (list :: [ Bool->Bool ])  =  4
+
+allUnique (list :: [ Bool->Bool ])  =  True
+
+ratioRepetitions (list :: [ Bool->Bool ])  =  0 % 1
+
+tiers :: [Bool->Bool]  =
+  [ [ \_ -> False
+    , \x -> case x of False -> False; True -> True
+    , \x -> case x of False -> True; True -> False
+    , \_ -> True
+    ]
+  ]
diff --git a/bench/tiers-txt/4cases-Bool-Int-Bool.txt b/bench/tiers-txt/4cases-Bool-Int-Bool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-Bool-Int-Bool.txt
@@ -0,0 +1,157 @@
+map length (tiers :: [[ Bool->Int->Bool ]])  =  [4,8,12,24,36,56,...]
+
+length (list :: [ Bool->Int->Bool ])  =  Infinity
+
+allUnique (list :: [ Bool->Int->Bool ])  =  True
+
+ratioRepetitions (list :: [ Bool->Int->Bool ])  =  0 % 1
+
+tiers :: [Bool->Int->Bool]  =
+  [ [ \_ _ -> False
+    , \x _ -> case x of False -> False; _ -> True
+    , \x _ -> case x of False -> True; _ -> False
+    , \_ _ -> True
+    ]
+  , [ \x y -> case (x,y) of (True,0) -> True; _ -> False
+    , \x y -> case (x,y) of (False,_) -> False; (_,0) -> False; _ -> True
+    , \x y -> case (x,y) of (False,_) -> True; (_,0) -> True; _ -> False
+    , \x y -> case (x,y) of (True,0) -> False; _ -> True
+    , \x y -> case (x,y) of (False,0) -> True; _ -> False
+    , \x y -> case (x,y) of (_,0) -> True; (False,_) -> False; _ -> True
+    , \x y -> case (x,y) of (_,0) -> False; (False,_) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> False; _ -> True
+    ]
+  , [ \x y -> case (x,y) of (True,1) -> True; _ -> False
+    , \x y -> case (x,y) of (False,_) -> False; (_,0) -> True; (_,1) -> False; _ -> True
+    , \x y -> case (x,y) of (False,_) -> True; (_,0) -> False; (_,1) -> True; _ -> False
+    , \x y -> case (x,y) of (True,1) -> False; _ -> True
+    , \_ y -> case y of 0 -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> True; (_,0) -> False; (False,_) -> False; _ -> True
+    , \x y -> case (x,y) of (False,0) -> False; (_,0) -> True; (False,_) -> True; _ -> False
+    , \_ y -> case y of 0 -> False; _ -> True
+    , \x y -> case (x,y) of (False,1) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> True; (True,1) -> True; ...
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> False; (True,1) -> False; ...
+    , \x y -> case (x,y) of (False,1) -> False; _ -> True
+    ]
+  , [ \x y -> case (x,y) of (True,0) -> True; (True,1) -> True; _ -> False
+    , \x y -> case (x,y) of (True,-1) -> True; _ -> False
+    , \x y -> case (x,y) of (False,_) -> False; (_,0) -> False; (_,1) -> False; _ -> True
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> False; (True,1) -> True; ...
+    , \x y -> case (x,y) of (False,_) -> True; (_,0) -> True; (_,1) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> True; (True,1) -> False; ...
+    , \x y -> case (x,y) of (True,0) -> False; (True,1) -> False; _ -> True
+    , \x y -> case (x,y) of (True,-1) -> False; _ -> True
+    , \x y -> case (x,y) of (False,0) -> True; (True,1) -> True; _ -> False
+    , \x y -> case (x,y) of (_,0) -> True; (False,_) -> False; (_,1) -> False; _ -> True
+    , \x y -> case (x,y) of (_,0) -> False; (False,_) -> True; (_,1) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> False; (True,1) -> False; _ -> True
+    , \x y -> case (x,y) of (True,0) -> True; (False,1) -> True; _ -> False
+    , \x y -> case (x,y) of (_,0) -> False; (_,1) -> True; (False,_) -> False; _ -> True
+    , \x y -> case (x,y) of (_,0) -> True; (_,1) -> False; (False,_) -> True; _ -> False
+    , \x y -> case (x,y) of (True,0) -> False; (False,1) -> False; _ -> True
+    , \x y -> case (x,y) of (False,0) -> True; (False,1) -> True; _ -> False
+    , \x y -> case (x,y) of (_,0) -> True; (_,1) -> True; (False,_) -> False; _ -> True
+    , \x y -> case (x,y) of (False,-1) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> False; (True,1) -> True; ...
+    , \x y -> case (x,y) of (_,0) -> False; (_,1) -> False; (False,_) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> False; (False,1) -> False; _ -> True
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> True; (True,1) -> False; ...
+    , \x y -> case (x,y) of (False,-1) -> False; _ -> True
+    ]
+  , [ \x y -> case (x,y) of (True,0) -> True; (True,-1) -> True; _ -> False
+    , \x y -> case (x,y) of (True,2) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> False; (False,1) -> False; (True,1) -> True; ...
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> False; (True,1) -> True; ...
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> True; (False,1) -> True; (True,1) -> False; ...
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> True; (True,1) -> False; ...
+    , \x y -> case (x,y) of (True,0) -> False; (True,-1) -> False; _ -> True
+    , \x y -> case (x,y) of (True,2) -> False; _ -> True
+    , \x y -> case (x,y) of (_,0) -> True; (True,1) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> True; (True,-1) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> False; (True,1) -> False; ...
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> True; (False,1) -> False; (True,1) -> True; ...
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> True; (True,1) -> True; ...
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> False; (False,1) -> True; (True,1) -> False; ...
+    , \x y -> case (x,y) of (_,0) -> False; (True,1) -> False; _ -> True
+    , \x y -> case (x,y) of (False,0) -> False; (True,-1) -> False; _ -> True
+    , \_ y -> case y of 1 -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> True; (True,1) -> False; ...
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> False; (True,1) -> True; ...
+    , \_ y -> case y of 1 -> False; _ -> True
+    , \x y -> case (x,y) of (_,0) -> True; (False,1) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> True; (True,1) -> True; ...
+    , \x y -> case (x,y) of (True,0) -> True; (False,-1) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> False; (False,1) -> False; (True,1) -> True; ...
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> False; (True,1) -> False; ...
+    , \x y -> case (x,y) of (_,0) -> False; (False,1) -> False; _ -> True
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> True; (False,1) -> True; (True,1) -> False; ...
+    , \x y -> case (x,y) of (True,0) -> False; (False,-1) -> False; _ -> True
+    , \x y -> case (x,y) of (False,0) -> True; (False,-1) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> True; (False,1) -> False; (True,1) -> True; ...
+    , \x y -> case (x,y) of (False,2) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> False; (True,1) -> True; ...
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> False; (False,1) -> True; (True,1) -> False; ...
+    , \x y -> case (x,y) of (False,0) -> False; (False,-1) -> False; _ -> True
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> True; (True,1) -> False; ...
+    , \x y -> case (x,y) of (False,2) -> False; _ -> True
+    ]
+  , [ \x y -> case (x,y) of (True,0) -> True; (True,2) -> True; _ -> False
+    , \x y -> case (x,y) of (True,1) -> True; (True,-1) -> True; _ -> False
+    , \x y -> case (x,y) of (True,-2) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> False; (False,1) -> False; (True,1) -> True; ...
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> False; (True,1) -> False; ...
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> False; (True,1) -> True; ...
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> True; (False,1) -> True; (True,1) -> False; ...
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> True; (True,1) -> True; ...
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> True; (True,1) -> False; ...
+    , \x y -> case (x,y) of (True,0) -> False; (True,2) -> False; _ -> True
+    , \x y -> case (x,y) of (True,1) -> False; (True,-1) -> False; _ -> True
+    , \x y -> case (x,y) of (True,-2) -> False; _ -> True
+    , \x y -> case (x,y) of (_,0) -> True; (True,-1) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> True; (True,2) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> False; (True,1) -> True; ...
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> True; (False,1) -> False; (True,1) -> True; ...
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> True; (True,1) -> False; ...
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> False; (False,1) -> True; (True,1) -> False; ...
+    , \x y -> case (x,y) of (_,0) -> False; (True,-1) -> False; _ -> True
+    , \x y -> case (x,y) of (False,0) -> False; (True,2) -> False; _ -> True
+    , \x y -> case (x,y) of (True,0) -> True; (_,1) -> True; _ -> False
+    , \x y -> case (x,y) of (False,1) -> True; (True,-1) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> False; (False,1) -> True; (True,1) -> False; ...
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> True; (True,1) -> True; ...
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> True; (False,1) -> False; (True,1) -> True; ...
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> False; (True,1) -> False; ...
+    , \x y -> case (x,y) of (True,0) -> False; (_,1) -> False; _ -> True
+    , \x y -> case (x,y) of (False,1) -> False; (True,-1) -> False; _ -> True
+    , \x y -> case (x,y) of (False,0) -> True; (_,1) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> True; (False,1) -> True; (True,1) -> False; ...
+    , \x y -> case (x,y) of (True,1) -> True; (False,-1) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> False; (True,1) -> False; ...
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> False; (False,1) -> False; (True,1) -> True; ...
+    , \x y -> case (x,y) of (False,0) -> False; (_,1) -> False; _ -> True
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> True; (True,1) -> True; ...
+    , \x y -> case (x,y) of (True,1) -> False; (False,-1) -> False; _ -> True
+    , \x y -> case (x,y) of (_,0) -> True; (False,-1) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> False; (True,1) -> True; ...
+    , \x y -> case (x,y) of (True,0) -> True; (False,2) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> False; (False,1) -> False; (True,1) -> True; ...
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> True; (True,1) -> False; ...
+    , \x y -> case (x,y) of (_,0) -> False; (False,-1) -> False; _ -> True
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> True; (False,1) -> True; (True,1) -> False; ...
+    , \x y -> case (x,y) of (True,0) -> False; (False,2) -> False; _ -> True
+    , \x y -> case (x,y) of (False,0) -> True; (False,2) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> True; (False,1) -> False; (True,1) -> True; ...
+    , \x y -> case (x,y) of (False,1) -> True; (False,-1) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> True; (True,1) -> True; ...
+    , \x y -> case (x,y) of (False,-2) -> True; _ -> False
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> False; (True,1) -> True; ...
+    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> False; (False,1) -> True; (True,1) -> False; ...
+    , \x y -> case (x,y) of (False,0) -> False; (False,2) -> False; _ -> True
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> False; (True,1) -> False; ...
+    , \x y -> case (x,y) of (False,1) -> False; (False,-1) -> False; _ -> True
+    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> True; (True,1) -> False; ...
+    , \x y -> case (x,y) of (False,-2) -> False; _ -> True
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/4cases-Bool-MBool.txt b/bench/tiers-txt/4cases-Bool-MBool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-Bool-MBool.txt
@@ -0,0 +1,21 @@
+map length (tiers :: [[ Bool->Maybe Bool ]])  =  [1,4,4]
+
+length (list :: [ Bool->Maybe Bool ])  =  9
+
+allUnique (list :: [ Bool->Maybe Bool ])  =  True
+
+ratioRepetitions (list :: [ Bool->Maybe Bool ])  =  0 % 1
+
+tiers :: [Bool->Maybe Bool]  =
+  [ [\_ -> Nothing]
+  , [ \x -> case x of False -> Nothing; True -> Just False
+    , \x -> case x of False -> Nothing; True -> Just True
+    , \x -> case x of False -> Just False; True -> Nothing
+    , \x -> case x of False -> Just True; True -> Nothing
+    ]
+  , [ \_ -> Just False
+    , \x -> case x of False -> Just False; True -> Just True
+    , \x -> case x of False -> Just True; True -> Just False
+    , \_ -> Just True
+    ]
+  ]
diff --git a/bench/tiers-txt/4cases-Bool-U.txt b/bench/tiers-txt/4cases-Bool-U.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-Bool-U.txt
@@ -0,0 +1,10 @@
+map length (tiers :: [[ Bool->() ]])  =  [1]
+
+length (list :: [ Bool->() ])  =  1
+
+allUnique (list :: [ Bool->() ])  =  True
+
+ratioRepetitions (list :: [ Bool->() ])  =  0 % 1
+
+tiers :: [Bool->()]  =
+  [[\_ -> ()]]
diff --git a/bench/tiers-txt/4cases-Bools-Bools.txt b/bench/tiers-txt/4cases-Bools-Bools.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-Bools-Bools.txt
@@ -0,0 +1,140 @@
+map length (tiers :: [[ [Bool]->[Bool] ]])  =  [1,2,8,26,88,...]
+
+length (list :: [ [Bool]->[Bool] ])  =  Infinity
+
+allUnique (list :: [ [Bool]->[Bool] ])  =  True
+
+ratioRepetitions (list :: [ [Bool]->[Bool] ])  =  0 % 1
+
+tiers :: [[Bool]->[Bool]]  =
+  [ [\_ -> []]
+  , [ \_ -> [False]
+    , \_ -> [True]
+    ]
+  , [ \x -> case x of [] -> [False]; _ -> []
+    , \x -> case x of [] -> [True]; _ -> []
+    , \x -> case x of [] -> []; _ -> [False]
+    , \x -> case x of [] -> []; _ -> [True]
+    , \_ -> [False,False]
+    , \_ -> [False,True]
+    , \_ -> [True,False]
+    , \_ -> [True,True]
+    ]
+  , [ \x -> case x of [] -> [False,False]; _ -> []
+    , \x -> case x of [] -> [False,True]; _ -> []
+    , \x -> case x of [] -> [True,False]; _ -> []
+    , \x -> case x of [] -> [True,True]; _ -> []
+    , \x -> case x of [False] -> [False]; _ -> []
+    , \x -> case x of [False] -> [True]; _ -> []
+    , \x -> case x of [True] -> [False]; _ -> []
+    , \x -> case x of [True] -> [True]; _ -> []
+    , \x -> case x of [] -> [True]; _ -> [False]
+    , \x -> case x of [False] -> []; _ -> [False]
+    , \x -> case x of [True] -> []; _ -> [False]
+    , \x -> case x of [] -> [False]; _ -> [True]
+    , \x -> case x of [False] -> []; _ -> [True]
+    , \x -> case x of [True] -> []; _ -> [True]
+    , \x -> case x of [] -> []; _ -> [False,False]
+    , \x -> case x of [] -> []; _ -> [False,True]
+    , \x -> case x of [] -> []; _ -> [True,False]
+    , \x -> case x of [] -> []; _ -> [True,True]
+    , \_ -> [False,False,False]
+    , \_ -> [False,False,True]
+    , \_ -> [False,True,False]
+    , \_ -> [False,True,True]
+    , \_ -> [True,False,False]
+    , \_ -> [True,False,True]
+    , \_ -> [True,True,False]
+    , \_ -> [True,True,True]
+    ]
+  , [ \x -> case x of [] -> [False,False,False]; _ -> []
+    , \x -> case x of [] -> [False,False,True]; _ -> []
+    , \x -> case x of [] -> [False,True,False]; _ -> []
+    , \x -> case x of [] -> [False,True,True]; _ -> []
+    , \x -> case x of [] -> [True,False,False]; _ -> []
+    , \x -> case x of [] -> [True,False,True]; _ -> []
+    , \x -> case x of [] -> [True,True,False]; _ -> []
+    , \x -> case x of [] -> [True,True,True]; _ -> []
+    , \x -> case x of [False] -> [False,False]; _ -> []
+    , \x -> case x of [False] -> [False,True]; _ -> []
+    , \x -> case x of [False] -> [True,False]; _ -> []
+    , \x -> case x of [False] -> [True,True]; _ -> []
+    , \x -> case x of [True] -> [False,False]; _ -> []
+    , \x -> case x of [True] -> [False,True]; _ -> []
+    , \x -> case x of [True] -> [True,False]; _ -> []
+    , \x -> case x of [True] -> [True,True]; _ -> []
+    , \x -> case x of [False,False] -> [False]; _ -> []
+    , \x -> case x of [False,False] -> [True]; _ -> []
+    , \x -> case x of [False,True] -> [False]; _ -> []
+    , \x -> case x of [False,True] -> [True]; _ -> []
+    , \x -> case x of [True,False] -> [False]; _ -> []
+    , \x -> case x of [True,False] -> [True]; _ -> []
+    , \x -> case x of [True,True] -> [False]; _ -> []
+    , \x -> case x of [True,True] -> [True]; _ -> []
+    , \x -> case x of [] -> [False,False]; _ -> [False]
+    , \x -> case x of [] -> [False,True]; _ -> [False]
+    , \x -> case x of [] -> [True,False]; _ -> [False]
+    , \x -> case x of [] -> [True,True]; _ -> [False]
+    , \x -> case x of [False] -> [True]; _ -> [False]
+    , \x -> case x of [True] -> [True]; _ -> [False]
+    , \x -> case x of [] -> []; [False] -> []; _ -> [False]
+    , \x -> case x of [] -> []; [True] -> []; _ -> [False]
+    , \x -> case x of [False,False] -> []; _ -> [False]
+    , \x -> case x of [False,True] -> []; _ -> [False]
+    , \x -> case x of [True,False] -> []; _ -> [False]
+    , \x -> case x of [True,True] -> []; _ -> [False]
+    , \x -> case x of [] -> [False,False]; _ -> [True]
+    , \x -> case x of [] -> [False,True]; _ -> [True]
+    , \x -> case x of [] -> [True,False]; _ -> [True]
+    , \x -> case x of [] -> [True,True]; _ -> [True]
+    , \x -> case x of [False] -> [False]; _ -> [True]
+    , \x -> case x of [True] -> [False]; _ -> [True]
+    , \x -> case x of [] -> []; [False] -> []; _ -> [True]
+    , \x -> case x of [] -> []; [True] -> []; _ -> [True]
+    , \x -> case x of [False,False] -> []; _ -> [True]
+    , \x -> case x of [False,True] -> []; _ -> [True]
+    , \x -> case x of [True,False] -> []; _ -> [True]
+    , \x -> case x of [True,True] -> []; _ -> [True]
+    , \x -> case x of [] -> [False]; _ -> [False,False]
+    , \x -> case x of [] -> [True]; _ -> [False,False]
+    , \x -> case x of [False] -> []; _ -> [False,False]
+    , \x -> case x of [True] -> []; _ -> [False,False]
+    , \x -> case x of [] -> [False]; _ -> [False,True]
+    , \x -> case x of [] -> [True]; _ -> [False,True]
+    , \x -> case x of [False] -> []; _ -> [False,True]
+    , \x -> case x of [True] -> []; _ -> [False,True]
+    , \x -> case x of [] -> [False]; _ -> [True,False]
+    , \x -> case x of [] -> [True]; _ -> [True,False]
+    , \x -> case x of [False] -> []; _ -> [True,False]
+    , \x -> case x of [True] -> []; _ -> [True,False]
+    , \x -> case x of [] -> [False]; _ -> [True,True]
+    , \x -> case x of [] -> [True]; _ -> [True,True]
+    , \x -> case x of [False] -> []; _ -> [True,True]
+    , \x -> case x of [True] -> []; _ -> [True,True]
+    , \x -> case x of [] -> []; _ -> [False,False,False]
+    , \x -> case x of [] -> []; _ -> [False,False,True]
+    , \x -> case x of [] -> []; _ -> [False,True,False]
+    , \x -> case x of [] -> []; _ -> [False,True,True]
+    , \x -> case x of [] -> []; _ -> [True,False,False]
+    , \x -> case x of [] -> []; _ -> [True,False,True]
+    , \x -> case x of [] -> []; _ -> [True,True,False]
+    , \x -> case x of [] -> []; _ -> [True,True,True]
+    , \_ -> [False,False,False,False]
+    , \_ -> [False,False,False,True]
+    , \_ -> [False,False,True,False]
+    , \_ -> [False,False,True,True]
+    , \_ -> [False,True,False,False]
+    , \_ -> [False,True,False,True]
+    , \_ -> [False,True,True,False]
+    , \_ -> [False,True,True,True]
+    , \_ -> [True,False,False,False]
+    , \_ -> [True,False,False,True]
+    , \_ -> [True,False,True,False]
+    , \_ -> [True,False,True,True]
+    , \_ -> [True,True,False,False]
+    , \_ -> [True,True,False,True]
+    , \_ -> [True,True,True,False]
+    , \_ -> [True,True,True,True]
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/4cases-Int-Bool-Bool.txt b/bench/tiers-txt/4cases-Int-Bool-Bool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-Int-Bool-Bool.txt
@@ -0,0 +1,225 @@
+map length (tiers :: [[ Int->Bool->Bool ]])  =  [4,12,12,48,48,84,...]
+
+length (list :: [ Int->Bool->Bool ])  =  Infinity
+
+allUnique (list :: [ Int->Bool->Bool ])  =  True
+
+ratioRepetitions (list :: [ Int->Bool->Bool ])  =  0 % 1
+
+tiers :: [Int->Bool->Bool]  =
+  [ [ \_ _ -> False
+    , \_ y -> case y of False -> False; _ -> True
+    , \_ y -> case y of False -> True; _ -> False
+    , \_ _ -> True
+    ]
+  , [ \x y -> case (x,y) of (0,True) -> True; _ -> False
+    , \x y -> case (x,y) of (0,False) -> True; _ -> False
+    , \x _ -> case x of 0 -> True; _ -> False
+    , \x y -> case (x,y) of (0,_) -> False; (_,False) -> False; _ -> True
+    , \x y -> case (x,y) of (0,False) -> True; (0,_) -> False; (_,False) -> False; _ -> True
+    , \x y -> case (x,y) of (0,_) -> True; (_,False) -> False; _ -> True
+    , \x y -> case (x,y) of (0,_) -> False; (_,False) -> True; _ -> False
+    , \x y -> case (x,y) of (0,False) -> False; (0,_) -> True; (_,False) -> True; _ -> False
+    , \x y -> case (x,y) of (0,_) -> True; (_,False) -> True; _ -> False
+    , \x _ -> case x of 0 -> False; _ -> True
+    , \x y -> case (x,y) of (0,False) -> False; _ -> True
+    , \x y -> case (x,y) of (0,True) -> False; _ -> True
+    ]
+  , [ \x y -> case (x,y) of (1,True) -> True; _ -> False
+    , \x y -> case (x,y) of (1,False) -> True; _ -> False
+    , \x _ -> case x of 1 -> True; _ -> False
+    , \x y -> case (x,y) of (_,False) -> False; (0,_) -> True; (1,_) -> False; _ -> True
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (_,False) -> True; (0,_) -> False; (1,_) -> True; _ -> False
+    , \x _ -> case x of 1 -> False; _ -> True
+    , \x y -> case (x,y) of (1,False) -> False; _ -> True
+    , \x y -> case (x,y) of (1,True) -> False; _ -> True
+    ]
+  , [ \x y -> case (x,y) of (0,True) -> True; (1,True) -> True; _ -> False
+    , \x y -> case (x,y) of (0,True) -> True; (1,False) -> True; _ -> False
+    , \x y -> case (x,y) of (0,True) -> True; (1,_) -> True; _ -> False
+    , \x y -> case (x,y) of (0,False) -> True; (1,True) -> True; _ -> False
+    , \x y -> case (x,y) of (0,False) -> True; (1,False) -> True; _ -> False
+    , \x y -> case (x,y) of (0,False) -> True; (1,_) -> True; _ -> False
+    , \x y -> case (x,y) of (0,_) -> True; (1,True) -> True; _ -> False
+    , \x y -> case (x,y) of (0,_) -> True; (1,False) -> True; _ -> False
+    , \x _ -> case x of 0 -> True; 1 -> True; _ -> False
+    , \x y -> case (x,y) of (-1,True) -> True; _ -> False
+    , \x y -> case (x,y) of (-1,False) -> True; _ -> False
+    , \x _ -> case x of -1 -> True; _ -> False
+    , \x y -> case (x,y) of (0,_) -> False; (_,False) -> False; (1,_) -> False; _ -> True
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,_) -> False; (1,_) -> True; (_,False) -> False; _ -> True
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,_) -> True; (1,_) -> False; (_,False) -> False; _ -> True
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,_) -> True; (1,_) -> True; (_,False) -> False; _ -> True
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,_) -> False; (1,_) -> False; (_,False) -> True; _ -> False
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,_) -> False; (1,_) -> True; (_,False) -> True; _ -> False
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,_) -> True; (1,_) -> False; (_,False) -> True; _ -> False
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,_) -> True; (_,False) -> True; (1,_) -> True; _ -> False
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
+    , \x _ -> case x of 0 -> False; 1 -> False; _ -> True
+    , \x y -> case (x,y) of (0,_) -> False; (1,False) -> False; _ -> True
+    , \x y -> case (x,y) of (0,_) -> False; (1,True) -> False; _ -> True
+    , \x y -> case (x,y) of (0,False) -> False; (1,_) -> False; _ -> True
+    , \x y -> case (x,y) of (0,False) -> False; (1,False) -> False; _ -> True
+    , \x y -> case (x,y) of (0,False) -> False; (1,True) -> False; _ -> True
+    , \x y -> case (x,y) of (0,True) -> False; (1,_) -> False; _ -> True
+    , \x y -> case (x,y) of (0,True) -> False; (1,False) -> False; _ -> True
+    , \x y -> case (x,y) of (0,True) -> False; (1,True) -> False; _ -> True
+    , \x _ -> case x of -1 -> False; _ -> True
+    , \x y -> case (x,y) of (-1,False) -> False; _ -> True
+    , \x y -> case (x,y) of (-1,True) -> False; _ -> True
+    ]
+  , [ \x y -> case (x,y) of (0,True) -> True; (-1,True) -> True; _ -> False
+    , \x y -> case (x,y) of (0,True) -> True; (-1,False) -> True; _ -> False
+    , \x y -> case (x,y) of (0,True) -> True; (-1,_) -> True; _ -> False
+    , \x y -> case (x,y) of (0,False) -> True; (-1,True) -> True; _ -> False
+    , \x y -> case (x,y) of (0,False) -> True; (-1,False) -> True; _ -> False
+    , \x y -> case (x,y) of (0,False) -> True; (-1,_) -> True; _ -> False
+    , \x y -> case (x,y) of (0,_) -> True; (-1,True) -> True; _ -> False
+    , \x y -> case (x,y) of (0,_) -> True; (-1,False) -> True; _ -> False
+    , \x _ -> case x of 0 -> True; -1 -> True; _ -> False
+    , \x y -> case (x,y) of (2,True) -> True; _ -> False
+    , \x y -> case (x,y) of (2,False) -> True; _ -> False
+    , \x _ -> case x of 2 -> True; _ -> False
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
+    , \x _ -> case x of 0 -> False; -1 -> False; _ -> True
+    , \x y -> case (x,y) of (0,_) -> False; (-1,False) -> False; _ -> True
+    , \x y -> case (x,y) of (0,_) -> False; (-1,True) -> False; _ -> True
+    , \x y -> case (x,y) of (0,False) -> False; (-1,_) -> False; _ -> True
+    , \x y -> case (x,y) of (0,False) -> False; (-1,False) -> False; _ -> True
+    , \x y -> case (x,y) of (0,False) -> False; (-1,True) -> False; _ -> True
+    , \x y -> case (x,y) of (0,True) -> False; (-1,_) -> False; _ -> True
+    , \x y -> case (x,y) of (0,True) -> False; (-1,False) -> False; _ -> True
+    , \x y -> case (x,y) of (0,True) -> False; (-1,True) -> False; _ -> True
+    , \x _ -> case x of 2 -> False; _ -> True
+    , \x y -> case (x,y) of (2,False) -> False; _ -> True
+    , \x y -> case (x,y) of (2,True) -> False; _ -> True
+    ]
+  , [ \x y -> case (x,y) of (0,True) -> True; (2,True) -> True; _ -> False
+    , \x y -> case (x,y) of (0,True) -> True; (2,False) -> True; _ -> False
+    , \x y -> case (x,y) of (0,True) -> True; (2,_) -> True; _ -> False
+    , \x y -> case (x,y) of (0,False) -> True; (2,True) -> True; _ -> False
+    , \x y -> case (x,y) of (0,False) -> True; (2,False) -> True; _ -> False
+    , \x y -> case (x,y) of (0,False) -> True; (2,_) -> True; _ -> False
+    , \x y -> case (x,y) of (0,_) -> True; (2,True) -> True; _ -> False
+    , \x y -> case (x,y) of (0,_) -> True; (2,False) -> True; _ -> False
+    , \x _ -> case x of 0 -> True; 2 -> True; _ -> False
+    , \x y -> case (x,y) of (1,True) -> True; (-1,True) -> True; _ -> False
+    , \x y -> case (x,y) of (1,True) -> True; (-1,False) -> True; _ -> False
+    , \x y -> case (x,y) of (1,True) -> True; (-1,_) -> True; _ -> False
+    , \x y -> case (x,y) of (1,False) -> True; (-1,True) -> True; _ -> False
+    , \x y -> case (x,y) of (1,False) -> True; (-1,False) -> True; _ -> False
+    , \x y -> case (x,y) of (1,False) -> True; (-1,_) -> True; _ -> False
+    , \x y -> case (x,y) of (1,_) -> True; (-1,True) -> True; _ -> False
+    , \x y -> case (x,y) of (1,_) -> True; (-1,False) -> True; _ -> False
+    , \x _ -> case x of 1 -> True; -1 -> True; _ -> False
+    , \x y -> case (x,y) of (-2,True) -> True; _ -> False
+    , \x y -> case (x,y) of (-2,False) -> True; _ -> False
+    , \x _ -> case x of -2 -> True; _ -> False
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> True; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
+    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
+    , \x _ -> case x of 0 -> False; 2 -> False; _ -> True
+    , \x y -> case (x,y) of (0,_) -> False; (2,False) -> False; _ -> True
+    , \x y -> case (x,y) of (0,_) -> False; (2,True) -> False; _ -> True
+    , \x y -> case (x,y) of (0,False) -> False; (2,_) -> False; _ -> True
+    , \x y -> case (x,y) of (0,False) -> False; (2,False) -> False; _ -> True
+    , \x y -> case (x,y) of (0,False) -> False; (2,True) -> False; _ -> True
+    , \x y -> case (x,y) of (0,True) -> False; (2,_) -> False; _ -> True
+    , \x y -> case (x,y) of (0,True) -> False; (2,False) -> False; _ -> True
+    , \x y -> case (x,y) of (0,True) -> False; (2,True) -> False; _ -> True
+    , \x _ -> case x of 1 -> False; -1 -> False; _ -> True
+    , \x y -> case (x,y) of (1,_) -> False; (-1,False) -> False; _ -> True
+    , \x y -> case (x,y) of (1,_) -> False; (-1,True) -> False; _ -> True
+    , \x y -> case (x,y) of (1,False) -> False; (-1,_) -> False; _ -> True
+    , \x y -> case (x,y) of (1,False) -> False; (-1,False) -> False; _ -> True
+    , \x y -> case (x,y) of (1,False) -> False; (-1,True) -> False; _ -> True
+    , \x y -> case (x,y) of (1,True) -> False; (-1,_) -> False; _ -> True
+    , \x y -> case (x,y) of (1,True) -> False; (-1,False) -> False; _ -> True
+    , \x y -> case (x,y) of (1,True) -> False; (-1,True) -> False; _ -> True
+    , \x _ -> case x of -2 -> False; _ -> True
+    , \x y -> case (x,y) of (-2,False) -> False; _ -> True
+    , \x y -> case (x,y) of (-2,True) -> False; _ -> True
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/4cases-Int-Int-Int-Int.txt b/bench/tiers-txt/4cases-Int-Int-Int-Int.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-Int-Int-Int-Int.txt
@@ -0,0 +1,47 @@
+map length (tiers :: [[ Int->Int->Int->Int ]])  =  [1,1,7,25,...]
+
+length (list :: [ Int->Int->Int->Int ])  =  Infinity
+
+allUnique (list :: [ Int->Int->Int->Int ])  =  True
+
+ratioRepetitions (list :: [ Int->Int->Int->Int ])  =  0 % 1
+
+tiers :: [Int->Int->Int->Int]  =
+  [ [\_ _ _ -> 0]
+  , [\_ _ _ -> 1]
+  , [ \x _ _ -> case x of 0 -> 1; _ -> 0
+    , \x _ _ -> case x of 0 -> 0; _ -> 1
+    , \_ y _ -> case y of 0 -> 1; _ -> 0
+    , \_ y _ -> case y of 0 -> 0; _ -> 1
+    , \_ _ z -> case z of 0 -> 1; _ -> 0
+    , \_ _ z -> case z of 0 -> 0; _ -> 1
+    , \_ _ _ -> -1
+    ]
+  , [ \x y _ -> case (x,y) of (0,0) -> 1; _ -> 0
+    , \x y _ -> case (x,y) of (_,0) -> 0; (0,_) -> 1; _ -> 0
+    , \x _ z -> case (x,z) of (0,0) -> 1; _ -> 0
+    , \x _ z -> case (x,z) of (_,0) -> 0; (0,_) -> 1; _ -> 0
+    , \x _ _ -> case x of 0 -> -1; _ -> 0
+    , \x _ _ -> case x of 1 -> 1; _ -> 0
+    , \x _ _ -> case x of 1 -> 0; _ -> 1
+    , \x y _ -> case (x,y) of (0,_) -> 0; (_,0) -> 1; _ -> 0
+    , \x y _ -> case (x,y) of (0,_) -> 0; (_,0) -> 0; _ -> 1
+    , \x _ z -> case (x,z) of (0,_) -> 0; (_,0) -> 1; _ -> 0
+    , \x _ z -> case (x,z) of (0,_) -> 0; (_,0) -> 0; _ -> 1
+    , \x _ _ -> case x of 0 -> 0; _ -> -1
+    , \_ y z -> case (y,z) of (0,0) -> 1; _ -> 0
+    , \_ y z -> case (y,z) of (_,0) -> 0; (0,_) -> 1; _ -> 0
+    , \_ y _ -> case y of 0 -> -1; _ -> 0
+    , \_ y _ -> case y of 1 -> 1; _ -> 0
+    , \_ y _ -> case y of 1 -> 0; _ -> 1
+    , \_ y z -> case (y,z) of (0,_) -> 0; (_,0) -> 1; _ -> 0
+    , \_ y z -> case (y,z) of (0,_) -> 0; (_,0) -> 0; _ -> 1
+    , \_ y _ -> case y of 0 -> 0; _ -> -1
+    , \_ _ z -> case z of 0 -> -1; _ -> 0
+    , \_ _ z -> case z of 1 -> 1; _ -> 0
+    , \_ _ z -> case z of 1 -> 0; _ -> 1
+    , \_ _ z -> case z of 0 -> 0; _ -> -1
+    , \_ _ _ -> 2
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/4cases-Int-Int-Int.txt b/bench/tiers-txt/4cases-Int-Int-Int.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-Int-Int-Int.txt
@@ -0,0 +1,151 @@
+map length (tiers :: [[ Int->Int->Int ]])  =  [1,1,5,13,35,81,...]
+
+length (list :: [ Int->Int->Int ])  =  Infinity
+
+allUnique (list :: [ Int->Int->Int ])  =  True
+
+ratioRepetitions (list :: [ Int->Int->Int ])  =  0 % 1
+
+tiers :: [Int->Int->Int]  =
+  [ [\_ _ -> 0]
+  , [\_ _ -> 1]
+  , [ \x _ -> case x of 0 -> 1; _ -> 0
+    , \x _ -> case x of 0 -> 0; _ -> 1
+    , \_ y -> case y of 0 -> 1; _ -> 0
+    , \_ y -> case y of 0 -> 0; _ -> 1
+    , \_ _ -> -1
+    ]
+  , [ \x y -> case (x,y) of (0,0) -> 1; _ -> 0
+    , \x y -> case (x,y) of (_,0) -> 0; (0,_) -> 1; _ -> 0
+    , \x _ -> case x of 0 -> -1; _ -> 0
+    , \x _ -> case x of 1 -> 1; _ -> 0
+    , \x _ -> case x of 1 -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; _ -> 1
+    , \x _ -> case x of 0 -> 0; _ -> -1
+    , \_ y -> case y of 0 -> -1; _ -> 0
+    , \_ y -> case y of 1 -> 1; _ -> 0
+    , \_ y -> case y of 1 -> 0; _ -> 1
+    , \_ y -> case y of 0 -> 0; _ -> -1
+    , \_ _ -> 2
+    ]
+  , [ \x y -> case (x,y) of (0,0) -> -1; _ -> 0
+    , \x y -> case (x,y) of (0,1) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,0) -> 1; (0,1) -> 0; (1,0) -> 0; (0,-1) -> 1; ...
+    , \x y -> case (x,y) of (_,0) -> 0; (0,_) -> -1; _ -> 0
+    , \x _ -> case x of 0 -> 2; _ -> 0
+    , \x y -> case (x,y) of (1,0) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (1,_) -> 1; _ -> 0
+    , \x _ -> case x of 1 -> -1; _ -> 0
+    , \x _ -> case x of -1 -> 1; _ -> 0
+    , \x y -> case (x,y) of (_,0) -> 1; (0,_) -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,0) -> 0; _ -> 1
+    , \x _ -> case x of 0 -> -1; _ -> 1
+    , \x _ -> case x of 0 -> 0; 1 -> 0; _ -> 1
+    , \x _ -> case x of -1 -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,0) -> 1; (0,1) -> 0; (1,0) -> 0; (0,-1) -> 0; ...
+    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 0; _ -> 1
+    , \x y -> case (x,y) of (_,0) -> 0; (0,_) -> 1; (1,_) -> 0; _ -> 1
+    , \x _ -> case x of 0 -> 1; _ -> -1
+    , \x _ -> case x of 1 -> 0; _ -> -1
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> -1; _ -> 0
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (_,1) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 1; (_,1) -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; _ -> -1
+    , \x _ -> case x of 0 -> 0; _ -> 2
+    , \_ y -> case y of 0 -> 2; _ -> 0
+    , \_ y -> case y of 1 -> -1; _ -> 0
+    , \_ y -> case y of -1 -> 1; _ -> 0
+    , \_ y -> case y of 0 -> -1; _ -> 1
+    , \_ y -> case y of 0 -> 0; 1 -> 0; _ -> 1
+    , \_ y -> case y of -1 -> 0; _ -> 1
+    , \_ y -> case y of 0 -> 1; _ -> -1
+    , \_ y -> case y of 1 -> 0; _ -> -1
+    , \_ y -> case y of 0 -> 0; _ -> 2
+    , \_ _ -> -2
+    ]
+  , [ \x y -> case (x,y) of (0,0) -> 2; _ -> 0
+    , \x y -> case (x,y) of (0,1) -> -1; _ -> 0
+    , \x y -> case (x,y) of (0,-1) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,0) -> -1; (0,_) -> 1; _ -> 0
+    , \x y -> case (x,y) of (_,0) -> 0; (_,1) -> 0; (0,_) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,0) -> 1; (0,1) -> 1; (1,0) -> 0; (0,-1) -> 0; ...
+    , \x y -> case (x,y) of (0,0) -> 1; (0,_) -> -1; _ -> 0
+    , \x y -> case (x,y) of (0,0) -> -1; (0,1) -> 0; (1,0) -> 0; (0,-1) -> -1; ...
+    , \x y -> case (x,y) of (_,0) -> 0; (0,_) -> 2; _ -> 0
+    , \x _ -> case x of 0 -> -2; _ -> 0
+    , \x y -> case (x,y) of (1,0) -> -1; _ -> 0
+    , \x y -> case (x,y) of (1,1) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,0) -> 0; (0,1) -> 0; (1,0) -> 1; (0,-1) -> 0; ...
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (1,_) -> -1; _ -> 0
+    , \x _ -> case x of 1 -> 2; _ -> 0
+    , \x _ -> case x of 0 -> 1; 1 -> 1; _ -> 0
+    , \x y -> case (x,y) of (-1,0) -> 1; _ -> 0
+    , \x y -> case (x,y) of (-1,1) -> 1; (-1,-1) -> 1; _ -> 0
+    , \x _ -> case x of -1 -> -1; _ -> 0
+    , \x _ -> case x of 2 -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,0) -> -1; (0,_) -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,0) -> 0; (0,1) -> 1; (1,0) -> 1; (0,-1) -> 0; ...
+    , \x y -> case (x,y) of (0,1) -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,0) -> 0; (0,_) -> -1; _ -> 1
+    , \x _ -> case x of 0 -> 2; _ -> 1
+    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 1; (1,_) -> 0; _ -> 1
+    , \x y -> case (x,y) of (1,0) -> 0; _ -> 1
+    , \x _ -> case x of 1 -> -1; _ -> 1
+    , \x _ -> case x of 0 -> 0; 1 -> 1; -1 -> 0; _ -> 1
+    , \x _ -> case x of 2 -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,0) -> 0; (0,_) -> 1; (_,0) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,_) -> -1; (_,0) -> 1; _ -> 0
+    , \x y -> case (x,y) of (_,0) -> 1; (0,_) -> 0; (1,_) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,_) -> 0; (1,_) -> 0; (_,0) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,0) -> 1; (0,1) -> 0; (1,0) -> 1; (0,-1) -> 0; ...
+    , \x y -> case (x,y) of (0,0) -> 1; (0,_) -> 0; (_,0) -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,_) -> -1; (_,0) -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,0) -> 0; (0,1) -> 1; (1,0) -> 1; (0,-1) -> 1; ...
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (1,_) -> 0; _ -> 1
+    , \x y -> case (x,y) of (_,0) -> 0; (-1,_) -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,0) -> 1; (0,_) -> 0; _ -> -1
+    , \x y -> case (x,y) of (0,0) -> 0; (0,_) -> 1; _ -> -1
+    , \x _ -> case x of 1 -> 1; _ -> -1
+    , \x _ -> case x of 0 -> 0; 1 -> 0; _ -> -1
+    , \x _ -> case x of -1 -> 0; _ -> -1
+    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> -1; _ -> 0
+    , \x y -> case (x,y) of (0,0) -> -1; (0,1) -> 0; (1,0) -> 0; (0,-1) -> 0; ...
+    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 0; (_,1) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,1) -> 1; (-1,1) -> 1; (2,1) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 1; (_,1) -> 0; _ -> 1
+    , \x y -> case (x,y) of (_,1) -> 0; (1,_) -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 0; _ -> -1
+    , \x y -> case (x,y) of (_,0) -> 0; (0,_) -> -1; (1,_) -> 0; _ -> -1
+    , \x _ -> case x of 0 -> 1; _ -> 2
+    , \x _ -> case x of 1 -> 0; _ -> 2
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 2; _ -> 0
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (_,1) -> -1; _ -> 0
+    , \x y -> case (x,y) of (1,-1) -> 1; (-1,-1) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> -1; _ -> 1
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (_,1) -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,_) -> 0; (_,-1) -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 1; _ -> -1
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> -1; (_,1) -> 0; _ -> -1
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; _ -> 2
+    , \x _ -> case x of 0 -> 0; _ -> -2
+    , \_ y -> case y of 0 -> -2; _ -> 0
+    , \_ y -> case y of 1 -> 2; _ -> 0
+    , \_ y -> case y of 0 -> 1; 1 -> 1; _ -> 0
+    , \_ y -> case y of -1 -> -1; _ -> 0
+    , \_ y -> case y of 2 -> 1; _ -> 0
+    , \_ y -> case y of 0 -> 2; _ -> 1
+    , \_ y -> case y of 1 -> -1; _ -> 1
+    , \_ y -> case y of 0 -> 0; -1 -> 0; _ -> 1
+    , \_ y -> case y of 2 -> 0; _ -> 1
+    , \_ y -> case y of 1 -> 1; _ -> -1
+    , \_ y -> case y of 0 -> 0; 1 -> 0; _ -> -1
+    , \_ y -> case y of -1 -> 0; _ -> -1
+    , \_ y -> case y of 0 -> 1; _ -> 2
+    , \_ y -> case y of 1 -> 0; _ -> 2
+    , \_ y -> case y of 0 -> 0; _ -> -2
+    , \_ _ -> 3
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/4cases-Int-Int.txt b/bench/tiers-txt/4cases-Int-Int.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-Int-Int.txt
@@ -0,0 +1,212 @@
+map length (tiers :: [[ Int->Int ]])  =  [1,1,3,5,10,16,30,48,80,...]
+
+length (list :: [ Int->Int ])  =  Infinity
+
+allUnique (list :: [ Int->Int ])  =  True
+
+ratioRepetitions (list :: [ Int->Int ])  =  0 % 1
+
+tiers :: [Int->Int]  =
+  [ [\_ -> 0]
+  , [\_ -> 1]
+  , [ \x -> case x of 0 -> 1; _ -> 0
+    , \x -> case x of 0 -> 0; _ -> 1
+    , \_ -> -1
+    ]
+  , [ \x -> case x of 0 -> -1; _ -> 0
+    , \x -> case x of 1 -> 1; _ -> 0
+    , \x -> case x of 1 -> 0; _ -> 1
+    , \x -> case x of 0 -> 0; _ -> -1
+    , \_ -> 2
+    ]
+  , [ \x -> case x of 0 -> 2; _ -> 0
+    , \x -> case x of 1 -> -1; _ -> 0
+    , \x -> case x of -1 -> 1; _ -> 0
+    , \x -> case x of 0 -> -1; _ -> 1
+    , \x -> case x of 0 -> 0; 1 -> 0; _ -> 1
+    , \x -> case x of -1 -> 0; _ -> 1
+    , \x -> case x of 0 -> 1; _ -> -1
+    , \x -> case x of 1 -> 0; _ -> -1
+    , \x -> case x of 0 -> 0; _ -> 2
+    , \_ -> -2
+    ]
+  , [ \x -> case x of 0 -> -2; _ -> 0
+    , \x -> case x of 1 -> 2; _ -> 0
+    , \x -> case x of 0 -> 1; 1 -> 1; _ -> 0
+    , \x -> case x of -1 -> -1; _ -> 0
+    , \x -> case x of 2 -> 1; _ -> 0
+    , \x -> case x of 0 -> 2; _ -> 1
+    , \x -> case x of 1 -> -1; _ -> 1
+    , \x -> case x of 0 -> 0; -1 -> 0; _ -> 1
+    , \x -> case x of 2 -> 0; _ -> 1
+    , \x -> case x of 1 -> 1; _ -> -1
+    , \x -> case x of 0 -> 0; 1 -> 0; _ -> -1
+    , \x -> case x of -1 -> 0; _ -> -1
+    , \x -> case x of 0 -> 1; _ -> 2
+    , \x -> case x of 1 -> 0; _ -> 2
+    , \x -> case x of 0 -> 0; _ -> -2
+    , \_ -> 3
+    ]
+  , [ \x -> case x of 0 -> 3; _ -> 0
+    , \x -> case x of 1 -> -2; _ -> 0
+    , \x -> case x of 0 -> 1; 1 -> -1; _ -> 0
+    , \x -> case x of 0 -> -1; 1 -> 1; _ -> 0
+    , \x -> case x of -1 -> 2; _ -> 0
+    , \x -> case x of 0 -> 1; -1 -> 1; _ -> 0
+    , \x -> case x of 2 -> -1; _ -> 0
+    , \x -> case x of -2 -> 1; _ -> 0
+    , \x -> case x of 0 -> -2; _ -> 1
+    , \x -> case x of 1 -> 2; _ -> 1
+    , \x -> case x of 0 -> 0; 1 -> -1; _ -> 1
+    , \x -> case x of 0 -> -1; 1 -> 0; _ -> 1
+    , \x -> case x of -1 -> -1; _ -> 1
+    , \x -> case x of 0 -> 0; 2 -> 0; _ -> 1
+    , \x -> case x of 1 -> 0; -1 -> 0; _ -> 1
+    , \x -> case x of -2 -> 0; _ -> 1
+    , \x -> case x of 0 -> 2; _ -> -1
+    , \x -> case x of 0 -> 0; 1 -> 1; _ -> -1
+    , \x -> case x of 0 -> 1; 1 -> 0; _ -> -1
+    , \x -> case x of -1 -> 1; _ -> -1
+    , \x -> case x of 0 -> 0; -1 -> 0; _ -> -1
+    , \x -> case x of 2 -> 0; _ -> -1
+    , \x -> case x of 0 -> -1; _ -> 2
+    , \x -> case x of 1 -> 1; _ -> 2
+    , \x -> case x of 0 -> 0; 1 -> 0; _ -> 2
+    , \x -> case x of -1 -> 0; _ -> 2
+    , \x -> case x of 0 -> 1; _ -> -2
+    , \x -> case x of 1 -> 0; _ -> -2
+    , \x -> case x of 0 -> 0; _ -> 3
+    , \_ -> -3
+    ]
+  , [ \x -> case x of 0 -> -3; _ -> 0
+    , \x -> case x of 1 -> 3; _ -> 0
+    , \x -> case x of 0 -> 1; 1 -> 2; _ -> 0
+    , \x -> case x of 0 -> -1; 1 -> -1; _ -> 0
+    , \x -> case x of 0 -> 2; 1 -> 1; _ -> 0
+    , \x -> case x of -1 -> -2; _ -> 0
+    , \x -> case x of 0 -> 1; -1 -> -1; _ -> 0
+    , \x -> case x of 0 -> -1; -1 -> 1; _ -> 0
+    , \x -> case x of 2 -> 2; _ -> 0
+    , \x -> case x of 0 -> 1; 2 -> 1; _ -> 0
+    , \x -> case x of 1 -> 1; -1 -> 1; _ -> 0
+    , \x -> case x of -2 -> -1; _ -> 0
+    , \x -> case x of 3 -> 1; _ -> 0
+    , \x -> case x of 0 -> 3; _ -> 1
+    , \x -> case x of 1 -> -2; _ -> 1
+    , \x -> case x of 0 -> 0; 1 -> 2; _ -> 1
+    , \x -> case x of 0 -> 2; 1 -> 0; _ -> 1
+    , \x -> case x of -1 -> 2; _ -> 1
+    , \x -> case x of 0 -> 0; -1 -> -1; _ -> 1
+    , \x -> case x of 0 -> -1; -1 -> 0; _ -> 1
+    , \x -> case x of 2 -> -1; _ -> 1
+    , \x -> case x of 0 -> 0; 1 -> 0; -1 -> 0; _ -> 1
+    , \x -> case x of 0 -> 0; -2 -> 0; _ -> 1
+    , \x -> case x of 1 -> 0; 2 -> 0; _ -> 1
+    , \x -> case x of 3 -> 0; _ -> 1
+    , \x -> case x of 0 -> -2; _ -> -1
+    , \x -> case x of 1 -> 2; _ -> -1
+    , \x -> case x of 0 -> 1; 1 -> 1; _ -> -1
+    , \x -> case x of 0 -> 0; -1 -> 1; _ -> -1
+    , \x -> case x of 0 -> 1; -1 -> 0; _ -> -1
+    , \x -> case x of 2 -> 1; _ -> -1
+    , \x -> case x of 0 -> 0; 2 -> 0; _ -> -1
+    , \x -> case x of 1 -> 0; -1 -> 0; _ -> -1
+    , \x -> case x of -2 -> 0; _ -> -1
+    , \x -> case x of 1 -> -1; _ -> 2
+    , \x -> case x of 0 -> 0; 1 -> 1; _ -> 2
+    , \x -> case x of 0 -> 1; 1 -> 0; _ -> 2
+    , \x -> case x of -1 -> 1; _ -> 2
+    , \x -> case x of 0 -> 0; -1 -> 0; _ -> 2
+    , \x -> case x of 2 -> 0; _ -> 2
+    , \x -> case x of 0 -> -1; _ -> -2
+    , \x -> case x of 1 -> 1; _ -> -2
+    , \x -> case x of 0 -> 0; 1 -> 0; _ -> -2
+    , \x -> case x of -1 -> 0; _ -> -2
+    , \x -> case x of 0 -> 1; _ -> 3
+    , \x -> case x of 1 -> 0; _ -> 3
+    , \x -> case x of 0 -> 0; _ -> -3
+    , \_ -> 4
+    ]
+  , [ \x -> case x of 0 -> 4; _ -> 0
+    , \x -> case x of 1 -> -3; _ -> 0
+    , \x -> case x of 0 -> 1; 1 -> -2; _ -> 0
+    , \x -> case x of 0 -> -1; 1 -> 2; _ -> 0
+    , \x -> case x of 0 -> 2; 1 -> -1; _ -> 0
+    , \x -> case x of 0 -> -2; 1 -> 1; _ -> 0
+    , \x -> case x of -1 -> 3; _ -> 0
+    , \x -> case x of 0 -> 1; -1 -> 2; _ -> 0
+    , \x -> case x of 0 -> -1; -1 -> -1; _ -> 0
+    , \x -> case x of 0 -> 2; -1 -> 1; _ -> 0
+    , \x -> case x of 2 -> -2; _ -> 0
+    , \x -> case x of 0 -> 1; 2 -> -1; _ -> 0
+    , \x -> case x of 0 -> -1; 2 -> 1; _ -> 0
+    , \x -> case x of 1 -> 1; -1 -> -1; _ -> 0
+    , \x -> case x of 1 -> -1; -1 -> 1; _ -> 0
+    , \x -> case x of -2 -> 2; _ -> 0
+    , \x -> case x of 0 -> 1; -2 -> 1; _ -> 0
+    , \x -> case x of 1 -> 1; 2 -> 1; _ -> 0
+    , \x -> case x of 3 -> -1; _ -> 0
+    , \x -> case x of -3 -> 1; _ -> 0
+    , \x -> case x of 0 -> -3; _ -> 1
+    , \x -> case x of 1 -> 3; _ -> 1
+    , \x -> case x of 0 -> 0; 1 -> -2; _ -> 1
+    , \x -> case x of 0 -> -1; 1 -> -1; _ -> 1
+    , \x -> case x of 0 -> -2; 1 -> 0; _ -> 1
+    , \x -> case x of -1 -> -2; _ -> 1
+    , \x -> case x of 0 -> 0; -1 -> 2; _ -> 1
+    , \x -> case x of 0 -> 2; -1 -> 0; _ -> 1
+    , \x -> case x of 2 -> 2; _ -> 1
+    , \x -> case x of 0 -> 0; 2 -> -1; _ -> 1
+    , \x -> case x of 0 -> -1; 2 -> 0; _ -> 1
+    , \x -> case x of 1 -> 0; -1 -> -1; _ -> 1
+    , \x -> case x of 1 -> -1; -1 -> 0; _ -> 1
+    , \x -> case x of -2 -> -1; _ -> 1
+    , \x -> case x of 0 -> 0; 1 -> 0; 2 -> 0; _ -> 1
+    , \x -> case x of 0 -> 0; 3 -> 0; _ -> 1
+    , \x -> case x of 1 -> 0; -2 -> 0; _ -> 1
+    , \x -> case x of -1 -> 0; 2 -> 0; _ -> 1
+    , \x -> case x of -3 -> 0; _ -> 1
+    , \x -> case x of 0 -> 3; _ -> -1
+    , \x -> case x of 1 -> -2; _ -> -1
+    , \x -> case x of 0 -> 0; 1 -> 2; _ -> -1
+    , \x -> case x of 0 -> 2; 1 -> 0; _ -> -1
+    , \x -> case x of -1 -> 2; _ -> -1
+    , \x -> case x of 0 -> 1; -1 -> 1; _ -> -1
+    , \x -> case x of 0 -> 0; 2 -> 1; _ -> -1
+    , \x -> case x of 0 -> 1; 2 -> 0; _ -> -1
+    , \x -> case x of 1 -> 0; -1 -> 1; _ -> -1
+    , \x -> case x of 1 -> 1; -1 -> 0; _ -> -1
+    , \x -> case x of -2 -> 1; _ -> -1
+    , \x -> case x of 0 -> 0; 1 -> 0; -1 -> 0; _ -> -1
+    , \x -> case x of 0 -> 0; -2 -> 0; _ -> -1
+    , \x -> case x of 1 -> 0; 2 -> 0; _ -> -1
+    , \x -> case x of 3 -> 0; _ -> -1
+    , \x -> case x of 0 -> -2; _ -> 2
+    , \x -> case x of 0 -> 0; 1 -> -1; _ -> 2
+    , \x -> case x of 0 -> 1; 1 -> 1; _ -> 2
+    , \x -> case x of 0 -> -1; 1 -> 0; _ -> 2
+    , \x -> case x of -1 -> -1; _ -> 2
+    , \x -> case x of 0 -> 0; -1 -> 1; _ -> 2
+    , \x -> case x of 0 -> 1; -1 -> 0; _ -> 2
+    , \x -> case x of 2 -> 1; _ -> 2
+    , \x -> case x of 0 -> 0; 2 -> 0; _ -> 2
+    , \x -> case x of 1 -> 0; -1 -> 0; _ -> 2
+    , \x -> case x of -2 -> 0; _ -> 2
+    , \x -> case x of 0 -> 2; _ -> -2
+    , \x -> case x of 1 -> -1; _ -> -2
+    , \x -> case x of 0 -> 0; 1 -> 1; _ -> -2
+    , \x -> case x of 0 -> 1; 1 -> 0; _ -> -2
+    , \x -> case x of -1 -> 1; _ -> -2
+    , \x -> case x of 0 -> 0; -1 -> 0; _ -> -2
+    , \x -> case x of 2 -> 0; _ -> -2
+    , \x -> case x of 0 -> -1; _ -> 3
+    , \x -> case x of 1 -> 1; _ -> 3
+    , \x -> case x of 0 -> 0; 1 -> 0; _ -> 3
+    , \x -> case x of -1 -> 0; _ -> 3
+    , \x -> case x of 0 -> 1; _ -> -3
+    , \x -> case x of 1 -> 0; _ -> -3
+    , \x -> case x of 0 -> 0; _ -> 4
+    , \_ -> -4
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/4cases-Ints-Ints.txt b/bench/tiers-txt/4cases-Ints-Ints.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-Ints-Ints.txt
@@ -0,0 +1,135 @@
+map length (tiers :: [[ [Int]->[Int] ]])  =  [1,1,4,10,29,75,...]
+
+length (list :: [ [Int]->[Int] ])  =  Infinity
+
+allUnique (list :: [ [Int]->[Int] ])  =  True
+
+ratioRepetitions (list :: [ [Int]->[Int] ])  =  0 % 1
+
+tiers :: [[Int]->[Int]]  =
+  [ [\_ -> []]
+  , [\_ -> [0]]
+  , [ \x -> case x of [] -> [0]; _ -> []
+    , \x -> case x of [] -> []; _ -> [0]
+    , \_ -> [0,0]
+    , \_ -> [1]
+    ]
+  , [ \x -> case x of [] -> [0,0]; _ -> []
+    , \x -> case x of [] -> [1]; _ -> []
+    , \x -> case x of [0] -> [0]; _ -> []
+    , \x -> case x of [0] -> []; _ -> [0]
+    , \x -> case x of [] -> []; _ -> [0,0]
+    , \x -> case x of [] -> []; _ -> [1]
+    , \_ -> [0,0,0]
+    , \_ -> [0,1]
+    , \_ -> [1,0]
+    , \_ -> [-1]
+    ]
+  , [ \x -> case x of [] -> [0,0,0]; _ -> []
+    , \x -> case x of [] -> [0,1]; _ -> []
+    , \x -> case x of [] -> [1,0]; _ -> []
+    , \x -> case x of [] -> [-1]; _ -> []
+    , \x -> case x of [0] -> [0,0]; _ -> []
+    , \x -> case x of [0] -> [1]; _ -> []
+    , \x -> case x of [0,0] -> [0]; _ -> []
+    , \x -> case x of [1] -> [0]; _ -> []
+    , \x -> case x of [] -> [0,0]; _ -> [0]
+    , \x -> case x of [] -> [1]; _ -> [0]
+    , \x -> case x of [] -> []; [0] -> []; _ -> [0]
+    , \x -> case x of [0,0] -> []; _ -> [0]
+    , \x -> case x of [1] -> []; _ -> [0]
+    , \x -> case x of [] -> [0]; _ -> [0,0]
+    , \x -> case x of [0] -> []; _ -> [0,0]
+    , \x -> case x of [] -> [0]; _ -> [1]
+    , \x -> case x of [0] -> []; _ -> [1]
+    , \x -> case x of [] -> []; _ -> [0,0,0]
+    , \x -> case x of [] -> []; _ -> [0,1]
+    , \x -> case x of [] -> []; _ -> [1,0]
+    , \x -> case x of [] -> []; _ -> [-1]
+    , \_ -> [0,0,0,0]
+    , \_ -> [0,0,1]
+    , \_ -> [0,1,0]
+    , \_ -> [0,-1]
+    , \_ -> [1,0,0]
+    , \_ -> [1,1]
+    , \_ -> [-1,0]
+    , \_ -> [2]
+    ]
+  , [ \x -> case x of [] -> [0,0,0,0]; _ -> []
+    , \x -> case x of [] -> [0,0,1]; _ -> []
+    , \x -> case x of [] -> [0,1,0]; _ -> []
+    , \x -> case x of [] -> [0,-1]; _ -> []
+    , \x -> case x of [] -> [1,0,0]; _ -> []
+    , \x -> case x of [] -> [1,1]; _ -> []
+    , \x -> case x of [] -> [-1,0]; _ -> []
+    , \x -> case x of [] -> [2]; _ -> []
+    , \x -> case x of [0] -> [0,0,0]; _ -> []
+    , \x -> case x of [0] -> [0,1]; _ -> []
+    , \x -> case x of [0] -> [1,0]; _ -> []
+    , \x -> case x of [0] -> [-1]; _ -> []
+    , \x -> case x of [] -> [0]; [0] -> [0]; _ -> []
+    , \x -> case x of [0,0] -> [0,0]; _ -> []
+    , \x -> case x of [0,0] -> [1]; _ -> []
+    , \x -> case x of [1] -> [0,0]; _ -> []
+    , \x -> case x of [1] -> [1]; _ -> []
+    , \x -> case x of [0,0,0] -> [0]; _ -> []
+    , \x -> case x of [0,1] -> [0]; _ -> []
+    , \x -> case x of [1,0] -> [0]; _ -> []
+    , \x -> case x of [-1] -> [0]; _ -> []
+    , \x -> case x of [] -> [0,0,0]; _ -> [0]
+    , \x -> case x of [] -> [0,1]; _ -> [0]
+    , \x -> case x of [] -> [1,0]; _ -> [0]
+    , \x -> case x of [] -> [-1]; _ -> [0]
+    , \x -> case x of [0] -> [0,0]; _ -> [0]
+    , \x -> case x of [0] -> [1]; _ -> [0]
+    , \x -> case x of [] -> []; [0,0] -> []; _ -> [0]
+    , \x -> case x of [] -> []; [1] -> []; _ -> [0]
+    , \x -> case x of [0,0,0] -> []; _ -> [0]
+    , \x -> case x of [0,1] -> []; _ -> [0]
+    , \x -> case x of [1,0] -> []; _ -> [0]
+    , \x -> case x of [-1] -> []; _ -> [0]
+    , \x -> case x of [] -> [1]; _ -> [0,0]
+    , \x -> case x of [0] -> [0]; _ -> [0,0]
+    , \x -> case x of [] -> []; [0] -> []; _ -> [0,0]
+    , \x -> case x of [0,0] -> []; _ -> [0,0]
+    , \x -> case x of [1] -> []; _ -> [0,0]
+    , \x -> case x of [] -> [0,0]; _ -> [1]
+    , \x -> case x of [0] -> [0]; _ -> [1]
+    , \x -> case x of [] -> []; [0] -> []; _ -> [1]
+    , \x -> case x of [0,0] -> []; _ -> [1]
+    , \x -> case x of [1] -> []; _ -> [1]
+    , \x -> case x of [] -> [0]; _ -> [0,0,0]
+    , \x -> case x of [0] -> []; _ -> [0,0,0]
+    , \x -> case x of [] -> [0]; _ -> [0,1]
+    , \x -> case x of [0] -> []; _ -> [0,1]
+    , \x -> case x of [] -> [0]; _ -> [1,0]
+    , \x -> case x of [0] -> []; _ -> [1,0]
+    , \x -> case x of [] -> [0]; _ -> [-1]
+    , \x -> case x of [0] -> []; _ -> [-1]
+    , \x -> case x of [] -> []; _ -> [0,0,0,0]
+    , \x -> case x of [] -> []; _ -> [0,0,1]
+    , \x -> case x of [] -> []; _ -> [0,1,0]
+    , \x -> case x of [] -> []; _ -> [0,-1]
+    , \x -> case x of [] -> []; _ -> [1,0,0]
+    , \x -> case x of [] -> []; _ -> [1,1]
+    , \x -> case x of [] -> []; _ -> [-1,0]
+    , \x -> case x of [] -> []; _ -> [2]
+    , \_ -> [0,0,0,0,0]
+    , \_ -> [0,0,0,1]
+    , \_ -> [0,0,1,0]
+    , \_ -> [0,0,-1]
+    , \_ -> [0,1,0,0]
+    , \_ -> [0,1,1]
+    , \_ -> [0,-1,0]
+    , \_ -> [0,2]
+    , \_ -> [1,0,0,0]
+    , \_ -> [1,0,1]
+    , \_ -> [1,1,0]
+    , \_ -> [1,-1]
+    , \_ -> [-1,0,0]
+    , \_ -> [-1,1]
+    , \_ -> [2,0]
+    , \_ -> [-2]
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/4cases-MBool-Bool.txt b/bench/tiers-txt/4cases-MBool-Bool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-MBool-Bool.txt
@@ -0,0 +1,19 @@
+map length (tiers :: [[ Maybe Bool->Bool ]])  =  [8]
+
+length (list :: [ Maybe Bool->Bool ])  =  8
+
+allUnique (list :: [ Maybe Bool->Bool ])  =  True
+
+ratioRepetitions (list :: [ Maybe Bool->Bool ])  =  0 % 1
+
+tiers :: [Maybe Bool->Bool]  =
+  [ [ \_ -> False
+    , \x -> case x of Just True -> True; _ -> False
+    , \x -> case x of Just False -> True; _ -> False
+    , \x -> case x of Nothing -> False; _ -> True
+    , \x -> case x of Nothing -> True; _ -> False
+    , \x -> case x of Just False -> False; _ -> True
+    , \x -> case x of Just True -> False; _ -> True
+    , \_ -> True
+    ]
+  ]
diff --git a/bench/tiers-txt/4cases-MBool-MBool.txt b/bench/tiers-txt/4cases-MBool-MBool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-MBool-MBool.txt
@@ -0,0 +1,40 @@
+map length (tiers :: [[ Maybe Bool->Maybe Bool ]])  =  [1,6,12,8]
+
+length (list :: [ Maybe Bool->Maybe Bool ])  =  Infinity
+
+allUnique (list :: [ Maybe Bool->Maybe Bool ])  =  True
+
+ratioRepetitions (list :: [ Maybe Bool->Maybe Bool ])  =  0 % 1
+
+tiers :: [Maybe Bool->Maybe Bool]  =
+  [ [\_ -> Nothing]
+  , [ \x -> case x of Just True -> Just False; _ -> Nothing
+    , \x -> case x of Just True -> Just True; _ -> Nothing
+    , \x -> case x of Just False -> Just False; _ -> Nothing
+    , \x -> case x of Just False -> Just True; _ -> Nothing
+    , \x -> case x of Nothing -> Just False; _ -> Nothing
+    , \x -> case x of Nothing -> Just True; _ -> Nothing
+    ]
+  , [ \x -> case x of Nothing -> Nothing; _ -> Just False
+    , \x -> case x of Nothing -> Nothing; Just False -> Just False; Just True -> Just True
+    , \x -> case x of Nothing -> Nothing; Just False -> Just True; Just True -> Just False
+    , \x -> case x of Nothing -> Nothing; _ -> Just True
+    , \x -> case x of Just False -> Nothing; _ -> Just False
+    , \x -> case x of Nothing -> Just False; Just False -> Nothing; Just True -> Just True
+    , \x -> case x of Just True -> Nothing; _ -> Just False
+    , \x -> case x of Nothing -> Just False; Just False -> Just True; Just True -> Nothing
+    , \x -> case x of Nothing -> Just True; Just False -> Nothing; Just True -> Just False
+    , \x -> case x of Just False -> Nothing; _ -> Just True
+    , \x -> case x of Nothing -> Just True; Just False -> Just False; Just True -> Nothing
+    , \x -> case x of Just True -> Nothing; _ -> Just True
+    ]
+  , [ \_ -> Just False
+    , \x -> case x of Just True -> Just True; _ -> Just False
+    , \x -> case x of Just False -> Just True; _ -> Just False
+    , \x -> case x of Nothing -> Just False; _ -> Just True
+    , \x -> case x of Nothing -> Just True; _ -> Just False
+    , \x -> case x of Just False -> Just False; _ -> Just True
+    , \x -> case x of Just True -> Just False; _ -> Just True
+    , \_ -> Just True
+    ]
+  ]
diff --git a/bench/tiers-txt/4cases-Nat,Nat-Nat.txt b/bench/tiers-txt/4cases-Nat,Nat-Nat.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-Nat,Nat-Nat.txt
@@ -0,0 +1,79 @@
+map length (tiers :: [[ (Nat,Nat)->Nat ]])  =  [1,1,3,7,17,35,...]
+
+length (list :: [ (Nat,Nat)->Nat ])  =  Infinity
+
+allUnique (list :: [ (Nat,Nat)->Nat ])  =  True
+
+ratioRepetitions (list :: [ (Nat,Nat)->Nat ])  =  0 % 1
+
+tiers :: [(Nat,Nat)->Nat]  =
+  [ [\_ -> 0]
+  , [\_ -> 1]
+  , [ \x -> case x of (0,0) -> 1; _ -> 0
+    , \x -> case x of (0,0) -> 0; _ -> 1
+    , \_ -> 2
+    ]
+  , [ \x -> case x of (0,0) -> 2; _ -> 0
+    , \x -> case x of (0,1) -> 1; _ -> 0
+    , \x -> case x of (1,0) -> 1; _ -> 0
+    , \x -> case x of (0,1) -> 0; _ -> 1
+    , \x -> case x of (1,0) -> 0; _ -> 1
+    , \x -> case x of (0,0) -> 0; _ -> 2
+    , \_ -> 3
+    ]
+  , [ \x -> case x of (0,0) -> 3; _ -> 0
+    , \x -> case x of (0,1) -> 2; _ -> 0
+    , \x -> case x of (1,0) -> 2; _ -> 0
+    , \x -> case x of (0,2) -> 1; _ -> 0
+    , \x -> case x of (1,1) -> 1; _ -> 0
+    , \x -> case x of (2,0) -> 1; _ -> 0
+    , \x -> case x of (0,0) -> 2; _ -> 1
+    , \x -> case x of (0,0) -> 0; (0,1) -> 0; _ -> 1
+    , \x -> case x of (0,0) -> 0; (1,0) -> 0; _ -> 1
+    , \x -> case x of (0,2) -> 0; _ -> 1
+    , \x -> case x of (1,1) -> 0; _ -> 1
+    , \x -> case x of (2,0) -> 0; _ -> 1
+    , \x -> case x of (0,0) -> 1; _ -> 2
+    , \x -> case x of (0,1) -> 0; _ -> 2
+    , \x -> case x of (1,0) -> 0; _ -> 2
+    , \x -> case x of (0,0) -> 0; _ -> 3
+    , \_ -> 4
+    ]
+  , [ \x -> case x of (0,0) -> 4; _ -> 0
+    , \x -> case x of (0,1) -> 3; _ -> 0
+    , \x -> case x of (1,0) -> 3; _ -> 0
+    , \x -> case x of (0,0) -> 1; (0,1) -> 1; _ -> 0
+    , \x -> case x of (0,0) -> 1; (1,0) -> 1; _ -> 0
+    , \x -> case x of (0,2) -> 2; _ -> 0
+    , \x -> case x of (1,1) -> 2; _ -> 0
+    , \x -> case x of (2,0) -> 2; _ -> 0
+    , \x -> case x of (0,3) -> 1; _ -> 0
+    , \x -> case x of (1,2) -> 1; _ -> 0
+    , \x -> case x of (2,1) -> 1; _ -> 0
+    , \x -> case x of (3,0) -> 1; _ -> 0
+    , \x -> case x of (0,0) -> 3; _ -> 1
+    , \x -> case x of (0,1) -> 2; _ -> 1
+    , \x -> case x of (1,0) -> 2; _ -> 1
+    , \x -> case x of (0,0) -> 0; (0,2) -> 0; _ -> 1
+    , \x -> case x of (0,0) -> 0; (1,1) -> 0; _ -> 1
+    , \x -> case x of (0,0) -> 0; (2,0) -> 0; _ -> 1
+    , \x -> case x of (0,1) -> 0; (1,0) -> 0; _ -> 1
+    , \x -> case x of (0,3) -> 0; _ -> 1
+    , \x -> case x of (1,2) -> 0; _ -> 1
+    , \x -> case x of (2,1) -> 0; _ -> 1
+    , \x -> case x of (3,0) -> 0; _ -> 1
+    , \x -> case x of (0,1) -> 1; _ -> 2
+    , \x -> case x of (1,0) -> 1; _ -> 2
+    , \x -> case x of (0,0) -> 0; (0,1) -> 0; _ -> 2
+    , \x -> case x of (0,0) -> 0; (1,0) -> 0; _ -> 2
+    , \x -> case x of (0,2) -> 0; _ -> 2
+    , \x -> case x of (1,1) -> 0; _ -> 2
+    , \x -> case x of (2,0) -> 0; _ -> 2
+    , \x -> case x of (0,0) -> 1; _ -> 3
+    , \x -> case x of (0,1) -> 0; _ -> 3
+    , \x -> case x of (1,0) -> 0; _ -> 3
+    , \x -> case x of (0,0) -> 0; _ -> 4
+    , \_ -> 5
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/4cases-Nat-Nat-Nat.txt b/bench/tiers-txt/4cases-Nat-Nat-Nat.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-Nat-Nat-Nat.txt
@@ -0,0 +1,151 @@
+map length (tiers :: [[ Nat->Nat->Nat ]])  =  [1,1,5,13,35,81,...]
+
+length (list :: [ Nat->Nat->Nat ])  =  Infinity
+
+allUnique (list :: [ Nat->Nat->Nat ])  =  True
+
+ratioRepetitions (list :: [ Nat->Nat->Nat ])  =  0 % 1
+
+tiers :: [Nat->Nat->Nat]  =
+  [ [\_ _ -> 0]
+  , [\_ _ -> 1]
+  , [ \x _ -> case x of 0 -> 1; _ -> 0
+    , \x _ -> case x of 0 -> 0; _ -> 1
+    , \_ y -> case y of 0 -> 1; _ -> 0
+    , \_ y -> case y of 0 -> 0; _ -> 1
+    , \_ _ -> 2
+    ]
+  , [ \x y -> case (x,y) of (0,0) -> 1; _ -> 0
+    , \x y -> case (x,y) of (_,0) -> 0; (0,_) -> 1; _ -> 0
+    , \x _ -> case x of 0 -> 2; _ -> 0
+    , \x _ -> case x of 1 -> 1; _ -> 0
+    , \x _ -> case x of 1 -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; _ -> 1
+    , \x _ -> case x of 0 -> 0; _ -> 2
+    , \_ y -> case y of 0 -> 2; _ -> 0
+    , \_ y -> case y of 1 -> 1; _ -> 0
+    , \_ y -> case y of 1 -> 0; _ -> 1
+    , \_ y -> case y of 0 -> 0; _ -> 2
+    , \_ _ -> 3
+    ]
+  , [ \x y -> case (x,y) of (0,0) -> 2; _ -> 0
+    , \x y -> case (x,y) of (0,1) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,0) -> 1; (0,1) -> 0; (1,0) -> 0; (0,2) -> 1; ...
+    , \x y -> case (x,y) of (_,0) -> 0; (0,_) -> 2; _ -> 0
+    , \x _ -> case x of 0 -> 3; _ -> 0
+    , \x y -> case (x,y) of (1,0) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (1,_) -> 1; _ -> 0
+    , \x _ -> case x of 1 -> 2; _ -> 0
+    , \x _ -> case x of 2 -> 1; _ -> 0
+    , \x y -> case (x,y) of (_,0) -> 1; (0,_) -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,0) -> 0; _ -> 1
+    , \x _ -> case x of 0 -> 2; _ -> 1
+    , \x _ -> case x of 0 -> 0; 1 -> 0; _ -> 1
+    , \x _ -> case x of 2 -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,0) -> 1; (0,1) -> 0; (1,0) -> 0; (0,2) -> 0; ...
+    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 0; _ -> 1
+    , \x y -> case (x,y) of (_,0) -> 0; (0,_) -> 1; (1,_) -> 0; _ -> 1
+    , \x _ -> case x of 0 -> 1; _ -> 2
+    , \x _ -> case x of 1 -> 0; _ -> 2
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 2; _ -> 0
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (_,1) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 1; (_,1) -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; _ -> 2
+    , \x _ -> case x of 0 -> 0; _ -> 3
+    , \_ y -> case y of 0 -> 3; _ -> 0
+    , \_ y -> case y of 1 -> 2; _ -> 0
+    , \_ y -> case y of 2 -> 1; _ -> 0
+    , \_ y -> case y of 0 -> 2; _ -> 1
+    , \_ y -> case y of 0 -> 0; 1 -> 0; _ -> 1
+    , \_ y -> case y of 2 -> 0; _ -> 1
+    , \_ y -> case y of 0 -> 1; _ -> 2
+    , \_ y -> case y of 1 -> 0; _ -> 2
+    , \_ y -> case y of 0 -> 0; _ -> 3
+    , \_ _ -> 4
+    ]
+  , [ \x y -> case (x,y) of (0,0) -> 3; _ -> 0
+    , \x y -> case (x,y) of (0,1) -> 2; _ -> 0
+    , \x y -> case (x,y) of (0,2) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,0) -> 2; (0,_) -> 1; _ -> 0
+    , \x y -> case (x,y) of (_,0) -> 0; (_,1) -> 0; (0,_) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,0) -> 1; (0,1) -> 1; (1,0) -> 0; (0,2) -> 0; ...
+    , \x y -> case (x,y) of (0,0) -> 1; (0,_) -> 2; _ -> 0
+    , \x y -> case (x,y) of (0,0) -> 2; (0,1) -> 0; (1,0) -> 0; (0,2) -> 2; ...
+    , \x y -> case (x,y) of (_,0) -> 0; (0,_) -> 3; _ -> 0
+    , \x _ -> case x of 0 -> 4; _ -> 0
+    , \x y -> case (x,y) of (1,0) -> 2; _ -> 0
+    , \x y -> case (x,y) of (1,1) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,0) -> 0; (0,1) -> 0; (1,0) -> 1; (0,2) -> 0; ...
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (1,_) -> 2; _ -> 0
+    , \x _ -> case x of 1 -> 3; _ -> 0
+    , \x _ -> case x of 0 -> 1; 1 -> 1; _ -> 0
+    , \x y -> case (x,y) of (2,0) -> 1; _ -> 0
+    , \x y -> case (x,y) of (2,1) -> 1; (2,2) -> 1; _ -> 0
+    , \x _ -> case x of 2 -> 2; _ -> 0
+    , \x _ -> case x of 3 -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,0) -> 2; (0,_) -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,0) -> 0; (0,1) -> 1; (1,0) -> 1; (0,2) -> 0; ...
+    , \x y -> case (x,y) of (0,1) -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,0) -> 0; (0,_) -> 2; _ -> 1
+    , \x _ -> case x of 0 -> 3; _ -> 1
+    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 1; (1,_) -> 0; _ -> 1
+    , \x y -> case (x,y) of (1,0) -> 0; _ -> 1
+    , \x _ -> case x of 1 -> 2; _ -> 1
+    , \x _ -> case x of 0 -> 0; 1 -> 1; 2 -> 0; _ -> 1
+    , \x _ -> case x of 3 -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,0) -> 0; (0,_) -> 1; (_,0) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,_) -> 2; (_,0) -> 1; _ -> 0
+    , \x y -> case (x,y) of (_,0) -> 1; (0,_) -> 0; (1,_) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,_) -> 0; (1,_) -> 0; (_,0) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,0) -> 1; (0,1) -> 0; (1,0) -> 1; (0,2) -> 0; ...
+    , \x y -> case (x,y) of (0,0) -> 1; (0,_) -> 0; (_,0) -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,_) -> 2; (_,0) -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,0) -> 0; (0,1) -> 1; (1,0) -> 1; (0,2) -> 1; ...
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (1,_) -> 0; _ -> 1
+    , \x y -> case (x,y) of (_,0) -> 0; (2,_) -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,0) -> 1; (0,_) -> 0; _ -> 2
+    , \x y -> case (x,y) of (0,0) -> 0; (0,_) -> 1; _ -> 2
+    , \x _ -> case x of 1 -> 1; _ -> 2
+    , \x _ -> case x of 0 -> 0; 1 -> 0; _ -> 2
+    , \x _ -> case x of 2 -> 0; _ -> 2
+    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 2; _ -> 0
+    , \x y -> case (x,y) of (0,0) -> 2; (0,1) -> 0; (1,0) -> 0; (0,2) -> 0; ...
+    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 0; (_,1) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,1) -> 1; (2,1) -> 1; (3,1) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 1; (_,1) -> 0; _ -> 1
+    , \x y -> case (x,y) of (_,1) -> 0; (1,_) -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 0; _ -> 2
+    , \x y -> case (x,y) of (_,0) -> 0; (0,_) -> 2; (1,_) -> 0; _ -> 2
+    , \x _ -> case x of 0 -> 1; _ -> 3
+    , \x _ -> case x of 1 -> 0; _ -> 3
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 3; _ -> 0
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (_,1) -> 2; _ -> 0
+    , \x y -> case (x,y) of (1,2) -> 1; (2,2) -> 1; _ -> 0
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 2; _ -> 1
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (_,1) -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,_) -> 0; (_,2) -> 0; _ -> 1
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 1; _ -> 2
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 2; (_,1) -> 0; _ -> 2
+    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; _ -> 3
+    , \x _ -> case x of 0 -> 0; _ -> 4
+    , \_ y -> case y of 0 -> 4; _ -> 0
+    , \_ y -> case y of 1 -> 3; _ -> 0
+    , \_ y -> case y of 0 -> 1; 1 -> 1; _ -> 0
+    , \_ y -> case y of 2 -> 2; _ -> 0
+    , \_ y -> case y of 3 -> 1; _ -> 0
+    , \_ y -> case y of 0 -> 3; _ -> 1
+    , \_ y -> case y of 1 -> 2; _ -> 1
+    , \_ y -> case y of 0 -> 0; 2 -> 0; _ -> 1
+    , \_ y -> case y of 3 -> 0; _ -> 1
+    , \_ y -> case y of 1 -> 1; _ -> 2
+    , \_ y -> case y of 0 -> 0; 1 -> 0; _ -> 2
+    , \_ y -> case y of 2 -> 0; _ -> 2
+    , \_ y -> case y of 0 -> 1; _ -> 3
+    , \_ y -> case y of 1 -> 0; _ -> 3
+    , \_ y -> case y of 0 -> 0; _ -> 4
+    , \_ _ -> 5
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/4cases-Nat-Nat.txt b/bench/tiers-txt/4cases-Nat-Nat.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-Nat-Nat.txt
@@ -0,0 +1,212 @@
+map length (tiers :: [[ Nat->Nat ]])  =  [1,1,3,5,10,16,30,48,80,...]
+
+length (list :: [ Nat->Nat ])  =  Infinity
+
+allUnique (list :: [ Nat->Nat ])  =  True
+
+ratioRepetitions (list :: [ Nat->Nat ])  =  0 % 1
+
+tiers :: [Nat->Nat]  =
+  [ [\_ -> 0]
+  , [\_ -> 1]
+  , [ \x -> case x of 0 -> 1; _ -> 0
+    , \x -> case x of 0 -> 0; _ -> 1
+    , \_ -> 2
+    ]
+  , [ \x -> case x of 0 -> 2; _ -> 0
+    , \x -> case x of 1 -> 1; _ -> 0
+    , \x -> case x of 1 -> 0; _ -> 1
+    , \x -> case x of 0 -> 0; _ -> 2
+    , \_ -> 3
+    ]
+  , [ \x -> case x of 0 -> 3; _ -> 0
+    , \x -> case x of 1 -> 2; _ -> 0
+    , \x -> case x of 2 -> 1; _ -> 0
+    , \x -> case x of 0 -> 2; _ -> 1
+    , \x -> case x of 0 -> 0; 1 -> 0; _ -> 1
+    , \x -> case x of 2 -> 0; _ -> 1
+    , \x -> case x of 0 -> 1; _ -> 2
+    , \x -> case x of 1 -> 0; _ -> 2
+    , \x -> case x of 0 -> 0; _ -> 3
+    , \_ -> 4
+    ]
+  , [ \x -> case x of 0 -> 4; _ -> 0
+    , \x -> case x of 1 -> 3; _ -> 0
+    , \x -> case x of 0 -> 1; 1 -> 1; _ -> 0
+    , \x -> case x of 2 -> 2; _ -> 0
+    , \x -> case x of 3 -> 1; _ -> 0
+    , \x -> case x of 0 -> 3; _ -> 1
+    , \x -> case x of 1 -> 2; _ -> 1
+    , \x -> case x of 0 -> 0; 2 -> 0; _ -> 1
+    , \x -> case x of 3 -> 0; _ -> 1
+    , \x -> case x of 1 -> 1; _ -> 2
+    , \x -> case x of 0 -> 0; 1 -> 0; _ -> 2
+    , \x -> case x of 2 -> 0; _ -> 2
+    , \x -> case x of 0 -> 1; _ -> 3
+    , \x -> case x of 1 -> 0; _ -> 3
+    , \x -> case x of 0 -> 0; _ -> 4
+    , \_ -> 5
+    ]
+  , [ \x -> case x of 0 -> 5; _ -> 0
+    , \x -> case x of 1 -> 4; _ -> 0
+    , \x -> case x of 0 -> 1; 1 -> 2; _ -> 0
+    , \x -> case x of 0 -> 2; 1 -> 1; _ -> 0
+    , \x -> case x of 2 -> 3; _ -> 0
+    , \x -> case x of 0 -> 1; 2 -> 1; _ -> 0
+    , \x -> case x of 3 -> 2; _ -> 0
+    , \x -> case x of 4 -> 1; _ -> 0
+    , \x -> case x of 0 -> 4; _ -> 1
+    , \x -> case x of 1 -> 3; _ -> 1
+    , \x -> case x of 0 -> 0; 1 -> 2; _ -> 1
+    , \x -> case x of 0 -> 2; 1 -> 0; _ -> 1
+    , \x -> case x of 2 -> 2; _ -> 1
+    , \x -> case x of 0 -> 0; 3 -> 0; _ -> 1
+    , \x -> case x of 1 -> 0; 2 -> 0; _ -> 1
+    , \x -> case x of 4 -> 0; _ -> 1
+    , \x -> case x of 0 -> 3; _ -> 2
+    , \x -> case x of 0 -> 0; 1 -> 1; _ -> 2
+    , \x -> case x of 0 -> 1; 1 -> 0; _ -> 2
+    , \x -> case x of 2 -> 1; _ -> 2
+    , \x -> case x of 0 -> 0; 2 -> 0; _ -> 2
+    , \x -> case x of 3 -> 0; _ -> 2
+    , \x -> case x of 0 -> 2; _ -> 3
+    , \x -> case x of 1 -> 1; _ -> 3
+    , \x -> case x of 0 -> 0; 1 -> 0; _ -> 3
+    , \x -> case x of 2 -> 0; _ -> 3
+    , \x -> case x of 0 -> 1; _ -> 4
+    , \x -> case x of 1 -> 0; _ -> 4
+    , \x -> case x of 0 -> 0; _ -> 5
+    , \_ -> 6
+    ]
+  , [ \x -> case x of 0 -> 6; _ -> 0
+    , \x -> case x of 1 -> 5; _ -> 0
+    , \x -> case x of 0 -> 1; 1 -> 3; _ -> 0
+    , \x -> case x of 0 -> 2; 1 -> 2; _ -> 0
+    , \x -> case x of 0 -> 3; 1 -> 1; _ -> 0
+    , \x -> case x of 2 -> 4; _ -> 0
+    , \x -> case x of 0 -> 1; 2 -> 2; _ -> 0
+    , \x -> case x of 0 -> 2; 2 -> 1; _ -> 0
+    , \x -> case x of 3 -> 3; _ -> 0
+    , \x -> case x of 0 -> 1; 3 -> 1; _ -> 0
+    , \x -> case x of 1 -> 1; 2 -> 1; _ -> 0
+    , \x -> case x of 4 -> 2; _ -> 0
+    , \x -> case x of 5 -> 1; _ -> 0
+    , \x -> case x of 0 -> 5; _ -> 1
+    , \x -> case x of 1 -> 4; _ -> 1
+    , \x -> case x of 0 -> 0; 1 -> 3; _ -> 1
+    , \x -> case x of 0 -> 3; 1 -> 0; _ -> 1
+    , \x -> case x of 2 -> 3; _ -> 1
+    , \x -> case x of 0 -> 0; 2 -> 2; _ -> 1
+    , \x -> case x of 0 -> 2; 2 -> 0; _ -> 1
+    , \x -> case x of 3 -> 2; _ -> 1
+    , \x -> case x of 0 -> 0; 1 -> 0; 2 -> 0; _ -> 1
+    , \x -> case x of 0 -> 0; 4 -> 0; _ -> 1
+    , \x -> case x of 1 -> 0; 3 -> 0; _ -> 1
+    , \x -> case x of 5 -> 0; _ -> 1
+    , \x -> case x of 0 -> 4; _ -> 2
+    , \x -> case x of 1 -> 3; _ -> 2
+    , \x -> case x of 0 -> 1; 1 -> 1; _ -> 2
+    , \x -> case x of 0 -> 0; 2 -> 1; _ -> 2
+    , \x -> case x of 0 -> 1; 2 -> 0; _ -> 2
+    , \x -> case x of 3 -> 1; _ -> 2
+    , \x -> case x of 0 -> 0; 3 -> 0; _ -> 2
+    , \x -> case x of 1 -> 0; 2 -> 0; _ -> 2
+    , \x -> case x of 4 -> 0; _ -> 2
+    , \x -> case x of 1 -> 2; _ -> 3
+    , \x -> case x of 0 -> 0; 1 -> 1; _ -> 3
+    , \x -> case x of 0 -> 1; 1 -> 0; _ -> 3
+    , \x -> case x of 2 -> 1; _ -> 3
+    , \x -> case x of 0 -> 0; 2 -> 0; _ -> 3
+    , \x -> case x of 3 -> 0; _ -> 3
+    , \x -> case x of 0 -> 2; _ -> 4
+    , \x -> case x of 1 -> 1; _ -> 4
+    , \x -> case x of 0 -> 0; 1 -> 0; _ -> 4
+    , \x -> case x of 2 -> 0; _ -> 4
+    , \x -> case x of 0 -> 1; _ -> 5
+    , \x -> case x of 1 -> 0; _ -> 5
+    , \x -> case x of 0 -> 0; _ -> 6
+    , \_ -> 7
+    ]
+  , [ \x -> case x of 0 -> 7; _ -> 0
+    , \x -> case x of 1 -> 6; _ -> 0
+    , \x -> case x of 0 -> 1; 1 -> 4; _ -> 0
+    , \x -> case x of 0 -> 2; 1 -> 3; _ -> 0
+    , \x -> case x of 0 -> 3; 1 -> 2; _ -> 0
+    , \x -> case x of 0 -> 4; 1 -> 1; _ -> 0
+    , \x -> case x of 2 -> 5; _ -> 0
+    , \x -> case x of 0 -> 1; 2 -> 3; _ -> 0
+    , \x -> case x of 0 -> 2; 2 -> 2; _ -> 0
+    , \x -> case x of 0 -> 3; 2 -> 1; _ -> 0
+    , \x -> case x of 3 -> 4; _ -> 0
+    , \x -> case x of 0 -> 1; 3 -> 2; _ -> 0
+    , \x -> case x of 0 -> 2; 3 -> 1; _ -> 0
+    , \x -> case x of 1 -> 1; 2 -> 2; _ -> 0
+    , \x -> case x of 1 -> 2; 2 -> 1; _ -> 0
+    , \x -> case x of 4 -> 3; _ -> 0
+    , \x -> case x of 0 -> 1; 4 -> 1; _ -> 0
+    , \x -> case x of 1 -> 1; 3 -> 1; _ -> 0
+    , \x -> case x of 5 -> 2; _ -> 0
+    , \x -> case x of 6 -> 1; _ -> 0
+    , \x -> case x of 0 -> 6; _ -> 1
+    , \x -> case x of 1 -> 5; _ -> 1
+    , \x -> case x of 0 -> 0; 1 -> 4; _ -> 1
+    , \x -> case x of 0 -> 2; 1 -> 2; _ -> 1
+    , \x -> case x of 0 -> 4; 1 -> 0; _ -> 1
+    , \x -> case x of 2 -> 4; _ -> 1
+    , \x -> case x of 0 -> 0; 2 -> 3; _ -> 1
+    , \x -> case x of 0 -> 3; 2 -> 0; _ -> 1
+    , \x -> case x of 3 -> 3; _ -> 1
+    , \x -> case x of 0 -> 0; 3 -> 2; _ -> 1
+    , \x -> case x of 0 -> 2; 3 -> 0; _ -> 1
+    , \x -> case x of 1 -> 0; 2 -> 2; _ -> 1
+    , \x -> case x of 1 -> 2; 2 -> 0; _ -> 1
+    , \x -> case x of 4 -> 2; _ -> 1
+    , \x -> case x of 0 -> 0; 1 -> 0; 3 -> 0; _ -> 1
+    , \x -> case x of 0 -> 0; 5 -> 0; _ -> 1
+    , \x -> case x of 1 -> 0; 4 -> 0; _ -> 1
+    , \x -> case x of 2 -> 0; 3 -> 0; _ -> 1
+    , \x -> case x of 6 -> 0; _ -> 1
+    , \x -> case x of 0 -> 5; _ -> 2
+    , \x -> case x of 1 -> 4; _ -> 2
+    , \x -> case x of 0 -> 0; 1 -> 3; _ -> 2
+    , \x -> case x of 0 -> 3; 1 -> 0; _ -> 2
+    , \x -> case x of 2 -> 3; _ -> 2
+    , \x -> case x of 0 -> 1; 2 -> 1; _ -> 2
+    , \x -> case x of 0 -> 0; 3 -> 1; _ -> 2
+    , \x -> case x of 0 -> 1; 3 -> 0; _ -> 2
+    , \x -> case x of 1 -> 0; 2 -> 1; _ -> 2
+    , \x -> case x of 1 -> 1; 2 -> 0; _ -> 2
+    , \x -> case x of 4 -> 1; _ -> 2
+    , \x -> case x of 0 -> 0; 1 -> 0; 2 -> 0; _ -> 2
+    , \x -> case x of 0 -> 0; 4 -> 0; _ -> 2
+    , \x -> case x of 1 -> 0; 3 -> 0; _ -> 2
+    , \x -> case x of 5 -> 0; _ -> 2
+    , \x -> case x of 0 -> 4; _ -> 3
+    , \x -> case x of 0 -> 0; 1 -> 2; _ -> 3
+    , \x -> case x of 0 -> 1; 1 -> 1; _ -> 3
+    , \x -> case x of 0 -> 2; 1 -> 0; _ -> 3
+    , \x -> case x of 2 -> 2; _ -> 3
+    , \x -> case x of 0 -> 0; 2 -> 1; _ -> 3
+    , \x -> case x of 0 -> 1; 2 -> 0; _ -> 3
+    , \x -> case x of 3 -> 1; _ -> 3
+    , \x -> case x of 0 -> 0; 3 -> 0; _ -> 3
+    , \x -> case x of 1 -> 0; 2 -> 0; _ -> 3
+    , \x -> case x of 4 -> 0; _ -> 3
+    , \x -> case x of 0 -> 3; _ -> 4
+    , \x -> case x of 1 -> 2; _ -> 4
+    , \x -> case x of 0 -> 0; 1 -> 1; _ -> 4
+    , \x -> case x of 0 -> 1; 1 -> 0; _ -> 4
+    , \x -> case x of 2 -> 1; _ -> 4
+    , \x -> case x of 0 -> 0; 2 -> 0; _ -> 4
+    , \x -> case x of 3 -> 0; _ -> 4
+    , \x -> case x of 0 -> 2; _ -> 5
+    , \x -> case x of 1 -> 1; _ -> 5
+    , \x -> case x of 0 -> 0; 1 -> 0; _ -> 5
+    , \x -> case x of 2 -> 0; _ -> 5
+    , \x -> case x of 0 -> 1; _ -> 6
+    , \x -> case x of 1 -> 0; _ -> 6
+    , \x -> case x of 0 -> 0; _ -> 7
+    , \_ -> 8
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/4cases-Nat-U.txt b/bench/tiers-txt/4cases-Nat-U.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-Nat-U.txt
@@ -0,0 +1,17 @@
+map length (tiers :: [[ Nat->() ]])  =  [1,0,0,0,0,0,...]
+
+length (list :: [ Nat->() ])  =  1
+
+allUnique (list :: [ Nat->() ])  =  True
+
+ratioRepetitions (list :: [ Nat->() ])  =  0 % 1
+
+tiers :: [Nat->()]  =
+  [ [\_ -> ()]
+  , []
+  , []
+  , []
+  , []
+  , []
+  , ...
+  ]
diff --git a/bench/tiers-txt/4cases-Nat2-Nat2.txt b/bench/tiers-txt/4cases-Nat2-Nat2.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-Nat2-Nat2.txt
@@ -0,0 +1,15 @@
+map length (tiers :: [[ Nat2->Nat2 ]])  =  [1,2,1]
+
+length (list :: [ Nat2->Nat2 ])  =  4
+
+allUnique (list :: [ Nat2->Nat2 ])  =  True
+
+ratioRepetitions (list :: [ Nat2->Nat2 ])  =  0 % 1
+
+tiers :: [Nat2->Nat2]  =
+  [ [\_ -> 0]
+  , [ \x -> case x of 0 -> 0; 1 -> 1
+    , \x -> case x of 0 -> 1; 1 -> 0
+    ]
+  , [\_ -> 1]
+  ]
diff --git a/bench/tiers-txt/4cases-Nat2-Nat3.txt b/bench/tiers-txt/4cases-Nat2-Nat3.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-Nat2-Nat3.txt
@@ -0,0 +1,22 @@
+map length (tiers :: [[ Nat2->Nat3 ]])  =  [1,2,3,2,1]
+
+length (list :: [ Nat2->Nat3 ])  =  9
+
+allUnique (list :: [ Nat2->Nat3 ])  =  True
+
+ratioRepetitions (list :: [ Nat2->Nat3 ])  =  0 % 1
+
+tiers :: [Nat2->Nat3]  =
+  [ [\_ -> 0]
+  , [ \x -> case x of 0 -> 0; 1 -> 1
+    , \x -> case x of 0 -> 1; 1 -> 0
+    ]
+  , [ \x -> case x of 0 -> 0; 1 -> 2
+    , \_ -> 1
+    , \x -> case x of 0 -> 2; 1 -> 0
+    ]
+  , [ \x -> case x of 0 -> 1; 1 -> 2
+    , \x -> case x of 0 -> 2; 1 -> 1
+    ]
+  , [\_ -> 2]
+  ]
diff --git a/bench/tiers-txt/4cases-Nat3-Nat2.txt b/bench/tiers-txt/4cases-Nat3-Nat2.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-Nat3-Nat2.txt
@@ -0,0 +1,20 @@
+map length (tiers :: [[ Nat3->Nat2 ]])  =  [1,3,3,1]
+
+length (list :: [ Nat3->Nat2 ])  =  8
+
+allUnique (list :: [ Nat3->Nat2 ])  =  True
+
+ratioRepetitions (list :: [ Nat3->Nat2 ])  =  0 % 1
+
+tiers :: [Nat3->Nat2]  =
+  [ [\_ -> 0]
+  , [ \x -> case x of 2 -> 1; _ -> 0
+    , \x -> case x of 1 -> 1; _ -> 0
+    , \x -> case x of 0 -> 1; _ -> 0
+    ]
+  , [ \x -> case x of 0 -> 0; _ -> 1
+    , \x -> case x of 1 -> 0; _ -> 1
+    , \x -> case x of 2 -> 0; _ -> 1
+    ]
+  , [\_ -> 1]
+  ]
diff --git a/bench/tiers-txt/4cases-Nat3-Nat3.txt b/bench/tiers-txt/4cases-Nat3-Nat3.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-Nat3-Nat3.txt
@@ -0,0 +1,42 @@
+map length (tiers :: [[ Nat3->Nat3 ]])  =  [1,3,6,7,6,3,1]
+
+length (list :: [ Nat3->Nat3 ])  =  Infinity
+
+allUnique (list :: [ Nat3->Nat3 ])  =  True
+
+ratioRepetitions (list :: [ Nat3->Nat3 ])  =  0 % 1
+
+tiers :: [Nat3->Nat3]  =
+  [ [\_ -> 0]
+  , [ \x -> case x of 2 -> 1; _ -> 0
+    , \x -> case x of 1 -> 1; _ -> 0
+    , \x -> case x of 0 -> 1; _ -> 0
+    ]
+  , [ \x -> case x of 2 -> 2; _ -> 0
+    , \x -> case x of 0 -> 0; _ -> 1
+    , \x -> case x of 1 -> 2; _ -> 0
+    , \x -> case x of 1 -> 0; _ -> 1
+    , \x -> case x of 2 -> 0; _ -> 1
+    , \x -> case x of 0 -> 2; _ -> 0
+    ]
+  , [ \x -> case x of 0 -> 0; 1 -> 1; 2 -> 2
+    , \x -> case x of 0 -> 0; 1 -> 2; 2 -> 1
+    , \x -> case x of 0 -> 1; 1 -> 0; 2 -> 2
+    , \_ -> 1
+    , \x -> case x of 0 -> 1; 1 -> 2; 2 -> 0
+    , \x -> case x of 0 -> 2; 1 -> 0; 2 -> 1
+    , \x -> case x of 0 -> 2; 1 -> 1; 2 -> 0
+    ]
+  , [ \x -> case x of 0 -> 0; _ -> 2
+    , \x -> case x of 2 -> 2; _ -> 1
+    , \x -> case x of 1 -> 2; _ -> 1
+    , \x -> case x of 1 -> 0; _ -> 2
+    , \x -> case x of 0 -> 2; _ -> 1
+    , \x -> case x of 2 -> 0; _ -> 2
+    ]
+  , [ \x -> case x of 0 -> 1; _ -> 2
+    , \x -> case x of 1 -> 1; _ -> 2
+    , \x -> case x of 2 -> 1; _ -> 2
+    ]
+  , [\_ -> 2]
+  ]
diff --git a/bench/tiers-txt/4cases-Nats-Nats.txt b/bench/tiers-txt/4cases-Nats-Nats.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-Nats-Nats.txt
@@ -0,0 +1,135 @@
+map length (tiers :: [[ [Nat]->[Nat] ]])  =  [1,1,4,10,29,75,...]
+
+length (list :: [ [Nat]->[Nat] ])  =  Infinity
+
+allUnique (list :: [ [Nat]->[Nat] ])  =  True
+
+ratioRepetitions (list :: [ [Nat]->[Nat] ])  =  0 % 1
+
+tiers :: [[Nat]->[Nat]]  =
+  [ [\_ -> []]
+  , [\_ -> [0]]
+  , [ \x -> case x of [] -> [0]; _ -> []
+    , \x -> case x of [] -> []; _ -> [0]
+    , \_ -> [0,0]
+    , \_ -> [1]
+    ]
+  , [ \x -> case x of [] -> [0,0]; _ -> []
+    , \x -> case x of [] -> [1]; _ -> []
+    , \x -> case x of [0] -> [0]; _ -> []
+    , \x -> case x of [0] -> []; _ -> [0]
+    , \x -> case x of [] -> []; _ -> [0,0]
+    , \x -> case x of [] -> []; _ -> [1]
+    , \_ -> [0,0,0]
+    , \_ -> [0,1]
+    , \_ -> [1,0]
+    , \_ -> [2]
+    ]
+  , [ \x -> case x of [] -> [0,0,0]; _ -> []
+    , \x -> case x of [] -> [0,1]; _ -> []
+    , \x -> case x of [] -> [1,0]; _ -> []
+    , \x -> case x of [] -> [2]; _ -> []
+    , \x -> case x of [0] -> [0,0]; _ -> []
+    , \x -> case x of [0] -> [1]; _ -> []
+    , \x -> case x of [0,0] -> [0]; _ -> []
+    , \x -> case x of [1] -> [0]; _ -> []
+    , \x -> case x of [] -> [0,0]; _ -> [0]
+    , \x -> case x of [] -> [1]; _ -> [0]
+    , \x -> case x of [] -> []; [0] -> []; _ -> [0]
+    , \x -> case x of [0,0] -> []; _ -> [0]
+    , \x -> case x of [1] -> []; _ -> [0]
+    , \x -> case x of [] -> [0]; _ -> [0,0]
+    , \x -> case x of [0] -> []; _ -> [0,0]
+    , \x -> case x of [] -> [0]; _ -> [1]
+    , \x -> case x of [0] -> []; _ -> [1]
+    , \x -> case x of [] -> []; _ -> [0,0,0]
+    , \x -> case x of [] -> []; _ -> [0,1]
+    , \x -> case x of [] -> []; _ -> [1,0]
+    , \x -> case x of [] -> []; _ -> [2]
+    , \_ -> [0,0,0,0]
+    , \_ -> [0,0,1]
+    , \_ -> [0,1,0]
+    , \_ -> [0,2]
+    , \_ -> [1,0,0]
+    , \_ -> [1,1]
+    , \_ -> [2,0]
+    , \_ -> [3]
+    ]
+  , [ \x -> case x of [] -> [0,0,0,0]; _ -> []
+    , \x -> case x of [] -> [0,0,1]; _ -> []
+    , \x -> case x of [] -> [0,1,0]; _ -> []
+    , \x -> case x of [] -> [0,2]; _ -> []
+    , \x -> case x of [] -> [1,0,0]; _ -> []
+    , \x -> case x of [] -> [1,1]; _ -> []
+    , \x -> case x of [] -> [2,0]; _ -> []
+    , \x -> case x of [] -> [3]; _ -> []
+    , \x -> case x of [0] -> [0,0,0]; _ -> []
+    , \x -> case x of [0] -> [0,1]; _ -> []
+    , \x -> case x of [0] -> [1,0]; _ -> []
+    , \x -> case x of [0] -> [2]; _ -> []
+    , \x -> case x of [] -> [0]; [0] -> [0]; _ -> []
+    , \x -> case x of [0,0] -> [0,0]; _ -> []
+    , \x -> case x of [0,0] -> [1]; _ -> []
+    , \x -> case x of [1] -> [0,0]; _ -> []
+    , \x -> case x of [1] -> [1]; _ -> []
+    , \x -> case x of [0,0,0] -> [0]; _ -> []
+    , \x -> case x of [0,1] -> [0]; _ -> []
+    , \x -> case x of [1,0] -> [0]; _ -> []
+    , \x -> case x of [2] -> [0]; _ -> []
+    , \x -> case x of [] -> [0,0,0]; _ -> [0]
+    , \x -> case x of [] -> [0,1]; _ -> [0]
+    , \x -> case x of [] -> [1,0]; _ -> [0]
+    , \x -> case x of [] -> [2]; _ -> [0]
+    , \x -> case x of [0] -> [0,0]; _ -> [0]
+    , \x -> case x of [0] -> [1]; _ -> [0]
+    , \x -> case x of [] -> []; [0,0] -> []; _ -> [0]
+    , \x -> case x of [] -> []; [1] -> []; _ -> [0]
+    , \x -> case x of [0,0,0] -> []; _ -> [0]
+    , \x -> case x of [0,1] -> []; _ -> [0]
+    , \x -> case x of [1,0] -> []; _ -> [0]
+    , \x -> case x of [2] -> []; _ -> [0]
+    , \x -> case x of [] -> [1]; _ -> [0,0]
+    , \x -> case x of [0] -> [0]; _ -> [0,0]
+    , \x -> case x of [] -> []; [0] -> []; _ -> [0,0]
+    , \x -> case x of [0,0] -> []; _ -> [0,0]
+    , \x -> case x of [1] -> []; _ -> [0,0]
+    , \x -> case x of [] -> [0,0]; _ -> [1]
+    , \x -> case x of [0] -> [0]; _ -> [1]
+    , \x -> case x of [] -> []; [0] -> []; _ -> [1]
+    , \x -> case x of [0,0] -> []; _ -> [1]
+    , \x -> case x of [1] -> []; _ -> [1]
+    , \x -> case x of [] -> [0]; _ -> [0,0,0]
+    , \x -> case x of [0] -> []; _ -> [0,0,0]
+    , \x -> case x of [] -> [0]; _ -> [0,1]
+    , \x -> case x of [0] -> []; _ -> [0,1]
+    , \x -> case x of [] -> [0]; _ -> [1,0]
+    , \x -> case x of [0] -> []; _ -> [1,0]
+    , \x -> case x of [] -> [0]; _ -> [2]
+    , \x -> case x of [0] -> []; _ -> [2]
+    , \x -> case x of [] -> []; _ -> [0,0,0,0]
+    , \x -> case x of [] -> []; _ -> [0,0,1]
+    , \x -> case x of [] -> []; _ -> [0,1,0]
+    , \x -> case x of [] -> []; _ -> [0,2]
+    , \x -> case x of [] -> []; _ -> [1,0,0]
+    , \x -> case x of [] -> []; _ -> [1,1]
+    , \x -> case x of [] -> []; _ -> [2,0]
+    , \x -> case x of [] -> []; _ -> [3]
+    , \_ -> [0,0,0,0,0]
+    , \_ -> [0,0,0,1]
+    , \_ -> [0,0,1,0]
+    , \_ -> [0,0,2]
+    , \_ -> [0,1,0,0]
+    , \_ -> [0,1,1]
+    , \_ -> [0,2,0]
+    , \_ -> [0,3]
+    , \_ -> [1,0,0,0]
+    , \_ -> [1,0,1]
+    , \_ -> [1,1,0]
+    , \_ -> [1,2]
+    , \_ -> [2,0,0]
+    , \_ -> [2,1]
+    , \_ -> [3,0]
+    , \_ -> [4]
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/4cases-U-Bool.txt b/bench/tiers-txt/4cases-U-Bool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-U-Bool.txt
@@ -0,0 +1,13 @@
+map length (tiers :: [[ ()->Bool ]])  =  [2]
+
+length (list :: [ ()->Bool ])  =  2
+
+allUnique (list :: [ ()->Bool ])  =  True
+
+ratioRepetitions (list :: [ ()->Bool ])  =  0 % 1
+
+tiers :: [()->Bool]  =
+  [ [ \_ -> False
+    , \_ -> True
+    ]
+  ]
diff --git a/bench/tiers-txt/4cases-U-Nat.txt b/bench/tiers-txt/4cases-U-Nat.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-U-Nat.txt
@@ -0,0 +1,17 @@
+map length (tiers :: [[ ()->Nat ]])  =  [1,1,1,1,1,1,...]
+
+length (list :: [ ()->Nat ])  =  Infinity
+
+allUnique (list :: [ ()->Nat ])  =  True
+
+ratioRepetitions (list :: [ ()->Nat ])  =  0 % 1
+
+tiers :: [()->Nat]  =
+  [ [\_ -> 0]
+  , [\_ -> 1]
+  , [\_ -> 2]
+  , [\_ -> 3]
+  , [\_ -> 4]
+  , [\_ -> 5]
+  , ...
+  ]
diff --git a/bench/tiers-txt/4cases-U-U.txt b/bench/tiers-txt/4cases-U-U.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-U-U.txt
@@ -0,0 +1,10 @@
+map length (tiers :: [[ ()->() ]])  =  [1]
+
+length (list :: [ ()->() ])  =  1
+
+allUnique (list :: [ ()->() ])  =  True
+
+ratioRepetitions (list :: [ ()->() ])  =  0 % 1
+
+tiers :: [()->()]  =
+  [[\_ -> ()]]
diff --git a/bench/tiers-txt/4cases-Us-Us.txt b/bench/tiers-txt/4cases-Us-Us.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/4cases-Us-Us.txt
@@ -0,0 +1,51 @@
+map length (tiers :: [[ [()]->[()] ]])  =  [1,1,3,5,10,16,...]
+
+length (list :: [ [()]->[()] ])  =  Infinity
+
+allUnique (list :: [ [()]->[()] ])  =  True
+
+ratioRepetitions (list :: [ [()]->[()] ])  =  0 % 1
+
+tiers :: [[()]->[()]]  =
+  [ [\_ -> []]
+  , [\_ -> [()]]
+  , [ \x -> case x of [] -> [()]; _ -> []
+    , \x -> case x of [] -> []; _ -> [()]
+    , \_ -> [(),()]
+    ]
+  , [ \x -> case x of [] -> [(),()]; _ -> []
+    , \x -> case x of [()] -> [()]; _ -> []
+    , \x -> case x of [()] -> []; _ -> [()]
+    , \x -> case x of [] -> []; _ -> [(),()]
+    , \_ -> [(),(),()]
+    ]
+  , [ \x -> case x of [] -> [(),(),()]; _ -> []
+    , \x -> case x of [()] -> [(),()]; _ -> []
+    , \x -> case x of [(),()] -> [()]; _ -> []
+    , \x -> case x of [] -> [(),()]; _ -> [()]
+    , \x -> case x of [] -> []; [()] -> []; _ -> [()]
+    , \x -> case x of [(),()] -> []; _ -> [()]
+    , \x -> case x of [] -> [()]; _ -> [(),()]
+    , \x -> case x of [()] -> []; _ -> [(),()]
+    , \x -> case x of [] -> []; _ -> [(),(),()]
+    , \_ -> [(),(),(),()]
+    ]
+  , [ \x -> case x of [] -> [(),(),(),()]; _ -> []
+    , \x -> case x of [()] -> [(),(),()]; _ -> []
+    , \x -> case x of [] -> [()]; [()] -> [()]; _ -> []
+    , \x -> case x of [(),()] -> [(),()]; _ -> []
+    , \x -> case x of [(),(),()] -> [()]; _ -> []
+    , \x -> case x of [] -> [(),(),()]; _ -> [()]
+    , \x -> case x of [()] -> [(),()]; _ -> [()]
+    , \x -> case x of [] -> []; [(),()] -> []; _ -> [()]
+    , \x -> case x of [(),(),()] -> []; _ -> [()]
+    , \x -> case x of [()] -> [()]; _ -> [(),()]
+    , \x -> case x of [] -> []; [()] -> []; _ -> [(),()]
+    , \x -> case x of [(),()] -> []; _ -> [(),()]
+    , \x -> case x of [] -> [()]; _ -> [(),(),()]
+    , \x -> case x of [()] -> []; _ -> [(),(),()]
+    , \x -> case x of [] -> []; _ -> [(),(),(),()]
+    , \_ -> [(),(),(),(),()]
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/BagBool.txt b/bench/tiers-txt/BagBool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/BagBool.txt
@@ -0,0 +1,100 @@
+map length (tiers :: [[ Bag Bool ]])  =  [1,2,3,4,5,6,7,8,9,10,11,12,...]
+
+length (list :: [ Bag Bool ])  =  Infinity
+
+allUnique (list :: [ Bag Bool ])  =  True
+
+ratioRepetitions (list :: [ Bag Bool ])  =  0 % 1
+
+tiers :: [Bag Bool]  =
+  [ [Bag []]
+  , [ Bag [False]
+    , Bag [True]
+    ]
+  , [ Bag [False,False]
+    , Bag [False,True]
+    , Bag [True,True]
+    ]
+  , [ Bag [False,False,False]
+    , Bag [False,False,True]
+    , Bag [False,True,True]
+    , Bag [True,True,True]
+    ]
+  , [ Bag [False,False,False,False]
+    , Bag [False,False,False,True]
+    , Bag [False,False,True,True]
+    , Bag [False,True,True,True]
+    , Bag [True,True,True,True]
+    ]
+  , [ Bag [False,False,False,False,False]
+    , Bag [False,False,False,False,True]
+    , Bag [False,False,False,True,True]
+    , Bag [False,False,True,True,True]
+    , Bag [False,True,True,True,True]
+    , Bag [True,True,True,True,True]
+    ]
+  , [ Bag [False,False,False,False,False,False]
+    , Bag [False,False,False,False,False,True]
+    , Bag [False,False,False,False,True,True]
+    , Bag [False,False,False,True,True,True]
+    , Bag [False,False,True,True,True,True]
+    , Bag [False,True,True,True,True,True]
+    , Bag [True,True,True,True,True,True]
+    ]
+  , [ Bag [False,False,False,False,False,False,False]
+    , Bag [False,False,False,False,False,False,True]
+    , Bag [False,False,False,False,False,True,True]
+    , Bag [False,False,False,False,True,True,True]
+    , Bag [False,False,False,True,True,True,True]
+    , Bag [False,False,True,True,True,True,True]
+    , Bag [False,True,True,True,True,True,True]
+    , Bag [True,True,True,True,True,True,True]
+    ]
+  , [ Bag [False,False,False,False,False,False,False,False]
+    , Bag [False,False,False,False,False,False,False,True]
+    , Bag [False,False,False,False,False,False,True,True]
+    , Bag [False,False,False,False,False,True,True,True]
+    , Bag [False,False,False,False,True,True,True,True]
+    , Bag [False,False,False,True,True,True,True,True]
+    , Bag [False,False,True,True,True,True,True,True]
+    , Bag [False,True,True,True,True,True,True,True]
+    , Bag [True,True,True,True,True,True,True,True]
+    ]
+  , [ Bag [False,False,False,False,False,False,False,False,False]
+    , Bag [False,False,False,False,False,False,False,False,True]
+    , Bag [False,False,False,False,False,False,False,True,True]
+    , Bag [False,False,False,False,False,False,True,True,True]
+    , Bag [False,False,False,False,False,True,True,True,True]
+    , Bag [False,False,False,False,True,True,True,True,True]
+    , Bag [False,False,False,True,True,True,True,True,True]
+    , Bag [False,False,True,True,True,True,True,True,True]
+    , Bag [False,True,True,True,True,True,True,True,True]
+    , Bag [True,True,True,True,True,True,True,True,True]
+    ]
+  , [ Bag [False,False,False,False,False,False,False,False,False,False]
+    , Bag [False,False,False,False,False,False,False,False,False,True]
+    , Bag [False,False,False,False,False,False,False,False,True,True]
+    , Bag [False,False,False,False,False,False,False,True,True,True]
+    , Bag [False,False,False,False,False,False,True,True,True,True]
+    , Bag [False,False,False,False,False,True,True,True,True,True]
+    , Bag [False,False,False,False,True,True,True,True,True,True]
+    , Bag [False,False,False,True,True,True,True,True,True,True]
+    , Bag [False,False,True,True,True,True,True,True,True,True]
+    , Bag [False,True,True,True,True,True,True,True,True,True]
+    , Bag [True,True,True,True,True,True,True,True,True,True]
+    ]
+  , [ Bag [False,False,False,False,False,False,False,False,False,False,False]
+    , Bag [False,False,False,False,False,False,False,False,False,False,True]
+    , Bag [False,False,False,False,False,False,False,False,False,True,True]
+    , Bag [False,False,False,False,False,False,False,False,True,True,True]
+    , Bag [False,False,False,False,False,False,False,True,True,True,True]
+    , Bag [False,False,False,False,False,False,True,True,True,True,True]
+    , Bag [False,False,False,False,False,True,True,True,True,True,True]
+    , Bag [False,False,False,False,True,True,True,True,True,True,True]
+    , Bag [False,False,False,True,True,True,True,True,True,True,True]
+    , Bag [False,False,True,True,True,True,True,True,True,True,True]
+    , Bag [False,True,True,True,True,True,True,True,True,True,True]
+    , Bag [True,True,True,True,True,True,True,True,True,True,True]
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/BagNat.txt b/bench/tiers-txt/BagNat.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/BagNat.txt
@@ -0,0 +1,216 @@
+map length (tiers :: [[ Bag Nat ]])  =  [1,1,2,3,5,7,11,15,22,30,42,56,...]
+
+length (list :: [ Bag Nat ])  =  Infinity
+
+allUnique (list :: [ Bag Nat ])  =  True
+
+ratioRepetitions (list :: [ Bag Nat ])  =  0 % 1
+
+tiers :: [Bag Nat]  =
+  [ [Bag []]
+  , [Bag [0]]
+  , [ Bag [0,0]
+    , Bag [1]
+    ]
+  , [ Bag [0,0,0]
+    , Bag [0,1]
+    , Bag [2]
+    ]
+  , [ Bag [0,0,0,0]
+    , Bag [0,0,1]
+    , Bag [0,2]
+    , Bag [1,1]
+    , Bag [3]
+    ]
+  , [ Bag [0,0,0,0,0]
+    , Bag [0,0,0,1]
+    , Bag [0,0,2]
+    , Bag [0,1,1]
+    , Bag [0,3]
+    , Bag [1,2]
+    , Bag [4]
+    ]
+  , [ Bag [0,0,0,0,0,0]
+    , Bag [0,0,0,0,1]
+    , Bag [0,0,0,2]
+    , Bag [0,0,1,1]
+    , Bag [0,0,3]
+    , Bag [0,1,2]
+    , Bag [0,4]
+    , Bag [1,1,1]
+    , Bag [1,3]
+    , Bag [2,2]
+    , Bag [5]
+    ]
+  , [ Bag [0,0,0,0,0,0,0]
+    , Bag [0,0,0,0,0,1]
+    , Bag [0,0,0,0,2]
+    , Bag [0,0,0,1,1]
+    , Bag [0,0,0,3]
+    , Bag [0,0,1,2]
+    , Bag [0,0,4]
+    , Bag [0,1,1,1]
+    , Bag [0,1,3]
+    , Bag [0,2,2]
+    , Bag [0,5]
+    , Bag [1,1,2]
+    , Bag [1,4]
+    , Bag [2,3]
+    , Bag [6]
+    ]
+  , [ Bag [0,0,0,0,0,0,0,0]
+    , Bag [0,0,0,0,0,0,1]
+    , Bag [0,0,0,0,0,2]
+    , Bag [0,0,0,0,1,1]
+    , Bag [0,0,0,0,3]
+    , Bag [0,0,0,1,2]
+    , Bag [0,0,0,4]
+    , Bag [0,0,1,1,1]
+    , Bag [0,0,1,3]
+    , Bag [0,0,2,2]
+    , Bag [0,0,5]
+    , Bag [0,1,1,2]
+    , Bag [0,1,4]
+    , Bag [0,2,3]
+    , Bag [0,6]
+    , Bag [1,1,1,1]
+    , Bag [1,1,3]
+    , Bag [1,2,2]
+    , Bag [1,5]
+    , Bag [2,4]
+    , Bag [3,3]
+    , Bag [7]
+    ]
+  , [ Bag [0,0,0,0,0,0,0,0,0]
+    , Bag [0,0,0,0,0,0,0,1]
+    , Bag [0,0,0,0,0,0,2]
+    , Bag [0,0,0,0,0,1,1]
+    , Bag [0,0,0,0,0,3]
+    , Bag [0,0,0,0,1,2]
+    , Bag [0,0,0,0,4]
+    , Bag [0,0,0,1,1,1]
+    , Bag [0,0,0,1,3]
+    , Bag [0,0,0,2,2]
+    , Bag [0,0,0,5]
+    , Bag [0,0,1,1,2]
+    , Bag [0,0,1,4]
+    , Bag [0,0,2,3]
+    , Bag [0,0,6]
+    , Bag [0,1,1,1,1]
+    , Bag [0,1,1,3]
+    , Bag [0,1,2,2]
+    , Bag [0,1,5]
+    , Bag [0,2,4]
+    , Bag [0,3,3]
+    , Bag [0,7]
+    , Bag [1,1,1,2]
+    , Bag [1,1,4]
+    , Bag [1,2,3]
+    , Bag [1,6]
+    , Bag [2,2,2]
+    , Bag [2,5]
+    , Bag [3,4]
+    , Bag [8]
+    ]
+  , [ Bag [0,0,0,0,0,0,0,0,0,0]
+    , Bag [0,0,0,0,0,0,0,0,1]
+    , Bag [0,0,0,0,0,0,0,2]
+    , Bag [0,0,0,0,0,0,1,1]
+    , Bag [0,0,0,0,0,0,3]
+    , Bag [0,0,0,0,0,1,2]
+    , Bag [0,0,0,0,0,4]
+    , Bag [0,0,0,0,1,1,1]
+    , Bag [0,0,0,0,1,3]
+    , Bag [0,0,0,0,2,2]
+    , Bag [0,0,0,0,5]
+    , Bag [0,0,0,1,1,2]
+    , Bag [0,0,0,1,4]
+    , Bag [0,0,0,2,3]
+    , Bag [0,0,0,6]
+    , Bag [0,0,1,1,1,1]
+    , Bag [0,0,1,1,3]
+    , Bag [0,0,1,2,2]
+    , Bag [0,0,1,5]
+    , Bag [0,0,2,4]
+    , Bag [0,0,3,3]
+    , Bag [0,0,7]
+    , Bag [0,1,1,1,2]
+    , Bag [0,1,1,4]
+    , Bag [0,1,2,3]
+    , Bag [0,1,6]
+    , Bag [0,2,2,2]
+    , Bag [0,2,5]
+    , Bag [0,3,4]
+    , Bag [0,8]
+    , Bag [1,1,1,1,1]
+    , Bag [1,1,1,3]
+    , Bag [1,1,2,2]
+    , Bag [1,1,5]
+    , Bag [1,2,4]
+    , Bag [1,3,3]
+    , Bag [1,7]
+    , Bag [2,2,3]
+    , Bag [2,6]
+    , Bag [3,5]
+    , Bag [4,4]
+    , Bag [9]
+    ]
+  , [ Bag [0,0,0,0,0,0,0,0,0,0,0]
+    , Bag [0,0,0,0,0,0,0,0,0,1]
+    , Bag [0,0,0,0,0,0,0,0,2]
+    , Bag [0,0,0,0,0,0,0,1,1]
+    , Bag [0,0,0,0,0,0,0,3]
+    , Bag [0,0,0,0,0,0,1,2]
+    , Bag [0,0,0,0,0,0,4]
+    , Bag [0,0,0,0,0,1,1,1]
+    , Bag [0,0,0,0,0,1,3]
+    , Bag [0,0,0,0,0,2,2]
+    , Bag [0,0,0,0,0,5]
+    , Bag [0,0,0,0,1,1,2]
+    , Bag [0,0,0,0,1,4]
+    , Bag [0,0,0,0,2,3]
+    , Bag [0,0,0,0,6]
+    , Bag [0,0,0,1,1,1,1]
+    , Bag [0,0,0,1,1,3]
+    , Bag [0,0,0,1,2,2]
+    , Bag [0,0,0,1,5]
+    , Bag [0,0,0,2,4]
+    , Bag [0,0,0,3,3]
+    , Bag [0,0,0,7]
+    , Bag [0,0,1,1,1,2]
+    , Bag [0,0,1,1,4]
+    , Bag [0,0,1,2,3]
+    , Bag [0,0,1,6]
+    , Bag [0,0,2,2,2]
+    , Bag [0,0,2,5]
+    , Bag [0,0,3,4]
+    , Bag [0,0,8]
+    , Bag [0,1,1,1,1,1]
+    , Bag [0,1,1,1,3]
+    , Bag [0,1,1,2,2]
+    , Bag [0,1,1,5]
+    , Bag [0,1,2,4]
+    , Bag [0,1,3,3]
+    , Bag [0,1,7]
+    , Bag [0,2,2,3]
+    , Bag [0,2,6]
+    , Bag [0,3,5]
+    , Bag [0,4,4]
+    , Bag [0,9]
+    , Bag [1,1,1,1,2]
+    , Bag [1,1,1,4]
+    , Bag [1,1,2,3]
+    , Bag [1,1,6]
+    , Bag [1,2,2,2]
+    , Bag [1,2,5]
+    , Bag [1,3,4]
+    , Bag [1,8]
+    , Bag [2,2,4]
+    , Bag [2,3,3]
+    , Bag [2,7]
+    , Bag [3,6]
+    , Bag [4,5]
+    , Bag [10]
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/BagNat2.txt b/bench/tiers-txt/BagNat2.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/BagNat2.txt
@@ -0,0 +1,63 @@
+map length (tiers :: [[ Bag Nat2 ]])  =  [1,1,2,2,3,3,4,4,5,5,6,6,...]
+
+length (list :: [ Bag Nat2 ])  =  Infinity
+
+allUnique (list :: [ Bag Nat2 ])  =  True
+
+ratioRepetitions (list :: [ Bag Nat2 ])  =  0 % 1
+
+tiers :: [Bag Nat2]  =
+  [ [Bag []]
+  , [Bag [0]]
+  , [ Bag [0,0]
+    , Bag [1]
+    ]
+  , [ Bag [0,0,0]
+    , Bag [0,1]
+    ]
+  , [ Bag [0,0,0,0]
+    , Bag [0,0,1]
+    , Bag [1,1]
+    ]
+  , [ Bag [0,0,0,0,0]
+    , Bag [0,0,0,1]
+    , Bag [0,1,1]
+    ]
+  , [ Bag [0,0,0,0,0,0]
+    , Bag [0,0,0,0,1]
+    , Bag [0,0,1,1]
+    , Bag [1,1,1]
+    ]
+  , [ Bag [0,0,0,0,0,0,0]
+    , Bag [0,0,0,0,0,1]
+    , Bag [0,0,0,1,1]
+    , Bag [0,1,1,1]
+    ]
+  , [ Bag [0,0,0,0,0,0,0,0]
+    , Bag [0,0,0,0,0,0,1]
+    , Bag [0,0,0,0,1,1]
+    , Bag [0,0,1,1,1]
+    , Bag [1,1,1,1]
+    ]
+  , [ Bag [0,0,0,0,0,0,0,0,0]
+    , Bag [0,0,0,0,0,0,0,1]
+    , Bag [0,0,0,0,0,1,1]
+    , Bag [0,0,0,1,1,1]
+    , Bag [0,1,1,1,1]
+    ]
+  , [ Bag [0,0,0,0,0,0,0,0,0,0]
+    , Bag [0,0,0,0,0,0,0,0,1]
+    , Bag [0,0,0,0,0,0,1,1]
+    , Bag [0,0,0,0,1,1,1]
+    , Bag [0,0,1,1,1,1]
+    , Bag [1,1,1,1,1]
+    ]
+  , [ Bag [0,0,0,0,0,0,0,0,0,0,0]
+    , Bag [0,0,0,0,0,0,0,0,0,1]
+    , Bag [0,0,0,0,0,0,0,1,1]
+    , Bag [0,0,0,0,0,1,1,1]
+    , Bag [0,0,0,1,1,1,1]
+    , Bag [0,1,1,1,1,1]
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/BagNat3.txt b/bench/tiers-txt/BagNat3.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/BagNat3.txt
@@ -0,0 +1,104 @@
+map length (tiers :: [[ Bag Nat3 ]])  =  [1,1,2,3,4,5,7,8,10,12,14,16,...]
+
+length (list :: [ Bag Nat3 ])  =  Infinity
+
+allUnique (list :: [ Bag Nat3 ])  =  True
+
+ratioRepetitions (list :: [ Bag Nat3 ])  =  0 % 1
+
+tiers :: [Bag Nat3]  =
+  [ [Bag []]
+  , [Bag [0]]
+  , [ Bag [0,0]
+    , Bag [1]
+    ]
+  , [ Bag [0,0,0]
+    , Bag [0,1]
+    , Bag [2]
+    ]
+  , [ Bag [0,0,0,0]
+    , Bag [0,0,1]
+    , Bag [0,2]
+    , Bag [1,1]
+    ]
+  , [ Bag [0,0,0,0,0]
+    , Bag [0,0,0,1]
+    , Bag [0,0,2]
+    , Bag [0,1,1]
+    , Bag [1,2]
+    ]
+  , [ Bag [0,0,0,0,0,0]
+    , Bag [0,0,0,0,1]
+    , Bag [0,0,0,2]
+    , Bag [0,0,1,1]
+    , Bag [0,1,2]
+    , Bag [1,1,1]
+    , Bag [2,2]
+    ]
+  , [ Bag [0,0,0,0,0,0,0]
+    , Bag [0,0,0,0,0,1]
+    , Bag [0,0,0,0,2]
+    , Bag [0,0,0,1,1]
+    , Bag [0,0,1,2]
+    , Bag [0,1,1,1]
+    , Bag [0,2,2]
+    , Bag [1,1,2]
+    ]
+  , [ Bag [0,0,0,0,0,0,0,0]
+    , Bag [0,0,0,0,0,0,1]
+    , Bag [0,0,0,0,0,2]
+    , Bag [0,0,0,0,1,1]
+    , Bag [0,0,0,1,2]
+    , Bag [0,0,1,1,1]
+    , Bag [0,0,2,2]
+    , Bag [0,1,1,2]
+    , Bag [1,1,1,1]
+    , Bag [1,2,2]
+    ]
+  , [ Bag [0,0,0,0,0,0,0,0,0]
+    , Bag [0,0,0,0,0,0,0,1]
+    , Bag [0,0,0,0,0,0,2]
+    , Bag [0,0,0,0,0,1,1]
+    , Bag [0,0,0,0,1,2]
+    , Bag [0,0,0,1,1,1]
+    , Bag [0,0,0,2,2]
+    , Bag [0,0,1,1,2]
+    , Bag [0,1,1,1,1]
+    , Bag [0,1,2,2]
+    , Bag [1,1,1,2]
+    , Bag [2,2,2]
+    ]
+  , [ Bag [0,0,0,0,0,0,0,0,0,0]
+    , Bag [0,0,0,0,0,0,0,0,1]
+    , Bag [0,0,0,0,0,0,0,2]
+    , Bag [0,0,0,0,0,0,1,1]
+    , Bag [0,0,0,0,0,1,2]
+    , Bag [0,0,0,0,1,1,1]
+    , Bag [0,0,0,0,2,2]
+    , Bag [0,0,0,1,1,2]
+    , Bag [0,0,1,1,1,1]
+    , Bag [0,0,1,2,2]
+    , Bag [0,1,1,1,2]
+    , Bag [0,2,2,2]
+    , Bag [1,1,1,1,1]
+    , Bag [1,1,2,2]
+    ]
+  , [ Bag [0,0,0,0,0,0,0,0,0,0,0]
+    , Bag [0,0,0,0,0,0,0,0,0,1]
+    , Bag [0,0,0,0,0,0,0,0,2]
+    , Bag [0,0,0,0,0,0,0,1,1]
+    , Bag [0,0,0,0,0,0,1,2]
+    , Bag [0,0,0,0,0,1,1,1]
+    , Bag [0,0,0,0,0,2,2]
+    , Bag [0,0,0,0,1,1,2]
+    , Bag [0,0,0,1,1,1,1]
+    , Bag [0,0,0,1,2,2]
+    , Bag [0,0,1,1,1,2]
+    , Bag [0,0,2,2,2]
+    , Bag [0,1,1,1,1,1]
+    , Bag [0,1,1,2,2]
+    , Bag [1,1,1,1,2]
+    , Bag [1,2,2,2]
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/BagU.txt b/bench/tiers-txt/BagU.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/BagU.txt
@@ -0,0 +1,23 @@
+map length (tiers :: [[ Bag () ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,...]
+
+length (list :: [ Bag () ])  =  Infinity
+
+allUnique (list :: [ Bag () ])  =  True
+
+ratioRepetitions (list :: [ Bag () ])  =  0 % 1
+
+tiers :: [Bag ()]  =
+  [ [Bag []]
+  , [Bag [()]]
+  , [Bag [(),()]]
+  , [Bag [(),(),()]]
+  , [Bag [(),(),(),()]]
+  , [Bag [(),(),(),(),()]]
+  , [Bag [(),(),(),(),(),()]]
+  , [Bag [(),(),(),(),(),(),()]]
+  , [Bag [(),(),(),(),(),(),(),()]]
+  , [Bag [(),(),(),(),(),(),(),(),()]]
+  , [Bag [(),(),(),(),(),(),(),(),(),()]]
+  , [Bag [(),(),(),(),(),(),(),(),(),(),()]]
+  , ...
+  ]
diff --git a/bench/tiers-txt/Bool.txt b/bench/tiers-txt/Bool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Bool.txt
@@ -0,0 +1,13 @@
+map length (tiers :: [[ Bool ]])  =  [2]
+
+length (list :: [ Bool ])  =  2
+
+allUnique (list :: [ Bool ])  =  True
+
+ratioRepetitions (list :: [ Bool ])  =  0 % 1
+
+tiers :: [Bool]  =
+  [ [ False
+    , True
+    ]
+  ]
diff --git a/bench/tiers-txt/Bools.txt b/bench/tiers-txt/Bools.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Bools.txt
@@ -0,0 +1,79 @@
+map length (tiers :: [[ [Bool] ]])  =  [1,2,4,8,16,32,...]
+
+length (list :: [ [Bool] ])  =  Infinity
+
+allUnique (list :: [ [Bool] ])  =  True
+
+ratioRepetitions (list :: [ [Bool] ])  =  0 % 1
+
+tiers :: [[Bool]]  =
+  [ [[]]
+  , [ [False]
+    , [True]
+    ]
+  , [ [False,False]
+    , [False,True]
+    , [True,False]
+    , [True,True]
+    ]
+  , [ [False,False,False]
+    , [False,False,True]
+    , [False,True,False]
+    , [False,True,True]
+    , [True,False,False]
+    , [True,False,True]
+    , [True,True,False]
+    , [True,True,True]
+    ]
+  , [ [False,False,False,False]
+    , [False,False,False,True]
+    , [False,False,True,False]
+    , [False,False,True,True]
+    , [False,True,False,False]
+    , [False,True,False,True]
+    , [False,True,True,False]
+    , [False,True,True,True]
+    , [True,False,False,False]
+    , [True,False,False,True]
+    , [True,False,True,False]
+    , [True,False,True,True]
+    , [True,True,False,False]
+    , [True,True,False,True]
+    , [True,True,True,False]
+    , [True,True,True,True]
+    ]
+  , [ [False,False,False,False,False]
+    , [False,False,False,False,True]
+    , [False,False,False,True,False]
+    , [False,False,False,True,True]
+    , [False,False,True,False,False]
+    , [False,False,True,False,True]
+    , [False,False,True,True,False]
+    , [False,False,True,True,True]
+    , [False,True,False,False,False]
+    , [False,True,False,False,True]
+    , [False,True,False,True,False]
+    , [False,True,False,True,True]
+    , [False,True,True,False,False]
+    , [False,True,True,False,True]
+    , [False,True,True,True,False]
+    , [False,True,True,True,True]
+    , [True,False,False,False,False]
+    , [True,False,False,False,True]
+    , [True,False,False,True,False]
+    , [True,False,False,True,True]
+    , [True,False,True,False,False]
+    , [True,False,True,False,True]
+    , [True,False,True,True,False]
+    , [True,False,True,True,True]
+    , [True,True,False,False,False]
+    , [True,True,False,False,True]
+    , [True,True,False,True,False]
+    , [True,True,False,True,True]
+    , [True,True,True,False,False]
+    , [True,True,True,False,True]
+    , [True,True,True,True,False]
+    , [True,True,True,True,True]
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/Char.txt b/bench/tiers-txt/Char.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Char.txt
@@ -0,0 +1,23 @@
+map length (tiers :: [[ Char ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,...]
+
+length (list :: [ Char ])  =  Infinity
+
+allUnique (list :: [ Char ])  =  True
+
+ratioRepetitions (list :: [ Char ])  =  0 % 1
+
+tiers :: [Char]  =
+  [ ['a']
+  , [' ']
+  , ['b']
+  , ['A']
+  , ['c']
+  , ['\n']
+  , ['d']
+  , ['0']
+  , ['e']
+  , ['B']
+  , ['f']
+  , ['!']
+  , ...
+  ]
diff --git a/bench/tiers-txt/ComplexDouble.txt b/bench/tiers-txt/ComplexDouble.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/ComplexDouble.txt
@@ -0,0 +1,88 @@
+map length (tiers :: [[ Complex Double ]])  =  [0,1,2,3,4,5,6,7,8,9,10,11,...]
+
+length (list :: [ Complex Double ])  =  Infinity
+
+allUnique (list :: [ Complex Double ])  =  True
+
+ratioRepetitions (list :: [ Complex Double ])  =  0 % 1
+
+tiers :: [Complex Double]  =
+  [ []
+  , [0.0 :+ 0.0]
+  , [ 0.0 :+ 1.0
+    , 1.0 :+ 0.0
+    ]
+  , [ 0.0 :+ (-1.0)
+    , 1.0 :+ 1.0
+    , (-1.0) :+ 0.0
+    ]
+  , [ 0.0 :+ 0.5
+    , 1.0 :+ (-1.0)
+    , (-1.0) :+ 1.0
+    , 0.5 :+ 0.0
+    ]
+  , [ 0.0 :+ (-0.5)
+    , 1.0 :+ 0.5
+    , (-1.0) :+ (-1.0)
+    , 0.5 :+ 1.0
+    , (-0.5) :+ 0.0
+    ]
+  , [ 0.0 :+ 2.0
+    , 1.0 :+ (-0.5)
+    , (-1.0) :+ 0.5
+    , 0.5 :+ (-1.0)
+    , (-0.5) :+ 1.0
+    , 2.0 :+ 0.0
+    ]
+  , [ 0.0 :+ Infinity
+    , 1.0 :+ 2.0
+    , (-1.0) :+ (-0.5)
+    , 0.5 :+ 0.5
+    , (-0.5) :+ (-1.0)
+    , 2.0 :+ 1.0
+    , Infinity :+ 0.0
+    ]
+  , [ 0.0 :+ (-Infinity)
+    , 1.0 :+ Infinity
+    , (-1.0) :+ 2.0
+    , 0.5 :+ (-0.5)
+    , (-0.5) :+ 0.5
+    , 2.0 :+ (-1.0)
+    , Infinity :+ 1.0
+    , (-Infinity) :+ 0.0
+    ]
+  , [ 0.0 :+ (-2.0)
+    , 1.0 :+ (-Infinity)
+    , (-1.0) :+ Infinity
+    , 0.5 :+ 2.0
+    , (-0.5) :+ (-0.5)
+    , 2.0 :+ 0.5
+    , Infinity :+ (-1.0)
+    , (-Infinity) :+ 1.0
+    , (-2.0) :+ 0.0
+    ]
+  , [ 0.0 :+ 0.3333333333333333
+    , 1.0 :+ (-2.0)
+    , (-1.0) :+ (-Infinity)
+    , 0.5 :+ Infinity
+    , (-0.5) :+ 2.0
+    , 2.0 :+ (-0.5)
+    , Infinity :+ 0.5
+    , (-Infinity) :+ (-1.0)
+    , (-2.0) :+ 1.0
+    , 0.3333333333333333 :+ 0.0
+    ]
+  , [ 0.0 :+ (-0.3333333333333333)
+    , 1.0 :+ 0.3333333333333333
+    , (-1.0) :+ (-2.0)
+    , 0.5 :+ (-Infinity)
+    , (-0.5) :+ Infinity
+    , 2.0 :+ 2.0
+    , Infinity :+ (-0.5)
+    , (-Infinity) :+ 0.5
+    , (-2.0) :+ (-1.0)
+    , 0.3333333333333333 :+ 1.0
+    , (-0.3333333333333333) :+ 0.0
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/Double.txt b/bench/tiers-txt/Double.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Double.txt
@@ -0,0 +1,23 @@
+map length (tiers :: [[ Double ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,...]
+
+length (list :: [ Double ])  =  Infinity
+
+allUnique (list :: [ Double ])  =  True
+
+ratioRepetitions (list :: [ Double ])  =  0 % 1
+
+tiers :: [Double]  =
+  [ [0.0]
+  , [1.0]
+  , [-1.0]
+  , [0.5]
+  , [-0.5]
+  , [2.0]
+  , [Infinity]
+  , [-Infinity]
+  , [-2.0]
+  , [0.3333333333333333]
+  , [-0.3333333333333333]
+  , [1.5]
+  , ...
+  ]
diff --git a/bench/tiers-txt/Float.txt b/bench/tiers-txt/Float.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Float.txt
@@ -0,0 +1,23 @@
+map length (tiers :: [[ Float ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,...]
+
+length (list :: [ Float ])  =  Infinity
+
+allUnique (list :: [ Float ])  =  True
+
+ratioRepetitions (list :: [ Float ])  =  0 % 1
+
+tiers :: [Float]  =
+  [ [0.0]
+  , [1.0]
+  , [-1.0]
+  , [0.5]
+  , [-0.5]
+  , [2.0]
+  , [Infinity]
+  , [-Infinity]
+  , [-2.0]
+  , [0.33333334]
+  , [-0.33333334]
+  , [1.5]
+  , ...
+  ]
diff --git a/bench/tiers-txt/Int,Int,Int.txt b/bench/tiers-txt/Int,Int,Int.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Int,Int,Int.txt
@@ -0,0 +1,72 @@
+map length (tiers :: [[ (Int,Int,Int) ]])  =  [1,3,6,10,15,21,...]
+
+length (list :: [ (Int,Int,Int) ])  =  Infinity
+
+allUnique (list :: [ (Int,Int,Int) ])  =  True
+
+ratioRepetitions (list :: [ (Int,Int,Int) ])  =  0 % 1
+
+tiers :: [(Int,Int,Int)]  =
+  [ [(0,0,0)]
+  , [ (0,0,1)
+    , (0,1,0)
+    , (1,0,0)
+    ]
+  , [ (0,0,-1)
+    , (0,1,1)
+    , (0,-1,0)
+    , (1,0,1)
+    , (1,1,0)
+    , (-1,0,0)
+    ]
+  , [ (0,0,2)
+    , (0,1,-1)
+    , (0,-1,1)
+    , (0,2,0)
+    , (1,0,-1)
+    , (1,1,1)
+    , (1,-1,0)
+    , (-1,0,1)
+    , (-1,1,0)
+    , (2,0,0)
+    ]
+  , [ (0,0,-2)
+    , (0,1,2)
+    , (0,-1,-1)
+    , (0,2,1)
+    , (0,-2,0)
+    , (1,0,2)
+    , (1,1,-1)
+    , (1,-1,1)
+    , (1,2,0)
+    , (-1,0,-1)
+    , (-1,1,1)
+    , (-1,-1,0)
+    , (2,0,1)
+    , (2,1,0)
+    , (-2,0,0)
+    ]
+  , [ (0,0,3)
+    , (0,1,-2)
+    , (0,-1,2)
+    , (0,2,-1)
+    , (0,-2,1)
+    , (0,3,0)
+    , (1,0,-2)
+    , (1,1,2)
+    , (1,-1,-1)
+    , (1,2,1)
+    , (1,-2,0)
+    , (-1,0,2)
+    , (-1,1,-1)
+    , (-1,-1,1)
+    , (-1,2,0)
+    , (2,0,-1)
+    , (2,1,1)
+    , (2,-1,0)
+    , (-2,0,1)
+    , (-2,1,0)
+    , (3,0,0)
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/Int,Int.txt b/bench/tiers-txt/Int,Int.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Int,Int.txt
@@ -0,0 +1,100 @@
+map length (tiers :: [[ (Int,Int) ]])  =  [1,2,3,4,5,6,7,8,9,10,11,12,...]
+
+length (list :: [ (Int,Int) ])  =  Infinity
+
+allUnique (list :: [ (Int,Int) ])  =  True
+
+ratioRepetitions (list :: [ (Int,Int) ])  =  0 % 1
+
+tiers :: [(Int,Int)]  =
+  [ [(0,0)]
+  , [ (0,1)
+    , (1,0)
+    ]
+  , [ (0,-1)
+    , (1,1)
+    , (-1,0)
+    ]
+  , [ (0,2)
+    , (1,-1)
+    , (-1,1)
+    , (2,0)
+    ]
+  , [ (0,-2)
+    , (1,2)
+    , (-1,-1)
+    , (2,1)
+    , (-2,0)
+    ]
+  , [ (0,3)
+    , (1,-2)
+    , (-1,2)
+    , (2,-1)
+    , (-2,1)
+    , (3,0)
+    ]
+  , [ (0,-3)
+    , (1,3)
+    , (-1,-2)
+    , (2,2)
+    , (-2,-1)
+    , (3,1)
+    , (-3,0)
+    ]
+  , [ (0,4)
+    , (1,-3)
+    , (-1,3)
+    , (2,-2)
+    , (-2,2)
+    , (3,-1)
+    , (-3,1)
+    , (4,0)
+    ]
+  , [ (0,-4)
+    , (1,4)
+    , (-1,-3)
+    , (2,3)
+    , (-2,-2)
+    , (3,2)
+    , (-3,-1)
+    , (4,1)
+    , (-4,0)
+    ]
+  , [ (0,5)
+    , (1,-4)
+    , (-1,4)
+    , (2,-3)
+    , (-2,3)
+    , (3,-2)
+    , (-3,2)
+    , (4,-1)
+    , (-4,1)
+    , (5,0)
+    ]
+  , [ (0,-5)
+    , (1,5)
+    , (-1,-4)
+    , (2,4)
+    , (-2,-3)
+    , (3,3)
+    , (-3,-2)
+    , (4,2)
+    , (-4,-1)
+    , (5,1)
+    , (-5,0)
+    ]
+  , [ (0,6)
+    , (1,-5)
+    , (-1,5)
+    , (2,-4)
+    , (-2,4)
+    , (3,-3)
+    , (-3,3)
+    , (4,-2)
+    , (-4,2)
+    , (5,-1)
+    , (-5,1)
+    , (6,0)
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/Int.txt b/bench/tiers-txt/Int.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Int.txt
@@ -0,0 +1,23 @@
+map length (tiers :: [[ Int ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,...]
+
+length (list :: [ Int ])  =  Infinity
+
+allUnique (list :: [ Int ])  =  True
+
+ratioRepetitions (list :: [ Int ])  =  0 % 1
+
+tiers :: [Int]  =
+  [ [0]
+  , [1]
+  , [-1]
+  , [2]
+  , [-2]
+  , [3]
+  , [-3]
+  , [4]
+  , [-4]
+  , [5]
+  , [-5]
+  , [6]
+  , ...
+  ]
diff --git a/bench/tiers-txt/Int2.txt b/bench/tiers-txt/Int2.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Int2.txt
@@ -0,0 +1,14 @@
+map length (tiers :: [[ Int2 ]])  =  [1,1,1,1]
+
+length (list :: [ Int2 ])  =  4
+
+allUnique (list :: [ Int2 ])  =  True
+
+ratioRepetitions (list :: [ Int2 ])  =  0 % 1
+
+tiers :: [Int2]  =
+  [ [0]
+  , [1]
+  , [-1]
+  , [-2]
+  ]
diff --git a/bench/tiers-txt/Int3.txt b/bench/tiers-txt/Int3.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Int3.txt
@@ -0,0 +1,18 @@
+map length (tiers :: [[ Int3 ]])  =  [1,1,1,1,1,1,1,1]
+
+length (list :: [ Int3 ])  =  8
+
+allUnique (list :: [ Int3 ])  =  True
+
+ratioRepetitions (list :: [ Int3 ])  =  0 % 1
+
+tiers :: [Int3]  =
+  [ [0]
+  , [1]
+  , [-1]
+  , [2]
+  , [-2]
+  , [3]
+  , [-3]
+  , [-4]
+  ]
diff --git a/bench/tiers-txt/Int4.txt b/bench/tiers-txt/Int4.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Int4.txt
@@ -0,0 +1,26 @@
+map length (tiers :: [[ Int4 ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
+
+length (list :: [ Int4 ])  =  Infinity
+
+allUnique (list :: [ Int4 ])  =  True
+
+ratioRepetitions (list :: [ Int4 ])  =  0 % 1
+
+tiers :: [Int4]  =
+  [ [0]
+  , [1]
+  , [-1]
+  , [2]
+  , [-2]
+  , [3]
+  , [-3]
+  , [4]
+  , [-4]
+  , [5]
+  , [-5]
+  , [6]
+  , [-6]
+  , [7]
+  , [-7]
+  , [-8]
+  ]
diff --git a/bench/tiers-txt/Int8.txt b/bench/tiers-txt/Int8.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Int8.txt
@@ -0,0 +1,266 @@
+map length (tiers :: [[ Int8 ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
+
+length (list :: [ Int8 ])  =  Infinity
+
+allUnique (list :: [ Int8 ])  =  True
+
+ratioRepetitions (list :: [ Int8 ])  =  0 % 1
+
+tiers :: [Int8]  =
+  [ [0]
+  , [1]
+  , [-1]
+  , [2]
+  , [-2]
+  , [3]
+  , [-3]
+  , [4]
+  , [-4]
+  , [5]
+  , [-5]
+  , [6]
+  , [-6]
+  , [7]
+  , [-7]
+  , [8]
+  , [-8]
+  , [9]
+  , [-9]
+  , [10]
+  , [-10]
+  , [11]
+  , [-11]
+  , [12]
+  , [-12]
+  , [13]
+  , [-13]
+  , [14]
+  , [-14]
+  , [15]
+  , [-15]
+  , [16]
+  , [-16]
+  , [17]
+  , [-17]
+  , [18]
+  , [-18]
+  , [19]
+  , [-19]
+  , [20]
+  , [-20]
+  , [21]
+  , [-21]
+  , [22]
+  , [-22]
+  , [23]
+  , [-23]
+  , [24]
+  , [-24]
+  , [25]
+  , [-25]
+  , [26]
+  , [-26]
+  , [27]
+  , [-27]
+  , [28]
+  , [-28]
+  , [29]
+  , [-29]
+  , [30]
+  , [-30]
+  , [31]
+  , [-31]
+  , [32]
+  , [-32]
+  , [33]
+  , [-33]
+  , [34]
+  , [-34]
+  , [35]
+  , [-35]
+  , [36]
+  , [-36]
+  , [37]
+  , [-37]
+  , [38]
+  , [-38]
+  , [39]
+  , [-39]
+  , [40]
+  , [-40]
+  , [41]
+  , [-41]
+  , [42]
+  , [-42]
+  , [43]
+  , [-43]
+  , [44]
+  , [-44]
+  , [45]
+  , [-45]
+  , [46]
+  , [-46]
+  , [47]
+  , [-47]
+  , [48]
+  , [-48]
+  , [49]
+  , [-49]
+  , [50]
+  , [-50]
+  , [51]
+  , [-51]
+  , [52]
+  , [-52]
+  , [53]
+  , [-53]
+  , [54]
+  , [-54]
+  , [55]
+  , [-55]
+  , [56]
+  , [-56]
+  , [57]
+  , [-57]
+  , [58]
+  , [-58]
+  , [59]
+  , [-59]
+  , [60]
+  , [-60]
+  , [61]
+  , [-61]
+  , [62]
+  , [-62]
+  , [63]
+  , [-63]
+  , [64]
+  , [-64]
+  , [65]
+  , [-65]
+  , [66]
+  , [-66]
+  , [67]
+  , [-67]
+  , [68]
+  , [-68]
+  , [69]
+  , [-69]
+  , [70]
+  , [-70]
+  , [71]
+  , [-71]
+  , [72]
+  , [-72]
+  , [73]
+  , [-73]
+  , [74]
+  , [-74]
+  , [75]
+  , [-75]
+  , [76]
+  , [-76]
+  , [77]
+  , [-77]
+  , [78]
+  , [-78]
+  , [79]
+  , [-79]
+  , [80]
+  , [-80]
+  , [81]
+  , [-81]
+  , [82]
+  , [-82]
+  , [83]
+  , [-83]
+  , [84]
+  , [-84]
+  , [85]
+  , [-85]
+  , [86]
+  , [-86]
+  , [87]
+  , [-87]
+  , [88]
+  , [-88]
+  , [89]
+  , [-89]
+  , [90]
+  , [-90]
+  , [91]
+  , [-91]
+  , [92]
+  , [-92]
+  , [93]
+  , [-93]
+  , [94]
+  , [-94]
+  , [95]
+  , [-95]
+  , [96]
+  , [-96]
+  , [97]
+  , [-97]
+  , [98]
+  , [-98]
+  , [99]
+  , [-99]
+  , [100]
+  , [-100]
+  , [101]
+  , [-101]
+  , [102]
+  , [-102]
+  , [103]
+  , [-103]
+  , [104]
+  , [-104]
+  , [105]
+  , [-105]
+  , [106]
+  , [-106]
+  , [107]
+  , [-107]
+  , [108]
+  , [-108]
+  , [109]
+  , [-109]
+  , [110]
+  , [-110]
+  , [111]
+  , [-111]
+  , [112]
+  , [-112]
+  , [113]
+  , [-113]
+  , [114]
+  , [-114]
+  , [115]
+  , [-115]
+  , [116]
+  , [-116]
+  , [117]
+  , [-117]
+  , [118]
+  , [-118]
+  , [119]
+  , [-119]
+  , [120]
+  , [-120]
+  , [121]
+  , [-121]
+  , [122]
+  , [-122]
+  , [123]
+  , [-123]
+  , [124]
+  , [-124]
+  , [125]
+  , [-125]
+  , [126]
+  , [-126]
+  , [127]
+  , [-127]
+  , [-128]
+  ]
diff --git a/bench/tiers-txt/Integer.txt b/bench/tiers-txt/Integer.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Integer.txt
@@ -0,0 +1,23 @@
+map length (tiers :: [[ Integer ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,...]
+
+length (list :: [ Integer ])  =  Infinity
+
+allUnique (list :: [ Integer ])  =  True
+
+ratioRepetitions (list :: [ Integer ])  =  0 % 1
+
+tiers :: [Integer]  =
+  [ [0]
+  , [1]
+  , [-1]
+  , [2]
+  , [-2]
+  , [3]
+  , [-3]
+  , [4]
+  , [-4]
+  , [5]
+  , [-5]
+  , [6]
+  , ...
+  ]
diff --git a/bench/tiers-txt/Ints.txt b/bench/tiers-txt/Ints.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Ints.txt
@@ -0,0 +1,47 @@
+map length (tiers :: [[ [Int] ]])  =  [1,1,2,4,8,16,...]
+
+length (list :: [ [Int] ])  =  Infinity
+
+allUnique (list :: [ [Int] ])  =  True
+
+ratioRepetitions (list :: [ [Int] ])  =  0 % 1
+
+tiers :: [[Int]]  =
+  [ [[]]
+  , [[0]]
+  , [ [0,0]
+    , [1]
+    ]
+  , [ [0,0,0]
+    , [0,1]
+    , [1,0]
+    , [-1]
+    ]
+  , [ [0,0,0,0]
+    , [0,0,1]
+    , [0,1,0]
+    , [0,-1]
+    , [1,0,0]
+    , [1,1]
+    , [-1,0]
+    , [2]
+    ]
+  , [ [0,0,0,0,0]
+    , [0,0,0,1]
+    , [0,0,1,0]
+    , [0,0,-1]
+    , [0,1,0,0]
+    , [0,1,1]
+    , [0,-1,0]
+    , [0,2]
+    , [1,0,0,0]
+    , [1,0,1]
+    , [1,1,0]
+    , [1,-1]
+    , [-1,0,0]
+    , [-1,1]
+    , [2,0]
+    , [-2]
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/MapBoolBool.txt b/bench/tiers-txt/MapBoolBool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/MapBoolBool.txt
@@ -0,0 +1,21 @@
+map length (tiers :: [[ Map Bool Bool ]])  =  [1,4,4]
+
+length (list :: [ Map Bool Bool ])  =  9
+
+allUnique (list :: [ Map Bool Bool ])  =  True
+
+ratioRepetitions (list :: [ Map Bool Bool ])  =  0 % 1
+
+tiers :: [Map Bool Bool]  =
+  [ [Map []]
+  , [ Map [(False,False)]
+    , Map [(False,True)]
+    , Map [(True,False)]
+    , Map [(True,True)]
+    ]
+  , [ Map [(False,False),(True,False)]
+    , Map [(False,False),(True,True)]
+    , Map [(False,True),(True,False)]
+    , Map [(False,True),(True,True)]
+    ]
+  ]
diff --git a/bench/tiers-txt/MapNat2Nat2.txt b/bench/tiers-txt/MapNat2Nat2.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/MapNat2Nat2.txt
@@ -0,0 +1,22 @@
+map length (tiers :: [[ Map Nat2 Nat2 ]])  =  [1,1,2,2,2,1]
+
+length (list :: [ Map Nat2 Nat2 ])  =  9
+
+allUnique (list :: [ Map Nat2 Nat2 ])  =  True
+
+ratioRepetitions (list :: [ Map Nat2 Nat2 ])  =  0 % 1
+
+tiers :: [Map Nat2 Nat2]  =
+  [ [Map []]
+  , [Map [(0,0)]]
+  , [ Map [(0,1)]
+    , Map [(1,0)]
+    ]
+  , [ Map [(1,1)]
+    , Map [(0,0),(1,0)]
+    ]
+  , [ Map [(0,0),(1,1)]
+    , Map [(0,1),(1,0)]
+    ]
+  , [Map [(0,1),(1,1)]]
+  ]
diff --git a/bench/tiers-txt/MapNat3Nat3.txt b/bench/tiers-txt/MapNat3Nat3.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/MapNat3Nat3.txt
@@ -0,0 +1,84 @@
+map length (tiers :: [[ Map Nat3 Nat3 ]])  =  [1,1,2,4,5,7,8,9,9,8,6,3,...]
+
+length (list :: [ Map Nat3 Nat3 ])  =  Infinity
+
+allUnique (list :: [ Map Nat3 Nat3 ])  =  True
+
+ratioRepetitions (list :: [ Map Nat3 Nat3 ])  =  0 % 1
+
+tiers :: [Map Nat3 Nat3]  =
+  [ [Map []]
+  , [Map [(0,0)]]
+  , [ Map [(0,1)]
+    , Map [(1,0)]
+    ]
+  , [ Map [(0,2)]
+    , Map [(1,1)]
+    , Map [(0,0),(1,0)]
+    , Map [(2,0)]
+    ]
+  , [ Map [(1,2)]
+    , Map [(0,0),(1,1)]
+    , Map [(0,1),(1,0)]
+    , Map [(2,1)]
+    , Map [(0,0),(2,0)]
+    ]
+  , [ Map [(0,0),(1,2)]
+    , Map [(0,1),(1,1)]
+    , Map [(0,2),(1,0)]
+    , Map [(2,2)]
+    , Map [(0,0),(2,1)]
+    , Map [(0,1),(2,0)]
+    , Map [(1,0),(2,0)]
+    ]
+  , [ Map [(0,1),(1,2)]
+    , Map [(0,2),(1,1)]
+    , Map [(0,0),(2,2)]
+    , Map [(0,1),(2,1)]
+    , Map [(0,2),(2,0)]
+    , Map [(1,0),(2,1)]
+    , Map [(1,1),(2,0)]
+    , Map [(0,0),(1,0),(2,0)]
+    ]
+  , [ Map [(0,2),(1,2)]
+    , Map [(0,1),(2,2)]
+    , Map [(0,2),(2,1)]
+    , Map [(1,0),(2,2)]
+    , Map [(1,1),(2,1)]
+    , Map [(1,2),(2,0)]
+    , Map [(0,0),(1,0),(2,1)]
+    , Map [(0,0),(1,1),(2,0)]
+    , Map [(0,1),(1,0),(2,0)]
+    ]
+  , [ Map [(0,2),(2,2)]
+    , Map [(1,1),(2,2)]
+    , Map [(1,2),(2,1)]
+    , Map [(0,0),(1,0),(2,2)]
+    , Map [(0,0),(1,1),(2,1)]
+    , Map [(0,0),(1,2),(2,0)]
+    , Map [(0,1),(1,0),(2,1)]
+    , Map [(0,1),(1,1),(2,0)]
+    , Map [(0,2),(1,0),(2,0)]
+    ]
+  , [ Map [(1,2),(2,2)]
+    , Map [(0,0),(1,1),(2,2)]
+    , Map [(0,0),(1,2),(2,1)]
+    , Map [(0,1),(1,0),(2,2)]
+    , Map [(0,1),(1,1),(2,1)]
+    , Map [(0,1),(1,2),(2,0)]
+    , Map [(0,2),(1,0),(2,1)]
+    , Map [(0,2),(1,1),(2,0)]
+    ]
+  , [ Map [(0,0),(1,2),(2,2)]
+    , Map [(0,1),(1,1),(2,2)]
+    , Map [(0,1),(1,2),(2,1)]
+    , Map [(0,2),(1,0),(2,2)]
+    , Map [(0,2),(1,1),(2,1)]
+    , Map [(0,2),(1,2),(2,0)]
+    ]
+  , [ Map [(0,1),(1,2),(2,2)]
+    , Map [(0,2),(1,1),(2,2)]
+    , Map [(0,2),(1,2),(2,1)]
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/MapNatNat.txt b/bench/tiers-txt/MapNatNat.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/MapNatNat.txt
@@ -0,0 +1,571 @@
+map length (tiers :: [[ Map Nat Nat ]])  =  [1,1,2,4,7,12,20,33,53,84,131,202,...]
+
+length (list :: [ Map Nat Nat ])  =  Infinity
+
+allUnique (list :: [ Map Nat Nat ])  =  True
+
+ratioRepetitions (list :: [ Map Nat Nat ])  =  0 % 1
+
+tiers :: [Map Nat Nat]  =
+  [ [Map []]
+  , [Map [(0,0)]]
+  , [ Map [(0,1)]
+    , Map [(1,0)]
+    ]
+  , [ Map [(0,2)]
+    , Map [(1,1)]
+    , Map [(0,0),(1,0)]
+    , Map [(2,0)]
+    ]
+  , [ Map [(0,3)]
+    , Map [(1,2)]
+    , Map [(0,0),(1,1)]
+    , Map [(0,1),(1,0)]
+    , Map [(2,1)]
+    , Map [(0,0),(2,0)]
+    , Map [(3,0)]
+    ]
+  , [ Map [(0,4)]
+    , Map [(1,3)]
+    , Map [(0,0),(1,2)]
+    , Map [(0,1),(1,1)]
+    , Map [(0,2),(1,0)]
+    , Map [(2,2)]
+    , Map [(0,0),(2,1)]
+    , Map [(0,1),(2,0)]
+    , Map [(3,1)]
+    , Map [(0,0),(3,0)]
+    , Map [(1,0),(2,0)]
+    , Map [(4,0)]
+    ]
+  , [ Map [(0,5)]
+    , Map [(1,4)]
+    , Map [(0,0),(1,3)]
+    , Map [(0,1),(1,2)]
+    , Map [(0,2),(1,1)]
+    , Map [(0,3),(1,0)]
+    , Map [(2,3)]
+    , Map [(0,0),(2,2)]
+    , Map [(0,1),(2,1)]
+    , Map [(0,2),(2,0)]
+    , Map [(3,2)]
+    , Map [(0,0),(3,1)]
+    , Map [(0,1),(3,0)]
+    , Map [(1,0),(2,1)]
+    , Map [(1,1),(2,0)]
+    , Map [(4,1)]
+    , Map [(0,0),(1,0),(2,0)]
+    , Map [(0,0),(4,0)]
+    , Map [(1,0),(3,0)]
+    , Map [(5,0)]
+    ]
+  , [ Map [(0,6)]
+    , Map [(1,5)]
+    , Map [(0,0),(1,4)]
+    , Map [(0,1),(1,3)]
+    , Map [(0,2),(1,2)]
+    , Map [(0,3),(1,1)]
+    , Map [(0,4),(1,0)]
+    , Map [(2,4)]
+    , Map [(0,0),(2,3)]
+    , Map [(0,1),(2,2)]
+    , Map [(0,2),(2,1)]
+    , Map [(0,3),(2,0)]
+    , Map [(3,3)]
+    , Map [(0,0),(3,2)]
+    , Map [(0,1),(3,1)]
+    , Map [(0,2),(3,0)]
+    , Map [(1,0),(2,2)]
+    , Map [(1,1),(2,1)]
+    , Map [(1,2),(2,0)]
+    , Map [(4,2)]
+    , Map [(0,0),(1,0),(2,1)]
+    , Map [(0,0),(1,1),(2,0)]
+    , Map [(0,1),(1,0),(2,0)]
+    , Map [(0,0),(4,1)]
+    , Map [(0,1),(4,0)]
+    , Map [(1,0),(3,1)]
+    , Map [(1,1),(3,0)]
+    , Map [(5,1)]
+    , Map [(0,0),(1,0),(3,0)]
+    , Map [(0,0),(5,0)]
+    , Map [(1,0),(4,0)]
+    , Map [(2,0),(3,0)]
+    , Map [(6,0)]
+    ]
+  , [ Map [(0,7)]
+    , Map [(1,6)]
+    , Map [(0,0),(1,5)]
+    , Map [(0,1),(1,4)]
+    , Map [(0,2),(1,3)]
+    , Map [(0,3),(1,2)]
+    , Map [(0,4),(1,1)]
+    , Map [(0,5),(1,0)]
+    , Map [(2,5)]
+    , Map [(0,0),(2,4)]
+    , Map [(0,1),(2,3)]
+    , Map [(0,2),(2,2)]
+    , Map [(0,3),(2,1)]
+    , Map [(0,4),(2,0)]
+    , Map [(3,4)]
+    , Map [(0,0),(3,3)]
+    , Map [(0,1),(3,2)]
+    , Map [(0,2),(3,1)]
+    , Map [(0,3),(3,0)]
+    , Map [(1,0),(2,3)]
+    , Map [(1,1),(2,2)]
+    , Map [(1,2),(2,1)]
+    , Map [(1,3),(2,0)]
+    , Map [(4,3)]
+    , Map [(0,0),(1,0),(2,2)]
+    , Map [(0,0),(1,1),(2,1)]
+    , Map [(0,0),(1,2),(2,0)]
+    , Map [(0,1),(1,0),(2,1)]
+    , Map [(0,1),(1,1),(2,0)]
+    , Map [(0,2),(1,0),(2,0)]
+    , Map [(0,0),(4,2)]
+    , Map [(0,1),(4,1)]
+    , Map [(0,2),(4,0)]
+    , Map [(1,0),(3,2)]
+    , Map [(1,1),(3,1)]
+    , Map [(1,2),(3,0)]
+    , Map [(5,2)]
+    , Map [(0,0),(1,0),(3,1)]
+    , Map [(0,0),(1,1),(3,0)]
+    , Map [(0,1),(1,0),(3,0)]
+    , Map [(0,0),(5,1)]
+    , Map [(0,1),(5,0)]
+    , Map [(1,0),(4,1)]
+    , Map [(1,1),(4,0)]
+    , Map [(2,0),(3,1)]
+    , Map [(2,1),(3,0)]
+    , Map [(6,1)]
+    , Map [(0,0),(1,0),(4,0)]
+    , Map [(0,0),(2,0),(3,0)]
+    , Map [(0,0),(6,0)]
+    , Map [(1,0),(5,0)]
+    , Map [(2,0),(4,0)]
+    , Map [(7,0)]
+    ]
+  , [ Map [(0,8)]
+    , Map [(1,7)]
+    , Map [(0,0),(1,6)]
+    , Map [(0,1),(1,5)]
+    , Map [(0,2),(1,4)]
+    , Map [(0,3),(1,3)]
+    , Map [(0,4),(1,2)]
+    , Map [(0,5),(1,1)]
+    , Map [(0,6),(1,0)]
+    , Map [(2,6)]
+    , Map [(0,0),(2,5)]
+    , Map [(0,1),(2,4)]
+    , Map [(0,2),(2,3)]
+    , Map [(0,3),(2,2)]
+    , Map [(0,4),(2,1)]
+    , Map [(0,5),(2,0)]
+    , Map [(3,5)]
+    , Map [(0,0),(3,4)]
+    , Map [(0,1),(3,3)]
+    , Map [(0,2),(3,2)]
+    , Map [(0,3),(3,1)]
+    , Map [(0,4),(3,0)]
+    , Map [(1,0),(2,4)]
+    , Map [(1,1),(2,3)]
+    , Map [(1,2),(2,2)]
+    , Map [(1,3),(2,1)]
+    , Map [(1,4),(2,0)]
+    , Map [(4,4)]
+    , Map [(0,0),(1,0),(2,3)]
+    , Map [(0,0),(1,1),(2,2)]
+    , Map [(0,0),(1,2),(2,1)]
+    , Map [(0,0),(1,3),(2,0)]
+    , Map [(0,1),(1,0),(2,2)]
+    , Map [(0,1),(1,1),(2,1)]
+    , Map [(0,1),(1,2),(2,0)]
+    , Map [(0,2),(1,0),(2,1)]
+    , Map [(0,2),(1,1),(2,0)]
+    , Map [(0,3),(1,0),(2,0)]
+    , Map [(0,0),(4,3)]
+    , Map [(0,1),(4,2)]
+    , Map [(0,2),(4,1)]
+    , Map [(0,3),(4,0)]
+    , Map [(1,0),(3,3)]
+    , Map [(1,1),(3,2)]
+    , Map [(1,2),(3,1)]
+    , Map [(1,3),(3,0)]
+    , Map [(5,3)]
+    , Map [(0,0),(1,0),(3,2)]
+    , Map [(0,0),(1,1),(3,1)]
+    , Map [(0,0),(1,2),(3,0)]
+    , Map [(0,1),(1,0),(3,1)]
+    , Map [(0,1),(1,1),(3,0)]
+    , Map [(0,2),(1,0),(3,0)]
+    , Map [(0,0),(5,2)]
+    , Map [(0,1),(5,1)]
+    , Map [(0,2),(5,0)]
+    , Map [(1,0),(4,2)]
+    , Map [(1,1),(4,1)]
+    , Map [(1,2),(4,0)]
+    , Map [(2,0),(3,2)]
+    , Map [(2,1),(3,1)]
+    , Map [(2,2),(3,0)]
+    , Map [(6,2)]
+    , Map [(0,0),(1,0),(4,1)]
+    , Map [(0,0),(1,1),(4,0)]
+    , Map [(0,1),(1,0),(4,0)]
+    , Map [(0,0),(2,0),(3,1)]
+    , Map [(0,0),(2,1),(3,0)]
+    , Map [(0,1),(2,0),(3,0)]
+    , Map [(0,0),(6,1)]
+    , Map [(0,1),(6,0)]
+    , Map [(1,0),(5,1)]
+    , Map [(1,1),(5,0)]
+    , Map [(2,0),(4,1)]
+    , Map [(2,1),(4,0)]
+    , Map [(7,1)]
+    , Map [(0,0),(1,0),(5,0)]
+    , Map [(0,0),(2,0),(4,0)]
+    , Map [(0,0),(7,0)]
+    , Map [(1,0),(2,0),(3,0)]
+    , Map [(1,0),(6,0)]
+    , Map [(2,0),(5,0)]
+    , Map [(3,0),(4,0)]
+    , Map [(8,0)]
+    ]
+  , [ Map [(0,9)]
+    , Map [(1,8)]
+    , Map [(0,0),(1,7)]
+    , Map [(0,1),(1,6)]
+    , Map [(0,2),(1,5)]
+    , Map [(0,3),(1,4)]
+    , Map [(0,4),(1,3)]
+    , Map [(0,5),(1,2)]
+    , Map [(0,6),(1,1)]
+    , Map [(0,7),(1,0)]
+    , Map [(2,7)]
+    , Map [(0,0),(2,6)]
+    , Map [(0,1),(2,5)]
+    , Map [(0,2),(2,4)]
+    , Map [(0,3),(2,3)]
+    , Map [(0,4),(2,2)]
+    , Map [(0,5),(2,1)]
+    , Map [(0,6),(2,0)]
+    , Map [(3,6)]
+    , Map [(0,0),(3,5)]
+    , Map [(0,1),(3,4)]
+    , Map [(0,2),(3,3)]
+    , Map [(0,3),(3,2)]
+    , Map [(0,4),(3,1)]
+    , Map [(0,5),(3,0)]
+    , Map [(1,0),(2,5)]
+    , Map [(1,1),(2,4)]
+    , Map [(1,2),(2,3)]
+    , Map [(1,3),(2,2)]
+    , Map [(1,4),(2,1)]
+    , Map [(1,5),(2,0)]
+    , Map [(4,5)]
+    , Map [(0,0),(1,0),(2,4)]
+    , Map [(0,0),(1,1),(2,3)]
+    , Map [(0,0),(1,2),(2,2)]
+    , Map [(0,0),(1,3),(2,1)]
+    , Map [(0,0),(1,4),(2,0)]
+    , Map [(0,1),(1,0),(2,3)]
+    , Map [(0,1),(1,1),(2,2)]
+    , Map [(0,1),(1,2),(2,1)]
+    , Map [(0,1),(1,3),(2,0)]
+    , Map [(0,2),(1,0),(2,2)]
+    , Map [(0,2),(1,1),(2,1)]
+    , Map [(0,2),(1,2),(2,0)]
+    , Map [(0,3),(1,0),(2,1)]
+    , Map [(0,3),(1,1),(2,0)]
+    , Map [(0,4),(1,0),(2,0)]
+    , Map [(0,0),(4,4)]
+    , Map [(0,1),(4,3)]
+    , Map [(0,2),(4,2)]
+    , Map [(0,3),(4,1)]
+    , Map [(0,4),(4,0)]
+    , Map [(1,0),(3,4)]
+    , Map [(1,1),(3,3)]
+    , Map [(1,2),(3,2)]
+    , Map [(1,3),(3,1)]
+    , Map [(1,4),(3,0)]
+    , Map [(5,4)]
+    , Map [(0,0),(1,0),(3,3)]
+    , Map [(0,0),(1,1),(3,2)]
+    , Map [(0,0),(1,2),(3,1)]
+    , Map [(0,0),(1,3),(3,0)]
+    , Map [(0,1),(1,0),(3,2)]
+    , Map [(0,1),(1,1),(3,1)]
+    , Map [(0,1),(1,2),(3,0)]
+    , Map [(0,2),(1,0),(3,1)]
+    , Map [(0,2),(1,1),(3,0)]
+    , Map [(0,3),(1,0),(3,0)]
+    , Map [(0,0),(5,3)]
+    , Map [(0,1),(5,2)]
+    , Map [(0,2),(5,1)]
+    , Map [(0,3),(5,0)]
+    , Map [(1,0),(4,3)]
+    , Map [(1,1),(4,2)]
+    , Map [(1,2),(4,1)]
+    , Map [(1,3),(4,0)]
+    , Map [(2,0),(3,3)]
+    , Map [(2,1),(3,2)]
+    , Map [(2,2),(3,1)]
+    , Map [(2,3),(3,0)]
+    , Map [(6,3)]
+    , Map [(0,0),(1,0),(4,2)]
+    , Map [(0,0),(1,1),(4,1)]
+    , Map [(0,0),(1,2),(4,0)]
+    , Map [(0,1),(1,0),(4,1)]
+    , Map [(0,1),(1,1),(4,0)]
+    , Map [(0,2),(1,0),(4,0)]
+    , Map [(0,0),(2,0),(3,2)]
+    , Map [(0,0),(2,1),(3,1)]
+    , Map [(0,0),(2,2),(3,0)]
+    , Map [(0,1),(2,0),(3,1)]
+    , Map [(0,1),(2,1),(3,0)]
+    , Map [(0,2),(2,0),(3,0)]
+    , Map [(0,0),(6,2)]
+    , Map [(0,1),(6,1)]
+    , Map [(0,2),(6,0)]
+    , Map [(1,0),(5,2)]
+    , Map [(1,1),(5,1)]
+    , Map [(1,2),(5,0)]
+    , Map [(2,0),(4,2)]
+    , Map [(2,1),(4,1)]
+    , Map [(2,2),(4,0)]
+    , Map [(7,2)]
+    , Map [(0,0),(1,0),(5,1)]
+    , Map [(0,0),(1,1),(5,0)]
+    , Map [(0,1),(1,0),(5,0)]
+    , Map [(0,0),(2,0),(4,1)]
+    , Map [(0,0),(2,1),(4,0)]
+    , Map [(0,1),(2,0),(4,0)]
+    , Map [(0,0),(7,1)]
+    , Map [(0,1),(7,0)]
+    , Map [(1,0),(2,0),(3,1)]
+    , Map [(1,0),(2,1),(3,0)]
+    , Map [(1,1),(2,0),(3,0)]
+    , Map [(1,0),(6,1)]
+    , Map [(1,1),(6,0)]
+    , Map [(2,0),(5,1)]
+    , Map [(2,1),(5,0)]
+    , Map [(3,0),(4,1)]
+    , Map [(3,1),(4,0)]
+    , Map [(8,1)]
+    , Map [(0,0),(1,0),(2,0),(3,0)]
+    , Map [(0,0),(1,0),(6,0)]
+    , Map [(0,0),(2,0),(5,0)]
+    , Map [(0,0),(3,0),(4,0)]
+    , Map [(0,0),(8,0)]
+    , Map [(1,0),(2,0),(4,0)]
+    , Map [(1,0),(7,0)]
+    , Map [(2,0),(6,0)]
+    , Map [(3,0),(5,0)]
+    , Map [(9,0)]
+    ]
+  , [ Map [(0,10)]
+    , Map [(1,9)]
+    , Map [(0,0),(1,8)]
+    , Map [(0,1),(1,7)]
+    , Map [(0,2),(1,6)]
+    , Map [(0,3),(1,5)]
+    , Map [(0,4),(1,4)]
+    , Map [(0,5),(1,3)]
+    , Map [(0,6),(1,2)]
+    , Map [(0,7),(1,1)]
+    , Map [(0,8),(1,0)]
+    , Map [(2,8)]
+    , Map [(0,0),(2,7)]
+    , Map [(0,1),(2,6)]
+    , Map [(0,2),(2,5)]
+    , Map [(0,3),(2,4)]
+    , Map [(0,4),(2,3)]
+    , Map [(0,5),(2,2)]
+    , Map [(0,6),(2,1)]
+    , Map [(0,7),(2,0)]
+    , Map [(3,7)]
+    , Map [(0,0),(3,6)]
+    , Map [(0,1),(3,5)]
+    , Map [(0,2),(3,4)]
+    , Map [(0,3),(3,3)]
+    , Map [(0,4),(3,2)]
+    , Map [(0,5),(3,1)]
+    , Map [(0,6),(3,0)]
+    , Map [(1,0),(2,6)]
+    , Map [(1,1),(2,5)]
+    , Map [(1,2),(2,4)]
+    , Map [(1,3),(2,3)]
+    , Map [(1,4),(2,2)]
+    , Map [(1,5),(2,1)]
+    , Map [(1,6),(2,0)]
+    , Map [(4,6)]
+    , Map [(0,0),(1,0),(2,5)]
+    , Map [(0,0),(1,1),(2,4)]
+    , Map [(0,0),(1,2),(2,3)]
+    , Map [(0,0),(1,3),(2,2)]
+    , Map [(0,0),(1,4),(2,1)]
+    , Map [(0,0),(1,5),(2,0)]
+    , Map [(0,1),(1,0),(2,4)]
+    , Map [(0,1),(1,1),(2,3)]
+    , Map [(0,1),(1,2),(2,2)]
+    , Map [(0,1),(1,3),(2,1)]
+    , Map [(0,1),(1,4),(2,0)]
+    , Map [(0,2),(1,0),(2,3)]
+    , Map [(0,2),(1,1),(2,2)]
+    , Map [(0,2),(1,2),(2,1)]
+    , Map [(0,2),(1,3),(2,0)]
+    , Map [(0,3),(1,0),(2,2)]
+    , Map [(0,3),(1,1),(2,1)]
+    , Map [(0,3),(1,2),(2,0)]
+    , Map [(0,4),(1,0),(2,1)]
+    , Map [(0,4),(1,1),(2,0)]
+    , Map [(0,5),(1,0),(2,0)]
+    , Map [(0,0),(4,5)]
+    , Map [(0,1),(4,4)]
+    , Map [(0,2),(4,3)]
+    , Map [(0,3),(4,2)]
+    , Map [(0,4),(4,1)]
+    , Map [(0,5),(4,0)]
+    , Map [(1,0),(3,5)]
+    , Map [(1,1),(3,4)]
+    , Map [(1,2),(3,3)]
+    , Map [(1,3),(3,2)]
+    , Map [(1,4),(3,1)]
+    , Map [(1,5),(3,0)]
+    , Map [(5,5)]
+    , Map [(0,0),(1,0),(3,4)]
+    , Map [(0,0),(1,1),(3,3)]
+    , Map [(0,0),(1,2),(3,2)]
+    , Map [(0,0),(1,3),(3,1)]
+    , Map [(0,0),(1,4),(3,0)]
+    , Map [(0,1),(1,0),(3,3)]
+    , Map [(0,1),(1,1),(3,2)]
+    , Map [(0,1),(1,2),(3,1)]
+    , Map [(0,1),(1,3),(3,0)]
+    , Map [(0,2),(1,0),(3,2)]
+    , Map [(0,2),(1,1),(3,1)]
+    , Map [(0,2),(1,2),(3,0)]
+    , Map [(0,3),(1,0),(3,1)]
+    , Map [(0,3),(1,1),(3,0)]
+    , Map [(0,4),(1,0),(3,0)]
+    , Map [(0,0),(5,4)]
+    , Map [(0,1),(5,3)]
+    , Map [(0,2),(5,2)]
+    , Map [(0,3),(5,1)]
+    , Map [(0,4),(5,0)]
+    , Map [(1,0),(4,4)]
+    , Map [(1,1),(4,3)]
+    , Map [(1,2),(4,2)]
+    , Map [(1,3),(4,1)]
+    , Map [(1,4),(4,0)]
+    , Map [(2,0),(3,4)]
+    , Map [(2,1),(3,3)]
+    , Map [(2,2),(3,2)]
+    , Map [(2,3),(3,1)]
+    , Map [(2,4),(3,0)]
+    , Map [(6,4)]
+    , Map [(0,0),(1,0),(4,3)]
+    , Map [(0,0),(1,1),(4,2)]
+    , Map [(0,0),(1,2),(4,1)]
+    , Map [(0,0),(1,3),(4,0)]
+    , Map [(0,1),(1,0),(4,2)]
+    , Map [(0,1),(1,1),(4,1)]
+    , Map [(0,1),(1,2),(4,0)]
+    , Map [(0,2),(1,0),(4,1)]
+    , Map [(0,2),(1,1),(4,0)]
+    , Map [(0,3),(1,0),(4,0)]
+    , Map [(0,0),(2,0),(3,3)]
+    , Map [(0,0),(2,1),(3,2)]
+    , Map [(0,0),(2,2),(3,1)]
+    , Map [(0,0),(2,3),(3,0)]
+    , Map [(0,1),(2,0),(3,2)]
+    , Map [(0,1),(2,1),(3,1)]
+    , Map [(0,1),(2,2),(3,0)]
+    , Map [(0,2),(2,0),(3,1)]
+    , Map [(0,2),(2,1),(3,0)]
+    , Map [(0,3),(2,0),(3,0)]
+    , Map [(0,0),(6,3)]
+    , Map [(0,1),(6,2)]
+    , Map [(0,2),(6,1)]
+    , Map [(0,3),(6,0)]
+    , Map [(1,0),(5,3)]
+    , Map [(1,1),(5,2)]
+    , Map [(1,2),(5,1)]
+    , Map [(1,3),(5,0)]
+    , Map [(2,0),(4,3)]
+    , Map [(2,1),(4,2)]
+    , Map [(2,2),(4,1)]
+    , Map [(2,3),(4,0)]
+    , Map [(7,3)]
+    , Map [(0,0),(1,0),(5,2)]
+    , Map [(0,0),(1,1),(5,1)]
+    , Map [(0,0),(1,2),(5,0)]
+    , Map [(0,1),(1,0),(5,1)]
+    , Map [(0,1),(1,1),(5,0)]
+    , Map [(0,2),(1,0),(5,0)]
+    , Map [(0,0),(2,0),(4,2)]
+    , Map [(0,0),(2,1),(4,1)]
+    , Map [(0,0),(2,2),(4,0)]
+    , Map [(0,1),(2,0),(4,1)]
+    , Map [(0,1),(2,1),(4,0)]
+    , Map [(0,2),(2,0),(4,0)]
+    , Map [(0,0),(7,2)]
+    , Map [(0,1),(7,1)]
+    , Map [(0,2),(7,0)]
+    , Map [(1,0),(2,0),(3,2)]
+    , Map [(1,0),(2,1),(3,1)]
+    , Map [(1,0),(2,2),(3,0)]
+    , Map [(1,1),(2,0),(3,1)]
+    , Map [(1,1),(2,1),(3,0)]
+    , Map [(1,2),(2,0),(3,0)]
+    , Map [(1,0),(6,2)]
+    , Map [(1,1),(6,1)]
+    , Map [(1,2),(6,0)]
+    , Map [(2,0),(5,2)]
+    , Map [(2,1),(5,1)]
+    , Map [(2,2),(5,0)]
+    , Map [(3,0),(4,2)]
+    , Map [(3,1),(4,1)]
+    , Map [(3,2),(4,0)]
+    , Map [(8,2)]
+    , Map [(0,0),(1,0),(2,0),(3,1)]
+    , Map [(0,0),(1,0),(2,1),(3,0)]
+    , Map [(0,0),(1,1),(2,0),(3,0)]
+    , Map [(0,1),(1,0),(2,0),(3,0)]
+    , Map [(0,0),(1,0),(6,1)]
+    , Map [(0,0),(1,1),(6,0)]
+    , Map [(0,1),(1,0),(6,0)]
+    , Map [(0,0),(2,0),(5,1)]
+    , Map [(0,0),(2,1),(5,0)]
+    , Map [(0,1),(2,0),(5,0)]
+    , Map [(0,0),(3,0),(4,1)]
+    , Map [(0,0),(3,1),(4,0)]
+    , Map [(0,1),(3,0),(4,0)]
+    , Map [(0,0),(8,1)]
+    , Map [(0,1),(8,0)]
+    , Map [(1,0),(2,0),(4,1)]
+    , Map [(1,0),(2,1),(4,0)]
+    , Map [(1,1),(2,0),(4,0)]
+    , Map [(1,0),(7,1)]
+    , Map [(1,1),(7,0)]
+    , Map [(2,0),(6,1)]
+    , Map [(2,1),(6,0)]
+    , Map [(3,0),(5,1)]
+    , Map [(3,1),(5,0)]
+    , Map [(9,1)]
+    , Map [(0,0),(1,0),(2,0),(4,0)]
+    , Map [(0,0),(1,0),(7,0)]
+    , Map [(0,0),(2,0),(6,0)]
+    , Map [(0,0),(3,0),(5,0)]
+    , Map [(0,0),(9,0)]
+    , Map [(1,0),(2,0),(5,0)]
+    , Map [(1,0),(3,0),(4,0)]
+    , Map [(1,0),(8,0)]
+    , Map [(2,0),(7,0)]
+    , Map [(3,0),(6,0)]
+    , Map [(4,0),(5,0)]
+    , Map [(10,0)]
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/MapUU.txt b/bench/tiers-txt/MapUU.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/MapUU.txt
@@ -0,0 +1,12 @@
+map length (tiers :: [[ Map () () ]])  =  [1,1]
+
+length (list :: [ Map () () ])  =  2
+
+allUnique (list :: [ Map () () ])  =  True
+
+ratioRepetitions (list :: [ Map () () ])  =  0 % 1
+
+tiers :: [Map () ()]  =
+  [ [Map []]
+  , [Map [((),())]]
+  ]
diff --git a/bench/tiers-txt/Nat,Nat,Nat.txt b/bench/tiers-txt/Nat,Nat,Nat.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Nat,Nat,Nat.txt
@@ -0,0 +1,72 @@
+map length (tiers :: [[ (Nat,Nat,Nat) ]])  =  [1,3,6,10,15,21,...]
+
+length (list :: [ (Nat,Nat,Nat) ])  =  Infinity
+
+allUnique (list :: [ (Nat,Nat,Nat) ])  =  True
+
+ratioRepetitions (list :: [ (Nat,Nat,Nat) ])  =  0 % 1
+
+tiers :: [(Nat,Nat,Nat)]  =
+  [ [(0,0,0)]
+  , [ (0,0,1)
+    , (0,1,0)
+    , (1,0,0)
+    ]
+  , [ (0,0,2)
+    , (0,1,1)
+    , (0,2,0)
+    , (1,0,1)
+    , (1,1,0)
+    , (2,0,0)
+    ]
+  , [ (0,0,3)
+    , (0,1,2)
+    , (0,2,1)
+    , (0,3,0)
+    , (1,0,2)
+    , (1,1,1)
+    , (1,2,0)
+    , (2,0,1)
+    , (2,1,0)
+    , (3,0,0)
+    ]
+  , [ (0,0,4)
+    , (0,1,3)
+    , (0,2,2)
+    , (0,3,1)
+    , (0,4,0)
+    , (1,0,3)
+    , (1,1,2)
+    , (1,2,1)
+    , (1,3,0)
+    , (2,0,2)
+    , (2,1,1)
+    , (2,2,0)
+    , (3,0,1)
+    , (3,1,0)
+    , (4,0,0)
+    ]
+  , [ (0,0,5)
+    , (0,1,4)
+    , (0,2,3)
+    , (0,3,2)
+    , (0,4,1)
+    , (0,5,0)
+    , (1,0,4)
+    , (1,1,3)
+    , (1,2,2)
+    , (1,3,1)
+    , (1,4,0)
+    , (2,0,3)
+    , (2,1,2)
+    , (2,2,1)
+    , (2,3,0)
+    , (3,0,2)
+    , (3,1,1)
+    , (3,2,0)
+    , (4,0,1)
+    , (4,1,0)
+    , (5,0,0)
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/Nat,Nat.txt b/bench/tiers-txt/Nat,Nat.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Nat,Nat.txt
@@ -0,0 +1,100 @@
+map length (tiers :: [[ (Nat,Nat) ]])  =  [1,2,3,4,5,6,7,8,9,10,11,12,...]
+
+length (list :: [ (Nat,Nat) ])  =  Infinity
+
+allUnique (list :: [ (Nat,Nat) ])  =  True
+
+ratioRepetitions (list :: [ (Nat,Nat) ])  =  0 % 1
+
+tiers :: [(Nat,Nat)]  =
+  [ [(0,0)]
+  , [ (0,1)
+    , (1,0)
+    ]
+  , [ (0,2)
+    , (1,1)
+    , (2,0)
+    ]
+  , [ (0,3)
+    , (1,2)
+    , (2,1)
+    , (3,0)
+    ]
+  , [ (0,4)
+    , (1,3)
+    , (2,2)
+    , (3,1)
+    , (4,0)
+    ]
+  , [ (0,5)
+    , (1,4)
+    , (2,3)
+    , (3,2)
+    , (4,1)
+    , (5,0)
+    ]
+  , [ (0,6)
+    , (1,5)
+    , (2,4)
+    , (3,3)
+    , (4,2)
+    , (5,1)
+    , (6,0)
+    ]
+  , [ (0,7)
+    , (1,6)
+    , (2,5)
+    , (3,4)
+    , (4,3)
+    , (5,2)
+    , (6,1)
+    , (7,0)
+    ]
+  , [ (0,8)
+    , (1,7)
+    , (2,6)
+    , (3,5)
+    , (4,4)
+    , (5,3)
+    , (6,2)
+    , (7,1)
+    , (8,0)
+    ]
+  , [ (0,9)
+    , (1,8)
+    , (2,7)
+    , (3,6)
+    , (4,5)
+    , (5,4)
+    , (6,3)
+    , (7,2)
+    , (8,1)
+    , (9,0)
+    ]
+  , [ (0,10)
+    , (1,9)
+    , (2,8)
+    , (3,7)
+    , (4,6)
+    , (5,5)
+    , (6,4)
+    , (7,3)
+    , (8,2)
+    , (9,1)
+    , (10,0)
+    ]
+  , [ (0,11)
+    , (1,10)
+    , (2,9)
+    , (3,8)
+    , (4,7)
+    , (5,6)
+    , (6,5)
+    , (7,4)
+    , (8,3)
+    , (9,2)
+    , (10,1)
+    , (11,0)
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/Nat.txt b/bench/tiers-txt/Nat.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Nat.txt
@@ -0,0 +1,23 @@
+map length (tiers :: [[ Nat ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,...]
+
+length (list :: [ Nat ])  =  Infinity
+
+allUnique (list :: [ Nat ])  =  True
+
+ratioRepetitions (list :: [ Nat ])  =  0 % 1
+
+tiers :: [Nat]  =
+  [ [0]
+  , [1]
+  , [2]
+  , [3]
+  , [4]
+  , [5]
+  , [6]
+  , [7]
+  , [8]
+  , [9]
+  , [10]
+  , [11]
+  , ...
+  ]
diff --git a/bench/tiers-txt/Nat2.txt b/bench/tiers-txt/Nat2.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Nat2.txt
@@ -0,0 +1,12 @@
+map length (tiers :: [[ Nat2 ]])  =  [1,1]
+
+length (list :: [ Nat2 ])  =  2
+
+allUnique (list :: [ Nat2 ])  =  True
+
+ratioRepetitions (list :: [ Nat2 ])  =  0 % 1
+
+tiers :: [Nat2]  =
+  [ [0]
+  , [1]
+  ]
diff --git a/bench/tiers-txt/Nat3.txt b/bench/tiers-txt/Nat3.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Nat3.txt
@@ -0,0 +1,13 @@
+map length (tiers :: [[ Nat3 ]])  =  [1,1,1]
+
+length (list :: [ Nat3 ])  =  3
+
+allUnique (list :: [ Nat3 ])  =  True
+
+ratioRepetitions (list :: [ Nat3 ])  =  0 % 1
+
+tiers :: [Nat3]  =
+  [ [0]
+  , [1]
+  , [2]
+  ]
diff --git a/bench/tiers-txt/Nat4.txt b/bench/tiers-txt/Nat4.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Nat4.txt
@@ -0,0 +1,14 @@
+map length (tiers :: [[ Nat4 ]])  =  [1,1,1,1]
+
+length (list :: [ Nat4 ])  =  4
+
+allUnique (list :: [ Nat4 ])  =  True
+
+ratioRepetitions (list :: [ Nat4 ])  =  0 % 1
+
+tiers :: [Nat4]  =
+  [ [0]
+  , [1]
+  , [2]
+  , [3]
+  ]
diff --git a/bench/tiers-txt/Nats.txt b/bench/tiers-txt/Nats.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Nats.txt
@@ -0,0 +1,47 @@
+map length (tiers :: [[ [Nat] ]])  =  [1,1,2,4,8,16,...]
+
+length (list :: [ [Nat] ])  =  Infinity
+
+allUnique (list :: [ [Nat] ])  =  True
+
+ratioRepetitions (list :: [ [Nat] ])  =  0 % 1
+
+tiers :: [[Nat]]  =
+  [ [[]]
+  , [[0]]
+  , [ [0,0]
+    , [1]
+    ]
+  , [ [0,0,0]
+    , [0,1]
+    , [1,0]
+    , [2]
+    ]
+  , [ [0,0,0,0]
+    , [0,0,1]
+    , [0,1,0]
+    , [0,2]
+    , [1,0,0]
+    , [1,1]
+    , [2,0]
+    , [3]
+    ]
+  , [ [0,0,0,0,0]
+    , [0,0,0,1]
+    , [0,0,1,0]
+    , [0,0,2]
+    , [0,1,0,0]
+    , [0,1,1]
+    , [0,2,0]
+    , [0,3]
+    , [1,0,0,0]
+    , [1,0,1]
+    , [1,1,0]
+    , [1,2]
+    , [2,0,0]
+    , [2,1]
+    , [3,0]
+    , [4]
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/NoDupBool.txt b/bench/tiers-txt/NoDupBool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/NoDupBool.txt
@@ -0,0 +1,17 @@
+map length (tiers :: [[ NoDup Bool ]])  =  [1,2,2]
+
+length (list :: [ NoDup Bool ])  =  5
+
+allUnique (list :: [ NoDup Bool ])  =  True
+
+ratioRepetitions (list :: [ NoDup Bool ])  =  0 % 1
+
+tiers :: [NoDup Bool]  =
+  [ [NoDup []]
+  , [ NoDup [False]
+    , NoDup [True]
+    ]
+  , [ NoDup [False,True]
+    , NoDup [True,False]
+    ]
+  ]
diff --git a/bench/tiers-txt/NoDupNat.txt b/bench/tiers-txt/NoDupNat.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/NoDupNat.txt
@@ -0,0 +1,226 @@
+map length (tiers :: [[ NoDup Nat ]])  =  [1,1,1,3,3,5,11,13,19,27,57,65,...]
+
+length (list :: [ NoDup Nat ])  =  Infinity
+
+allUnique (list :: [ NoDup Nat ])  =  True
+
+ratioRepetitions (list :: [ NoDup Nat ])  =  0 % 1
+
+tiers :: [NoDup Nat]  =
+  [ [NoDup []]
+  , [NoDup [0]]
+  , [NoDup [1]]
+  , [ NoDup [0,1]
+    , NoDup [1,0]
+    , NoDup [2]
+    ]
+  , [ NoDup [0,2]
+    , NoDup [2,0]
+    , NoDup [3]
+    ]
+  , [ NoDup [0,3]
+    , NoDup [1,2]
+    , NoDup [2,1]
+    , NoDup [3,0]
+    , NoDup [4]
+    ]
+  , [ NoDup [0,1,2]
+    , NoDup [0,2,1]
+    , NoDup [0,4]
+    , NoDup [1,0,2]
+    , NoDup [1,2,0]
+    , NoDup [1,3]
+    , NoDup [2,0,1]
+    , NoDup [2,1,0]
+    , NoDup [3,1]
+    , NoDup [4,0]
+    , NoDup [5]
+    ]
+  , [ NoDup [0,1,3]
+    , NoDup [0,3,1]
+    , NoDup [0,5]
+    , NoDup [1,0,3]
+    , NoDup [1,3,0]
+    , NoDup [1,4]
+    , NoDup [2,3]
+    , NoDup [3,0,1]
+    , NoDup [3,1,0]
+    , NoDup [3,2]
+    , NoDup [4,1]
+    , NoDup [5,0]
+    , NoDup [6]
+    ]
+  , [ NoDup [0,1,4]
+    , NoDup [0,2,3]
+    , NoDup [0,3,2]
+    , NoDup [0,4,1]
+    , NoDup [0,6]
+    , NoDup [1,0,4]
+    , NoDup [1,4,0]
+    , NoDup [1,5]
+    , NoDup [2,0,3]
+    , NoDup [2,3,0]
+    , NoDup [2,4]
+    , NoDup [3,0,2]
+    , NoDup [3,2,0]
+    , NoDup [4,0,1]
+    , NoDup [4,1,0]
+    , NoDup [4,2]
+    , NoDup [5,1]
+    , NoDup [6,0]
+    , NoDup [7]
+    ]
+  , [ NoDup [0,1,5]
+    , NoDup [0,2,4]
+    , NoDup [0,4,2]
+    , NoDup [0,5,1]
+    , NoDup [0,7]
+    , NoDup [1,0,5]
+    , NoDup [1,2,3]
+    , NoDup [1,3,2]
+    , NoDup [1,5,0]
+    , NoDup [1,6]
+    , NoDup [2,0,4]
+    , NoDup [2,1,3]
+    , NoDup [2,3,1]
+    , NoDup [2,4,0]
+    , NoDup [2,5]
+    , NoDup [3,1,2]
+    , NoDup [3,2,1]
+    , NoDup [3,4]
+    , NoDup [4,0,2]
+    , NoDup [4,2,0]
+    , NoDup [4,3]
+    , NoDup [5,0,1]
+    , NoDup [5,1,0]
+    , NoDup [5,2]
+    , NoDup [6,1]
+    , NoDup [7,0]
+    , NoDup [8]
+    ]
+  , [ NoDup [0,1,2,3]
+    , NoDup [0,1,3,2]
+    , NoDup [0,1,6]
+    , NoDup [0,2,1,3]
+    , NoDup [0,2,3,1]
+    , NoDup [0,2,5]
+    , NoDup [0,3,1,2]
+    , NoDup [0,3,2,1]
+    , NoDup [0,3,4]
+    , NoDup [0,4,3]
+    , NoDup [0,5,2]
+    , NoDup [0,6,1]
+    , NoDup [0,8]
+    , NoDup [1,0,2,3]
+    , NoDup [1,0,3,2]
+    , NoDup [1,0,6]
+    , NoDup [1,2,0,3]
+    , NoDup [1,2,3,0]
+    , NoDup [1,2,4]
+    , NoDup [1,3,0,2]
+    , NoDup [1,3,2,0]
+    , NoDup [1,4,2]
+    , NoDup [1,6,0]
+    , NoDup [1,7]
+    , NoDup [2,0,1,3]
+    , NoDup [2,0,3,1]
+    , NoDup [2,0,5]
+    , NoDup [2,1,0,3]
+    , NoDup [2,1,3,0]
+    , NoDup [2,1,4]
+    , NoDup [2,3,0,1]
+    , NoDup [2,3,1,0]
+    , NoDup [2,4,1]
+    , NoDup [2,5,0]
+    , NoDup [2,6]
+    , NoDup [3,0,1,2]
+    , NoDup [3,0,2,1]
+    , NoDup [3,0,4]
+    , NoDup [3,1,0,2]
+    , NoDup [3,1,2,0]
+    , NoDup [3,2,0,1]
+    , NoDup [3,2,1,0]
+    , NoDup [3,4,0]
+    , NoDup [3,5]
+    , NoDup [4,0,3]
+    , NoDup [4,1,2]
+    , NoDup [4,2,1]
+    , NoDup [4,3,0]
+    , NoDup [5,0,2]
+    , NoDup [5,2,0]
+    , NoDup [5,3]
+    , NoDup [6,0,1]
+    , NoDup [6,1,0]
+    , NoDup [6,2]
+    , NoDup [7,1]
+    , NoDup [8,0]
+    , NoDup [9]
+    ]
+  , [ NoDup [0,1,2,4]
+    , NoDup [0,1,4,2]
+    , NoDup [0,1,7]
+    , NoDup [0,2,1,4]
+    , NoDup [0,2,4,1]
+    , NoDup [0,2,6]
+    , NoDup [0,3,5]
+    , NoDup [0,4,1,2]
+    , NoDup [0,4,2,1]
+    , NoDup [0,5,3]
+    , NoDup [0,6,2]
+    , NoDup [0,7,1]
+    , NoDup [0,9]
+    , NoDup [1,0,2,4]
+    , NoDup [1,0,4,2]
+    , NoDup [1,0,7]
+    , NoDup [1,2,0,4]
+    , NoDup [1,2,4,0]
+    , NoDup [1,2,5]
+    , NoDup [1,3,4]
+    , NoDup [1,4,0,2]
+    , NoDup [1,4,2,0]
+    , NoDup [1,4,3]
+    , NoDup [1,5,2]
+    , NoDup [1,7,0]
+    , NoDup [1,8]
+    , NoDup [2,0,1,4]
+    , NoDup [2,0,4,1]
+    , NoDup [2,0,6]
+    , NoDup [2,1,0,4]
+    , NoDup [2,1,4,0]
+    , NoDup [2,1,5]
+    , NoDup [2,4,0,1]
+    , NoDup [2,4,1,0]
+    , NoDup [2,5,1]
+    , NoDup [2,6,0]
+    , NoDup [2,7]
+    , NoDup [3,0,5]
+    , NoDup [3,1,4]
+    , NoDup [3,4,1]
+    , NoDup [3,5,0]
+    , NoDup [3,6]
+    , NoDup [4,0,1,2]
+    , NoDup [4,0,2,1]
+    , NoDup [4,1,0,2]
+    , NoDup [4,1,2,0]
+    , NoDup [4,1,3]
+    , NoDup [4,2,0,1]
+    , NoDup [4,2,1,0]
+    , NoDup [4,3,1]
+    , NoDup [4,5]
+    , NoDup [5,0,3]
+    , NoDup [5,1,2]
+    , NoDup [5,2,1]
+    , NoDup [5,3,0]
+    , NoDup [5,4]
+    , NoDup [6,0,2]
+    , NoDup [6,2,0]
+    , NoDup [6,3]
+    , NoDup [7,0,1]
+    , NoDup [7,1,0]
+    , NoDup [7,2]
+    , NoDup [8,1]
+    , NoDup [9,0]
+    , NoDup [10]
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/NoDupNat2.txt b/bench/tiers-txt/NoDupNat2.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/NoDupNat2.txt
@@ -0,0 +1,16 @@
+map length (tiers :: [[ NoDup Nat2 ]])  =  [1,1,1,2]
+
+length (list :: [ NoDup Nat2 ])  =  5
+
+allUnique (list :: [ NoDup Nat2 ])  =  True
+
+ratioRepetitions (list :: [ NoDup Nat2 ])  =  0 % 1
+
+tiers :: [NoDup Nat2]  =
+  [ [NoDup []]
+  , [NoDup [0]]
+  , [NoDup [1]]
+  , [ NoDup [0,1]
+    , NoDup [1,0]
+    ]
+  ]
diff --git a/bench/tiers-txt/NoDupNat3.txt b/bench/tiers-txt/NoDupNat3.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/NoDupNat3.txt
@@ -0,0 +1,30 @@
+map length (tiers :: [[ NoDup Nat3 ]])  =  [1,1,1,3,2,2,6]
+
+length (list :: [ NoDup Nat3 ])  =  Infinity
+
+allUnique (list :: [ NoDup Nat3 ])  =  True
+
+ratioRepetitions (list :: [ NoDup Nat3 ])  =  0 % 1
+
+tiers :: [NoDup Nat3]  =
+  [ [NoDup []]
+  , [NoDup [0]]
+  , [NoDup [1]]
+  , [ NoDup [0,1]
+    , NoDup [1,0]
+    , NoDup [2]
+    ]
+  , [ NoDup [0,2]
+    , NoDup [2,0]
+    ]
+  , [ NoDup [1,2]
+    , NoDup [2,1]
+    ]
+  , [ NoDup [0,1,2]
+    , NoDup [0,2,1]
+    , NoDup [1,0,2]
+    , NoDup [1,2,0]
+    , NoDup [2,0,1]
+    , NoDup [2,1,0]
+    ]
+  ]
diff --git a/bench/tiers-txt/NoDupU.txt b/bench/tiers-txt/NoDupU.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/NoDupU.txt
@@ -0,0 +1,12 @@
+map length (tiers :: [[ NoDup () ]])  =  [1,1]
+
+length (list :: [ NoDup () ])  =  2
+
+allUnique (list :: [ NoDup () ])  =  True
+
+ratioRepetitions (list :: [ NoDup () ])  =  0 % 1
+
+tiers :: [NoDup ()]  =
+  [ [NoDup []]
+  , [NoDup [()]]
+  ]
diff --git a/bench/tiers-txt/Rational.txt b/bench/tiers-txt/Rational.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Rational.txt
@@ -0,0 +1,23 @@
+map length (tiers :: [[ Rational ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,...]
+
+length (list :: [ Rational ])  =  Infinity
+
+allUnique (list :: [ Rational ])  =  True
+
+ratioRepetitions (list :: [ Rational ])  =  0 % 1
+
+tiers :: [Rational]  =
+  [ [0 % 1]
+  , [1 % 1]
+  , [(-1) % 1]
+  , [1 % 2]
+  , [(-1) % 2]
+  , [2 % 1]
+  , [(-2) % 1]
+  , [1 % 3]
+  , [(-1) % 3]
+  , [3 % 2]
+  , [(-3) % 2]
+  , [2 % 3]
+  , ...
+  ]
diff --git a/bench/tiers-txt/SetBool.txt b/bench/tiers-txt/SetBool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/SetBool.txt
@@ -0,0 +1,15 @@
+map length (tiers :: [[ Set Bool ]])  =  [1,2,1]
+
+length (list :: [ Set Bool ])  =  4
+
+allUnique (list :: [ Set Bool ])  =  True
+
+ratioRepetitions (list :: [ Set Bool ])  =  0 % 1
+
+tiers :: [Set Bool]  =
+  [ [Set []]
+  , [ Set [False]
+    , Set [True]
+    ]
+  , [Set [False,True]]
+  ]
diff --git a/bench/tiers-txt/SetNat.txt b/bench/tiers-txt/SetNat.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/SetNat.txt
@@ -0,0 +1,75 @@
+map length (tiers :: [[ Set Nat ]])  =  [1,1,1,2,2,3,4,5,6,8,10,12,...]
+
+length (list :: [ Set Nat ])  =  Infinity
+
+allUnique (list :: [ Set Nat ])  =  True
+
+ratioRepetitions (list :: [ Set Nat ])  =  0 % 1
+
+tiers :: [Set Nat]  =
+  [ [Set []]
+  , [Set [0]]
+  , [Set [1]]
+  , [ Set [0,1]
+    , Set [2]
+    ]
+  , [ Set [0,2]
+    , Set [3]
+    ]
+  , [ Set [0,3]
+    , Set [1,2]
+    , Set [4]
+    ]
+  , [ Set [0,1,2]
+    , Set [0,4]
+    , Set [1,3]
+    , Set [5]
+    ]
+  , [ Set [0,1,3]
+    , Set [0,5]
+    , Set [1,4]
+    , Set [2,3]
+    , Set [6]
+    ]
+  , [ Set [0,1,4]
+    , Set [0,2,3]
+    , Set [0,6]
+    , Set [1,5]
+    , Set [2,4]
+    , Set [7]
+    ]
+  , [ Set [0,1,5]
+    , Set [0,2,4]
+    , Set [0,7]
+    , Set [1,2,3]
+    , Set [1,6]
+    , Set [2,5]
+    , Set [3,4]
+    , Set [8]
+    ]
+  , [ Set [0,1,2,3]
+    , Set [0,1,6]
+    , Set [0,2,5]
+    , Set [0,3,4]
+    , Set [0,8]
+    , Set [1,2,4]
+    , Set [1,7]
+    , Set [2,6]
+    , Set [3,5]
+    , Set [9]
+    ]
+  , [ Set [0,1,2,4]
+    , Set [0,1,7]
+    , Set [0,2,6]
+    , Set [0,3,5]
+    , Set [0,9]
+    , Set [1,2,5]
+    , Set [1,3,4]
+    , Set [1,8]
+    , Set [2,7]
+    , Set [3,6]
+    , Set [4,5]
+    , Set [10]
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/SetNat2.txt b/bench/tiers-txt/SetNat2.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/SetNat2.txt
@@ -0,0 +1,14 @@
+map length (tiers :: [[ Set Nat2 ]])  =  [1,1,1,1]
+
+length (list :: [ Set Nat2 ])  =  4
+
+allUnique (list :: [ Set Nat2 ])  =  True
+
+ratioRepetitions (list :: [ Set Nat2 ])  =  0 % 1
+
+tiers :: [Set Nat2]  =
+  [ [Set []]
+  , [Set [0]]
+  , [Set [1]]
+  , [Set [0,1]]
+  ]
diff --git a/bench/tiers-txt/SetNat3.txt b/bench/tiers-txt/SetNat3.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/SetNat3.txt
@@ -0,0 +1,19 @@
+map length (tiers :: [[ Set Nat3 ]])  =  [1,1,1,2,1,1,1]
+
+length (list :: [ Set Nat3 ])  =  8
+
+allUnique (list :: [ Set Nat3 ])  =  True
+
+ratioRepetitions (list :: [ Set Nat3 ])  =  0 % 1
+
+tiers :: [Set Nat3]  =
+  [ [Set []]
+  , [Set [0]]
+  , [Set [1]]
+  , [ Set [0,1]
+    , Set [2]
+    ]
+  , [Set [0,2]]
+  , [Set [1,2]]
+  , [Set [0,1,2]]
+  ]
diff --git a/bench/tiers-txt/SetU.txt b/bench/tiers-txt/SetU.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/SetU.txt
@@ -0,0 +1,12 @@
+map length (tiers :: [[ Set () ]])  =  [1,1]
+
+length (list :: [ Set () ])  =  2
+
+allUnique (list :: [ Set () ])  =  True
+
+ratioRepetitions (list :: [ Set () ])  =  0 % 1
+
+tiers :: [Set ()]  =
+  [ [Set []]
+  , [Set [()]]
+  ]
diff --git a/bench/tiers-txt/String.txt b/bench/tiers-txt/String.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/String.txt
@@ -0,0 +1,47 @@
+map length (tiers :: [[ String ]])  =  [1,1,2,4,8,16,...]
+
+length (list :: [ String ])  =  Infinity
+
+allUnique (list :: [ String ])  =  True
+
+ratioRepetitions (list :: [ String ])  =  0 % 1
+
+tiers :: [String]  =
+  [ [""]
+  , ["a"]
+  , [ "aa"
+    , " "
+    ]
+  , [ "aaa"
+    , "a "
+    , " a"
+    , "b"
+    ]
+  , [ "aaaa"
+    , "aa "
+    , "a a"
+    , "ab"
+    , " aa"
+    , "  "
+    , "ba"
+    , "A"
+    ]
+  , [ "aaaaa"
+    , "aaa "
+    , "aa a"
+    , "aab"
+    , "a aa"
+    , "a  "
+    , "aba"
+    , "aA"
+    , " aaa"
+    , " a "
+    , "  a"
+    , " b"
+    , "baa"
+    , "b "
+    , "Aa"
+    , "c"
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/U,Us.txt b/bench/tiers-txt/U,Us.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/U,Us.txt
@@ -0,0 +1,23 @@
+map length (tiers :: [[ [((),())] ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,...]
+
+length (list :: [ [((),())] ])  =  Infinity
+
+allUnique (list :: [ [((),())] ])  =  True
+
+ratioRepetitions (list :: [ [((),())] ])  =  0 % 1
+
+tiers :: [[((),())]]  =
+  [ [[]]
+  , [[((),())]]
+  , [[((),()),((),())]]
+  , [[((),()),((),()),((),())]]
+  , [[((),()),((),()),((),()),((),())]]
+  , [[((),()),((),()),((),()),((),()),((),())]]
+  , [[((),()),((),()),((),()),((),()),((),()),((),())]]
+  , [[((),()),((),()),((),()),((),()),((),()),((),()),((),())]]
+  , [[((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),())]]
+  , [[((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),())]]
+  , [[((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),())]]
+  , [[((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),())]]
+  , ...
+  ]
diff --git a/bench/tiers-txt/U.txt b/bench/tiers-txt/U.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/U.txt
@@ -0,0 +1,10 @@
+map length (tiers :: [[ () ]])  =  [1]
+
+length (list :: [ () ])  =  1
+
+allUnique (list :: [ () ])  =  True
+
+ratioRepetitions (list :: [ () ])  =  0 % 1
+
+tiers :: [()]  =
+  [[()]]
diff --git a/bench/tiers-txt/Us,Us.txt b/bench/tiers-txt/Us,Us.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Us,Us.txt
@@ -0,0 +1,100 @@
+map length (tiers :: [[ ([()],[()]) ]])  =  [1,2,3,4,5,6,7,8,9,10,11,12,...]
+
+length (list :: [ ([()],[()]) ])  =  Infinity
+
+allUnique (list :: [ ([()],[()]) ])  =  True
+
+ratioRepetitions (list :: [ ([()],[()]) ])  =  0 % 1
+
+tiers :: [([()],[()])]  =
+  [ [([],[])]
+  , [ ([],[()])
+    , ([()],[])
+    ]
+  , [ ([],[(),()])
+    , ([()],[()])
+    , ([(),()],[])
+    ]
+  , [ ([],[(),(),()])
+    , ([()],[(),()])
+    , ([(),()],[()])
+    , ([(),(),()],[])
+    ]
+  , [ ([],[(),(),(),()])
+    , ([()],[(),(),()])
+    , ([(),()],[(),()])
+    , ([(),(),()],[()])
+    , ([(),(),(),()],[])
+    ]
+  , [ ([],[(),(),(),(),()])
+    , ([()],[(),(),(),()])
+    , ([(),()],[(),(),()])
+    , ([(),(),()],[(),()])
+    , ([(),(),(),()],[()])
+    , ([(),(),(),(),()],[])
+    ]
+  , [ ([],[(),(),(),(),(),()])
+    , ([()],[(),(),(),(),()])
+    , ([(),()],[(),(),(),()])
+    , ([(),(),()],[(),(),()])
+    , ([(),(),(),()],[(),()])
+    , ([(),(),(),(),()],[()])
+    , ([(),(),(),(),(),()],[])
+    ]
+  , [ ([],[(),(),(),(),(),(),()])
+    , ([()],[(),(),(),(),(),()])
+    , ([(),()],[(),(),(),(),()])
+    , ([(),(),()],[(),(),(),()])
+    , ([(),(),(),()],[(),(),()])
+    , ([(),(),(),(),()],[(),()])
+    , ([(),(),(),(),(),()],[()])
+    , ([(),(),(),(),(),(),()],[])
+    ]
+  , [ ([],[(),(),(),(),(),(),(),()])
+    , ([()],[(),(),(),(),(),(),()])
+    , ([(),()],[(),(),(),(),(),()])
+    , ([(),(),()],[(),(),(),(),()])
+    , ([(),(),(),()],[(),(),(),()])
+    , ([(),(),(),(),()],[(),(),()])
+    , ([(),(),(),(),(),()],[(),()])
+    , ([(),(),(),(),(),(),()],[()])
+    , ([(),(),(),(),(),(),(),()],[])
+    ]
+  , [ ([],[(),(),(),(),(),(),(),(),()])
+    , ([()],[(),(),(),(),(),(),(),()])
+    , ([(),()],[(),(),(),(),(),(),()])
+    , ([(),(),()],[(),(),(),(),(),()])
+    , ([(),(),(),()],[(),(),(),(),()])
+    , ([(),(),(),(),()],[(),(),(),()])
+    , ([(),(),(),(),(),()],[(),(),()])
+    , ([(),(),(),(),(),(),()],[(),()])
+    , ([(),(),(),(),(),(),(),()],[()])
+    , ([(),(),(),(),(),(),(),(),()],[])
+    ]
+  , [ ([],[(),(),(),(),(),(),(),(),(),()])
+    , ([()],[(),(),(),(),(),(),(),(),()])
+    , ([(),()],[(),(),(),(),(),(),(),()])
+    , ([(),(),()],[(),(),(),(),(),(),()])
+    , ([(),(),(),()],[(),(),(),(),(),()])
+    , ([(),(),(),(),()],[(),(),(),(),()])
+    , ([(),(),(),(),(),()],[(),(),(),()])
+    , ([(),(),(),(),(),(),()],[(),(),()])
+    , ([(),(),(),(),(),(),(),()],[(),()])
+    , ([(),(),(),(),(),(),(),(),()],[()])
+    , ([(),(),(),(),(),(),(),(),(),()],[])
+    ]
+  , [ ([],[(),(),(),(),(),(),(),(),(),(),()])
+    , ([()],[(),(),(),(),(),(),(),(),(),()])
+    , ([(),()],[(),(),(),(),(),(),(),(),()])
+    , ([(),(),()],[(),(),(),(),(),(),(),()])
+    , ([(),(),(),()],[(),(),(),(),(),(),()])
+    , ([(),(),(),(),()],[(),(),(),(),(),()])
+    , ([(),(),(),(),(),()],[(),(),(),(),()])
+    , ([(),(),(),(),(),(),()],[(),(),(),()])
+    , ([(),(),(),(),(),(),(),()],[(),(),()])
+    , ([(),(),(),(),(),(),(),(),()],[(),()])
+    , ([(),(),(),(),(),(),(),(),(),()],[()])
+    , ([(),(),(),(),(),(),(),(),(),(),()],[])
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/Us.txt b/bench/tiers-txt/Us.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Us.txt
@@ -0,0 +1,23 @@
+map length (tiers :: [[ [()] ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,...]
+
+length (list :: [ [()] ])  =  Infinity
+
+allUnique (list :: [ [()] ])  =  True
+
+ratioRepetitions (list :: [ [()] ])  =  0 % 1
+
+tiers :: [[()]]  =
+  [ [[]]
+  , [[()]]
+  , [[(),()]]
+  , [[(),(),()]]
+  , [[(),(),(),()]]
+  , [[(),(),(),(),()]]
+  , [[(),(),(),(),(),()]]
+  , [[(),(),(),(),(),(),()]]
+  , [[(),(),(),(),(),(),(),()]]
+  , [[(),(),(),(),(),(),(),(),()]]
+  , [[(),(),(),(),(),(),(),(),(),()]]
+  , [[(),(),(),(),(),(),(),(),(),(),()]]
+  , ...
+  ]
diff --git a/bench/tiers-txt/Word2.txt b/bench/tiers-txt/Word2.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Word2.txt
@@ -0,0 +1,14 @@
+map length (tiers :: [[ Word2 ]])  =  [1,1,1,1]
+
+length (list :: [ Word2 ])  =  4
+
+allUnique (list :: [ Word2 ])  =  True
+
+ratioRepetitions (list :: [ Word2 ])  =  0 % 1
+
+tiers :: [Word2]  =
+  [ [0]
+  , [1]
+  , [2]
+  , [3]
+  ]
diff --git a/bench/tiers-txt/Word3.txt b/bench/tiers-txt/Word3.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Word3.txt
@@ -0,0 +1,18 @@
+map length (tiers :: [[ Word3 ]])  =  [1,1,1,1,1,1,1,1]
+
+length (list :: [ Word3 ])  =  8
+
+allUnique (list :: [ Word3 ])  =  True
+
+ratioRepetitions (list :: [ Word3 ])  =  0 % 1
+
+tiers :: [Word3]  =
+  [ [0]
+  , [1]
+  , [2]
+  , [3]
+  , [4]
+  , [5]
+  , [6]
+  , [7]
+  ]
diff --git a/bench/tiers-txt/Word4.txt b/bench/tiers-txt/Word4.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Word4.txt
@@ -0,0 +1,26 @@
+map length (tiers :: [[ Word4 ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
+
+length (list :: [ Word4 ])  =  Infinity
+
+allUnique (list :: [ Word4 ])  =  True
+
+ratioRepetitions (list :: [ Word4 ])  =  0 % 1
+
+tiers :: [Word4]  =
+  [ [0]
+  , [1]
+  , [2]
+  , [3]
+  , [4]
+  , [5]
+  , [6]
+  , [7]
+  , [8]
+  , [9]
+  , [10]
+  , [11]
+  , [12]
+  , [13]
+  , [14]
+  , [15]
+  ]
diff --git a/bench/tiers-txt/Word8.txt b/bench/tiers-txt/Word8.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/Word8.txt
@@ -0,0 +1,266 @@
+map length (tiers :: [[ Word8 ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
+
+length (list :: [ Word8 ])  =  Infinity
+
+allUnique (list :: [ Word8 ])  =  True
+
+ratioRepetitions (list :: [ Word8 ])  =  0 % 1
+
+tiers :: [Word8]  =
+  [ [0]
+  , [1]
+  , [2]
+  , [3]
+  , [4]
+  , [5]
+  , [6]
+  , [7]
+  , [8]
+  , [9]
+  , [10]
+  , [11]
+  , [12]
+  , [13]
+  , [14]
+  , [15]
+  , [16]
+  , [17]
+  , [18]
+  , [19]
+  , [20]
+  , [21]
+  , [22]
+  , [23]
+  , [24]
+  , [25]
+  , [26]
+  , [27]
+  , [28]
+  , [29]
+  , [30]
+  , [31]
+  , [32]
+  , [33]
+  , [34]
+  , [35]
+  , [36]
+  , [37]
+  , [38]
+  , [39]
+  , [40]
+  , [41]
+  , [42]
+  , [43]
+  , [44]
+  , [45]
+  , [46]
+  , [47]
+  , [48]
+  , [49]
+  , [50]
+  , [51]
+  , [52]
+  , [53]
+  , [54]
+  , [55]
+  , [56]
+  , [57]
+  , [58]
+  , [59]
+  , [60]
+  , [61]
+  , [62]
+  , [63]
+  , [64]
+  , [65]
+  , [66]
+  , [67]
+  , [68]
+  , [69]
+  , [70]
+  , [71]
+  , [72]
+  , [73]
+  , [74]
+  , [75]
+  , [76]
+  , [77]
+  , [78]
+  , [79]
+  , [80]
+  , [81]
+  , [82]
+  , [83]
+  , [84]
+  , [85]
+  , [86]
+  , [87]
+  , [88]
+  , [89]
+  , [90]
+  , [91]
+  , [92]
+  , [93]
+  , [94]
+  , [95]
+  , [96]
+  , [97]
+  , [98]
+  , [99]
+  , [100]
+  , [101]
+  , [102]
+  , [103]
+  , [104]
+  , [105]
+  , [106]
+  , [107]
+  , [108]
+  , [109]
+  , [110]
+  , [111]
+  , [112]
+  , [113]
+  , [114]
+  , [115]
+  , [116]
+  , [117]
+  , [118]
+  , [119]
+  , [120]
+  , [121]
+  , [122]
+  , [123]
+  , [124]
+  , [125]
+  , [126]
+  , [127]
+  , [128]
+  , [129]
+  , [130]
+  , [131]
+  , [132]
+  , [133]
+  , [134]
+  , [135]
+  , [136]
+  , [137]
+  , [138]
+  , [139]
+  , [140]
+  , [141]
+  , [142]
+  , [143]
+  , [144]
+  , [145]
+  , [146]
+  , [147]
+  , [148]
+  , [149]
+  , [150]
+  , [151]
+  , [152]
+  , [153]
+  , [154]
+  , [155]
+  , [156]
+  , [157]
+  , [158]
+  , [159]
+  , [160]
+  , [161]
+  , [162]
+  , [163]
+  , [164]
+  , [165]
+  , [166]
+  , [167]
+  , [168]
+  , [169]
+  , [170]
+  , [171]
+  , [172]
+  , [173]
+  , [174]
+  , [175]
+  , [176]
+  , [177]
+  , [178]
+  , [179]
+  , [180]
+  , [181]
+  , [182]
+  , [183]
+  , [184]
+  , [185]
+  , [186]
+  , [187]
+  , [188]
+  , [189]
+  , [190]
+  , [191]
+  , [192]
+  , [193]
+  , [194]
+  , [195]
+  , [196]
+  , [197]
+  , [198]
+  , [199]
+  , [200]
+  , [201]
+  , [202]
+  , [203]
+  , [204]
+  , [205]
+  , [206]
+  , [207]
+  , [208]
+  , [209]
+  , [210]
+  , [211]
+  , [212]
+  , [213]
+  , [214]
+  , [215]
+  , [216]
+  , [217]
+  , [218]
+  , [219]
+  , [220]
+  , [221]
+  , [222]
+  , [223]
+  , [224]
+  , [225]
+  , [226]
+  , [227]
+  , [228]
+  , [229]
+  , [230]
+  , [231]
+  , [232]
+  , [233]
+  , [234]
+  , [235]
+  , [236]
+  , [237]
+  , [238]
+  , [239]
+  , [240]
+  , [241]
+  , [242]
+  , [243]
+  , [244]
+  , [245]
+  , [246]
+  , [247]
+  , [248]
+  , [249]
+  , [250]
+  , [251]
+  , [252]
+  , [253]
+  , [254]
+  , [255]
+  ]
diff --git a/bench/tiers-txt/XInt4.txt b/bench/tiers-txt/XInt4.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/XInt4.txt
@@ -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/bench/tiers-txt/XNat7.txt b/bench/tiers-txt/XNat7.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/XNat7.txt
@@ -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/bench/tiers-txt/XWord4.txt b/bench/tiers-txt/XWord4.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/XWord4.txt
@@ -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/bench/tiers-txt/XsInt4.txt b/bench/tiers-txt/XsInt4.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/XsInt4.txt
@@ -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/bench/tiers-txt/XsNat7.txt b/bench/tiers-txt/XsNat7.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/XsNat7.txt
@@ -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/bench/tiers-txt/XsWord4.txt b/bench/tiers-txt/XsWord4.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/XsWord4.txt
@@ -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/bench/tiers-txt/default-Bool-Bool-Bool-Bool.txt b/bench/tiers-txt/default-Bool-Bool-Bool-Bool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-Bool-Bool-Bool-Bool.txt
@@ -0,0 +1,1059 @@
+map length (tiers :: [[ Bool->Bool->Bool->Bool ]])  =  [256]
+
+length (list :: [ Bool->Bool->Bool->Bool ])  =  Infinity
+
+allUnique (list :: [ Bool->Bool->Bool->Bool ])  =  True
+
+ratioRepetitions (list :: [ Bool->Bool->Bool->Bool ])  =  0 % 1
+
+tiers :: [Bool->Bool->Bool->Bool]  =
+  [ [ \_ _ _ -> False
+    , \x y z -> case (x,y,z) of
+                (True,True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (True,True,False) -> True
+                _ -> False
+    , \x y _ -> case (x,y) of
+                (True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (True,False,True) -> True
+                _ -> False
+    , \x _ z -> case (x,z) of
+                (True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (True,False,True) -> True
+                (True,True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,_,_) -> False
+                (_,False,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (True,False,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (True,False,False) -> True
+                (True,True,True) -> True
+                _ -> False
+    , \x _ z -> case (x,z) of
+                (True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (True,_,False) -> True
+                (True,True,_) -> True
+                _ -> False
+    , \x y _ -> case (x,y) of
+                (True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (True,False,_) -> True
+                (True,_,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (True,False,_) -> True
+                (True,_,False) -> True
+                _ -> False
+    , \x _ _ -> case x of
+                False -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,True,True) -> True
+                _ -> False
+    , \_ y z -> case (y,z) of
+                (True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,True,True) -> True
+                (True,True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> False
+                (_,False,_) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,True,True) -> True
+                (True,False,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> False
+                (_,_,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,True,True) -> True
+                (True,False,True) -> True
+                (True,True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> False
+                (False,_,False) -> False
+                (_,False,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,True,True) -> True
+                (True,False,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (_,True,True) -> True
+                (True,False,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,True,True) -> True
+                (True,_,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> False
+                (False,_,False) -> False
+                (_,False,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,True,True) -> True
+                (True,False,_) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> False
+                (False,_,False) -> False
+                (_,True,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> False
+                (False,_,False) -> False
+                (True,True,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> False
+                (False,_,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,True,False) -> True
+                (True,True,True) -> True
+                _ -> False
+    , \_ y z -> case (y,z) of
+                (True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (_,True,False) -> True
+                (True,True,_) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,True,False) -> True
+                (True,False,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,True,False) -> True
+                (True,_,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (_,True,False) -> True
+                (True,False,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> False
+                (_,False,False) -> False
+                (False,_,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,True,False) -> True
+                (True,False,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,True,False) -> True
+                (True,False,False) -> True
+                (True,True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> False
+                (_,_,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> False
+                (False,_,True) -> False
+                (_,False,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,True,False) -> True
+                (True,False,_) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> False
+                (False,_,True) -> False
+                (True,True,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> False
+                (False,_,True) -> False
+                (_,True,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> False
+                (False,_,True) -> False
+                _ -> True
+    , \x y _ -> case (x,y) of
+                (False,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,True,_) -> True
+                (_,True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,True,_) -> True
+                (_,True,False) -> True
+                _ -> False
+    , \_ y _ -> case y of
+                False -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,True,_) -> True
+                (True,False,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> False
+                (_,False,False) -> False
+                (True,_,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> False
+                (_,False,False) -> False
+                (True,True,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> False
+                (_,False,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,True,_) -> True
+                (True,False,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> False
+                (_,False,True) -> False
+                (True,True,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> False
+                (False,_,_) -> True
+                (_,_,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> False
+                (_,False,True) -> False
+                _ -> True
+    , \x y _ -> case (x,y) of
+                (False,False) -> False
+                (True,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> False
+                (True,True,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> False
+                (True,True,True) -> False
+                _ -> True
+    , \x y _ -> case (x,y) of
+                (False,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,True) -> True
+                (True,True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,True) -> True
+                (True,True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,True) -> True
+                (True,True,_) -> True
+                _ -> False
+    , \_ y z -> case (y,z) of
+                (False,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (_,False,True) -> True
+                (True,_,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (_,False,True) -> True
+                (True,True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> False
+                (_,False,False) -> False
+                (False,True,_) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,True) -> True
+                (True,False,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,True) -> True
+                (True,False,False) -> True
+                (True,True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,True) -> True
+                (True,_,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> False
+                (False,True,_) -> False
+                (True,False,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> False
+                (_,False,_) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> False
+                (False,True,_) -> False
+                (_,True,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> False
+                (False,True,_) -> False
+                (_,True,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> False
+                (False,True,_) -> False
+                _ -> True
+    , \x _ z -> case (x,z) of
+                (False,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,_,True) -> True
+                (_,True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,_,True) -> True
+                (True,True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> False
+                (_,False,False) -> False
+                (True,False,_) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,_,True) -> True
+                (_,False,True) -> True
+                _ -> False
+    , \_ _ z -> case z of
+                False -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> False
+                (_,False,False) -> False
+                (True,True,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> False
+                (_,False,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,_,True) -> True
+                (True,False,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> False
+                (True,False,True) -> False
+                (_,True,False) -> False
+                _ -> True
+    , \x _ z -> case (x,z) of
+                (False,False) -> False
+                (True,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> False
+                (True,False,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> False
+                (False,_,_) -> True
+                (_,False,_) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> False
+                (_,True,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> False
+                (True,True,True) -> False
+                _ -> True
+    , \x _ z -> case (x,z) of
+                (False,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,True) -> True
+                (False,True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,True) -> True
+                (False,True,False) -> True
+                (True,True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,True) -> True
+                (_,True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (_,False,False) -> False
+                (False,True,True) -> False
+                (True,False,_) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (_,False,True) -> True
+                (False,True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (_,False,False) -> False
+                (False,True,True) -> False
+                (True,_,False) -> False
+                _ -> True
+    , \_ y z -> case (y,z) of
+                (False,False) -> False
+                (True,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (_,False,False) -> False
+                (False,True,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,True) -> True
+                (False,True,False) -> True
+                (True,False,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> False
+                (False,True,True) -> False
+                (True,False,True) -> False
+                (True,True,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> False
+                (False,False,_) -> True
+                (_,_,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> False
+                (False,True,True) -> False
+                (True,False,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> False
+                (_,False,_) -> True
+                (False,_,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> False
+                (False,True,True) -> False
+                (True,True,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> False
+                (_,True,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> False
+                (False,True,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (_,False,False) -> False
+                (False,_,_) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (_,False,False) -> False
+                (True,False,_) -> False
+                (True,_,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (_,False,False) -> False
+                (True,False,_) -> False
+                (True,_,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (_,False,False) -> False
+                (True,False,_) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (_,False,False) -> False
+                (False,_,_) -> True
+                (_,False,_) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (_,False,False) -> False
+                (True,_,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (_,False,False) -> False
+                (True,True,True) -> False
+                _ -> True
+    , \_ y z -> case (y,z) of
+                (False,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> False
+                (False,_,_) -> True
+                (_,False,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> False
+                (True,False,True) -> False
+                (True,True,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> False
+                (True,_,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> False
+                (True,False,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> False
+                (True,True,_) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> False
+                (True,True,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> False
+                (True,True,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> True
+                (True,True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> True
+                (True,True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> True
+                (True,True,_) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> True
+                (True,False,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> True
+                (True,_,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> True
+                (True,False,True) -> True
+                (True,True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> True
+                (False,_,_) -> False
+                (_,False,False) -> False
+                _ -> True
+    , \_ y z -> case (y,z) of
+                (False,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (_,False,False) -> True
+                (True,True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (_,False,False) -> True
+                (True,_,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (_,False,False) -> True
+                (False,_,_) -> False
+                (_,False,_) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (_,False,False) -> True
+                (True,False,_) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (_,False,False) -> True
+                (True,False,_) -> True
+                (True,_,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (_,False,False) -> True
+                (True,False,_) -> True
+                (True,_,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (_,False,False) -> True
+                (False,_,_) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> True
+                (False,True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> True
+                (_,True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> True
+                (False,True,True) -> True
+                (True,True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> True
+                (_,False,_) -> False
+                (False,_,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> True
+                (False,True,True) -> True
+                (True,False,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> True
+                (False,False,_) -> False
+                (_,_,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,False) -> True
+                (False,True,True) -> True
+                (True,False,True) -> True
+                (True,True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,True) -> False
+                (False,True,False) -> False
+                (True,False,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (_,False,False) -> True
+                (False,True,True) -> True
+                _ -> False
+    , \_ y z -> case (y,z) of
+                (False,False) -> True
+                (True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (_,False,False) -> True
+                (False,True,True) -> True
+                (True,_,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (_,False,True) -> False
+                (False,True,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (_,False,False) -> True
+                (False,True,True) -> True
+                (True,False,_) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,True) -> False
+                (_,True,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,True) -> False
+                (False,True,False) -> False
+                (True,True,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,True) -> False
+                (False,True,False) -> False
+                _ -> True
+    , \x _ z -> case (x,z) of
+                (False,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> True
+                (True,True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> True
+                (_,True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> True
+                (False,_,_) -> False
+                (_,False,_) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> True
+                (True,False,True) -> True
+                _ -> False
+    , \x _ z -> case (x,z) of
+                (False,False) -> True
+                (True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> True
+                (True,False,True) -> True
+                (_,True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,_,True) -> False
+                (True,False,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> True
+                (_,False,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> True
+                (_,False,False) -> True
+                (True,True,True) -> True
+                _ -> False
+    , \_ _ z -> case z of
+                False -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,_,True) -> False
+                (_,False,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> True
+                (_,False,False) -> True
+                (True,False,_) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,_,True) -> False
+                (True,True,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,_,True) -> False
+                (_,True,True) -> False
+                _ -> True
+    , \x _ z -> case (x,z) of
+                (False,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> True
+                (False,True,_) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> True
+                (False,True,_) -> True
+                (_,True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> True
+                (False,True,_) -> True
+                (_,True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> True
+                (_,False,_) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> True
+                (False,True,_) -> True
+                (True,False,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,True) -> False
+                (True,_,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,True) -> False
+                (True,False,False) -> False
+                (True,True,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,True) -> False
+                (True,False,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> True
+                (_,False,False) -> True
+                (False,True,_) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (_,False,True) -> False
+                (True,True,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (_,False,True) -> False
+                (True,_,True) -> False
+                _ -> True
+    , \_ y z -> case (y,z) of
+                (False,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,True) -> False
+                (True,True,_) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,True) -> False
+                (True,True,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,True) -> False
+                (True,True,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,True) -> False
+                _ -> True
+    , \x y _ -> case (x,y) of
+                (False,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> True
+                (True,True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> True
+                (True,True,False) -> True
+                _ -> False
+    , \x y _ -> case (x,y) of
+                (False,False) -> True
+                (True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> True
+                (_,False,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> True
+                (False,_,_) -> False
+                (_,_,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> True
+                (_,False,True) -> True
+                (True,True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,True,_) -> False
+                (True,False,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> True
+                (_,False,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> True
+                (_,False,False) -> True
+                (True,True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> True
+                (_,False,False) -> True
+                (True,_,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,True,_) -> False
+                (True,False,True) -> False
+                _ -> True
+    , \_ y _ -> case y of
+                False -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,True,_) -> False
+                (_,True,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,True,_) -> False
+                (_,True,True) -> False
+                _ -> True
+    , \x y _ -> case (x,y) of
+                (False,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> True
+                (False,_,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> True
+                (False,_,True) -> True
+                (_,True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> True
+                (False,_,True) -> True
+                (True,True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,True,False) -> False
+                (True,False,_) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> True
+                (False,_,True) -> True
+                (_,False,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> True
+                (_,_,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,True,False) -> False
+                (True,False,False) -> False
+                (True,True,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,True,False) -> False
+                (True,False,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> True
+                (_,False,False) -> True
+                (False,_,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (_,True,False) -> False
+                (True,False,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,True,False) -> False
+                (True,_,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,True,False) -> False
+                (True,False,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (_,True,False) -> False
+                (True,True,_) -> False
+                _ -> True
+    , \_ y z -> case (y,z) of
+                (True,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,True,False) -> False
+                (True,True,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,True,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> True
+                (False,_,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> True
+                (False,_,False) -> True
+                (True,True,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> True
+                (False,_,False) -> True
+                (_,True,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,True,True) -> False
+                (True,False,_) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> True
+                (False,_,False) -> True
+                (_,False,True) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,True,True) -> False
+                (True,_,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (_,True,True) -> False
+                (True,False,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,True,True) -> False
+                (True,False,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> True
+                (False,_,False) -> True
+                (_,False,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,True,True) -> False
+                (True,False,True) -> False
+                (True,True,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,False,_) -> True
+                (_,_,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,True,True) -> False
+                (True,False,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,_,False) -> True
+                (_,False,_) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (False,True,True) -> False
+                (True,True,False) -> False
+                _ -> True
+    , \_ y z -> case (y,z) of
+                (True,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,True,True) -> False
+                _ -> True
+    , \x _ _ -> case x of
+                False -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (True,False,_) -> False
+                (True,_,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (True,False,_) -> False
+                (True,_,True) -> False
+                _ -> True
+    , \x y _ -> case (x,y) of
+                (True,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (True,_,False) -> False
+                (True,True,_) -> False
+                _ -> True
+    , \x _ z -> case (x,z) of
+                (True,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (True,False,False) -> False
+                (True,True,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (True,False,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (False,_,_) -> True
+                (_,False,False) -> True
+                _ -> False
+    , \x y z -> case (x,y,z) of
+                (True,False,True) -> False
+                (True,True,False) -> False
+                _ -> True
+    , \x _ z -> case (x,z) of
+                (True,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (True,False,True) -> False
+                _ -> True
+    , \x y _ -> case (x,y) of
+                (True,True) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (True,True,False) -> False
+                _ -> True
+    , \x y z -> case (x,y,z) of
+                (True,True,True) -> False
+                _ -> True
+    , \_ _ _ -> True
+    ]
+  ]
diff --git a/bench/tiers-txt/default-Bool-Bool-Bool.txt b/bench/tiers-txt/default-Bool-Bool-Bool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-Bool-Bool-Bool.txt
@@ -0,0 +1,57 @@
+map length (tiers :: [[ Bool->Bool->Bool ]])  =  [16]
+
+length (list :: [ Bool->Bool->Bool ])  =  Infinity
+
+allUnique (list :: [ Bool->Bool->Bool ])  =  True
+
+ratioRepetitions (list :: [ Bool->Bool->Bool ])  =  0 % 1
+
+tiers :: [Bool->Bool->Bool]  =
+  [ [ \_ _ -> False
+    , \x y -> case (x,y) of
+              (True,True) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (True,False) -> True
+              _ -> False
+    , \x _ -> case x of
+              False -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,True) -> True
+              _ -> False
+    , \_ y -> case y of
+              False -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,False) -> False
+              (True,True) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,False) -> True
+              (True,True) -> True
+              _ -> False
+    , \_ y -> case y of
+              False -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,True) -> False
+              _ -> True
+    , \x _ -> case x of
+              False -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (True,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (True,True) -> False
+              _ -> True
+    , \_ _ -> True
+    ]
+  ]
diff --git a/bench/tiers-txt/default-Bool-Bool.txt b/bench/tiers-txt/default-Bool-Bool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-Bool-Bool.txt
@@ -0,0 +1,19 @@
+map length (tiers :: [[ Bool->Bool ]])  =  [4]
+
+length (list :: [ Bool->Bool ])  =  4
+
+allUnique (list :: [ Bool->Bool ])  =  True
+
+ratioRepetitions (list :: [ Bool->Bool ])  =  0 % 1
+
+tiers :: [Bool->Bool]  =
+  [ [ \_ -> False
+    , \x -> case x of
+            False -> False
+            True -> True
+    , \x -> case x of
+            False -> True
+            True -> False
+    , \_ -> True
+    ]
+  ]
diff --git a/bench/tiers-txt/default-Bool-Int-Bool.txt b/bench/tiers-txt/default-Bool-Int-Bool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-Bool-Int-Bool.txt
@@ -0,0 +1,709 @@
+map length (tiers :: [[ Bool->Int->Bool ]])  =  [4,8,12,24,36,56,...]
+
+length (list :: [ Bool->Int->Bool ])  =  Infinity
+
+allUnique (list :: [ Bool->Int->Bool ])  =  True
+
+ratioRepetitions (list :: [ Bool->Int->Bool ])  =  0 % 1
+
+tiers :: [Bool->Int->Bool]  =
+  [ [ \_ _ -> False
+    , \x _ -> case x of
+              False -> False
+              _ -> True
+    , \x _ -> case x of
+              False -> True
+              _ -> False
+    , \_ _ -> True
+    ]
+  , [ \x y -> case (x,y) of
+              (True,0) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,_) -> False
+              (_,0) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,_) -> True
+              (_,0) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (True,0) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,0) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,0) -> True
+              (False,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (_,0) -> False
+              (False,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,0) -> False
+              _ -> True
+    ]
+  , [ \x y -> case (x,y) of
+              (True,1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,_) -> False
+              (_,0) -> True
+              (_,1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,_) -> True
+              (_,0) -> False
+              (_,1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (True,1) -> False
+              _ -> True
+    , \_ y -> case y of
+              0 -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,0) -> True
+              (_,0) -> False
+              (False,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,0) -> False
+              (_,0) -> True
+              (False,_) -> True
+              _ -> False
+    , \_ y -> case y of
+              0 -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,0) -> False
+              (True,_) -> True
+              (_,0) -> True
+              (_,1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,0) -> True
+              (True,_) -> False
+              (_,0) -> False
+              (_,1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,1) -> False
+              _ -> True
+    ]
+  , [ \x y -> case (x,y) of
+              (True,0) -> True
+              (True,1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (True,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,_) -> False
+              (_,0) -> False
+              (_,1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,_) -> False
+              (_,0) -> True
+              (_,1) -> True
+              (_,-1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,_) -> True
+              (_,0) -> True
+              (_,1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,_) -> True
+              (_,0) -> False
+              (_,1) -> False
+              (_,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (True,0) -> False
+              (True,1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (True,-1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,0) -> True
+              (True,1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,0) -> True
+              (False,_) -> False
+              (_,1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (_,0) -> False
+              (False,_) -> True
+              (_,1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,0) -> False
+              (True,1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (True,0) -> True
+              (False,1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,0) -> False
+              (_,1) -> True
+              (False,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (_,0) -> True
+              (_,1) -> False
+              (False,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (True,0) -> False
+              (False,1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,0) -> True
+              (False,1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,0) -> True
+              (_,1) -> True
+              (False,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,0) -> False
+              (True,_) -> True
+              (_,0) -> True
+              (_,1) -> False
+              (_,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,0) -> False
+              (_,1) -> False
+              (False,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,0) -> False
+              (False,1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,0) -> True
+              (True,_) -> False
+              (_,0) -> False
+              (_,1) -> True
+              (_,-1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,-1) -> False
+              _ -> True
+    ]
+  , [ \x y -> case (x,y) of
+              (True,0) -> True
+              (True,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (True,2) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,_) -> False
+              (_,0) -> False
+              (_,1) -> True
+              (_,-1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,_) -> False
+              (_,0) -> True
+              (_,1) -> True
+              (_,-1) -> True
+              (_,2) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,_) -> True
+              (_,0) -> True
+              (_,1) -> False
+              (_,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,_) -> True
+              (_,0) -> False
+              (_,1) -> False
+              (_,-1) -> False
+              (_,2) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (True,0) -> False
+              (True,-1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (True,2) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (_,0) -> True
+              (True,1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,0) -> True
+              (True,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,0) -> True
+              (_,0) -> False
+              (False,_) -> False
+              (_,1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (_,0) -> True
+              (False,_) -> False
+              (_,1) -> True
+              (_,-1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,0) -> False
+              (_,0) -> True
+              (False,_) -> True
+              (_,1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,0) -> False
+              (False,_) -> True
+              (_,1) -> False
+              (_,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,0) -> False
+              (True,1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,0) -> False
+              (True,-1) -> False
+              _ -> True
+    , \_ y -> case y of
+              1 -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,0) -> False
+              (_,0) -> True
+              (False,1) -> True
+              (_,1) -> False
+              (False,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,0) -> True
+              (_,0) -> False
+              (False,1) -> False
+              (_,1) -> True
+              (False,_) -> True
+              _ -> False
+    , \_ y -> case y of
+              1 -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (_,0) -> True
+              (False,1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,0) -> True
+              (_,0) -> False
+              (_,1) -> True
+              (False,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (True,0) -> True
+              (False,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,0) -> False
+              (False,1) -> False
+              (True,_) -> True
+              (_,1) -> True
+              (_,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,0) -> False
+              (_,0) -> True
+              (_,1) -> False
+              (False,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,0) -> False
+              (False,1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (_,0) -> True
+              (False,1) -> True
+              (True,_) -> False
+              (_,1) -> False
+              (_,-1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (True,0) -> False
+              (False,-1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,0) -> True
+              (False,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,0) -> True
+              (False,1) -> False
+              (True,_) -> True
+              (_,1) -> True
+              (_,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,2) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,0) -> False
+              (True,_) -> True
+              (_,0) -> True
+              (_,1) -> False
+              (_,-1) -> False
+              (_,2) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,0) -> False
+              (False,1) -> True
+              (True,_) -> False
+              (_,1) -> False
+              (_,-1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,0) -> False
+              (False,-1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,0) -> True
+              (True,_) -> False
+              (_,0) -> False
+              (_,1) -> True
+              (_,-1) -> True
+              (_,2) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,2) -> False
+              _ -> True
+    ]
+  , [ \x y -> case (x,y) of
+              (True,0) -> True
+              (True,2) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (True,1) -> True
+              (True,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (True,-2) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,_) -> False
+              (_,0) -> False
+              (_,1) -> True
+              (_,-1) -> True
+              (_,2) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,_) -> False
+              (_,0) -> True
+              (_,1) -> False
+              (_,-1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,_) -> False
+              (_,0) -> True
+              (_,1) -> True
+              (_,-1) -> True
+              (_,2) -> True
+              (_,-2) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,_) -> True
+              (_,0) -> True
+              (_,1) -> False
+              (_,-1) -> False
+              (_,2) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,_) -> True
+              (_,0) -> False
+              (_,1) -> True
+              (_,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,_) -> True
+              (_,0) -> False
+              (_,1) -> False
+              (_,-1) -> False
+              (_,2) -> False
+              (_,-2) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (True,0) -> False
+              (True,2) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (True,1) -> False
+              (True,-1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (True,-2) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (_,0) -> True
+              (True,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,0) -> True
+              (True,2) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,0) -> True
+              (_,0) -> False
+              (False,_) -> False
+              (_,1) -> True
+              (_,-1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (_,0) -> True
+              (False,_) -> False
+              (_,1) -> True
+              (_,-1) -> True
+              (_,2) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,0) -> False
+              (_,0) -> True
+              (False,_) -> True
+              (_,1) -> False
+              (_,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,0) -> False
+              (False,_) -> True
+              (_,1) -> False
+              (_,-1) -> False
+              (_,2) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,0) -> False
+              (True,-1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,0) -> False
+              (True,2) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (True,0) -> True
+              (_,1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,1) -> True
+              (True,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,0) -> False
+              (False,1) -> True
+              (_,1) -> False
+              (False,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,0) -> False
+              (_,0) -> True
+              (_,1) -> True
+              (False,_) -> False
+              (_,-1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (_,0) -> True
+              (False,1) -> False
+              (_,1) -> True
+              (False,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,0) -> True
+              (_,0) -> False
+              (_,1) -> False
+              (False,_) -> True
+              (_,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (True,0) -> False
+              (_,1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,1) -> False
+              (True,-1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,0) -> True
+              (_,1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,0) -> True
+              (False,1) -> True
+              (_,1) -> False
+              (False,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (True,1) -> True
+              (False,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,0) -> False
+              (_,0) -> True
+              (_,1) -> False
+              (_,-1) -> True
+              (False,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (_,0) -> False
+              (False,1) -> False
+              (_,1) -> True
+              (False,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,0) -> False
+              (_,1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,0) -> True
+              (_,0) -> False
+              (_,1) -> True
+              (_,-1) -> False
+              (False,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (True,1) -> False
+              (False,-1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (_,0) -> True
+              (False,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,0) -> True
+              (_,0) -> False
+              (False,1) -> False
+              (True,_) -> True
+              (_,1) -> True
+              (_,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (True,0) -> True
+              (False,2) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,0) -> False
+              (False,1) -> False
+              (True,_) -> True
+              (_,1) -> True
+              (_,-1) -> False
+              (_,2) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,0) -> False
+              (_,0) -> True
+              (False,1) -> True
+              (True,_) -> False
+              (_,1) -> False
+              (_,-1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (_,0) -> False
+              (False,-1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (_,0) -> True
+              (False,1) -> True
+              (True,_) -> False
+              (_,1) -> False
+              (_,-1) -> True
+              (_,2) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (True,0) -> False
+              (False,2) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,0) -> True
+              (False,2) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,0) -> True
+              (False,1) -> False
+              (True,_) -> True
+              (_,1) -> True
+              (_,-1) -> False
+              (_,2) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,1) -> True
+              (False,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,0) -> False
+              (True,_) -> True
+              (_,0) -> True
+              (_,1) -> True
+              (_,-1) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,-2) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (False,0) -> False
+              (True,_) -> True
+              (_,0) -> True
+              (_,1) -> False
+              (_,-1) -> False
+              (_,2) -> False
+              (_,-2) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,0) -> False
+              (False,1) -> True
+              (True,_) -> False
+              (_,1) -> False
+              (_,-1) -> True
+              (_,2) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,0) -> False
+              (False,2) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,0) -> True
+              (True,_) -> False
+              (_,0) -> False
+              (_,1) -> False
+              (_,-1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,1) -> False
+              (False,-1) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,0) -> True
+              (True,_) -> False
+              (_,0) -> False
+              (_,1) -> True
+              (_,-1) -> True
+              (_,2) -> True
+              (_,-2) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (False,-2) -> False
+              _ -> True
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/default-Bool-MBool.txt b/bench/tiers-txt/default-Bool-MBool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-Bool-MBool.txt
@@ -0,0 +1,33 @@
+map length (tiers :: [[ Bool->Maybe Bool ]])  =  [1,4,4]
+
+length (list :: [ Bool->Maybe Bool ])  =  9
+
+allUnique (list :: [ Bool->Maybe Bool ])  =  True
+
+ratioRepetitions (list :: [ Bool->Maybe Bool ])  =  0 % 1
+
+tiers :: [Bool->Maybe Bool]  =
+  [ [\_ -> Nothing]
+  , [ \x -> case x of
+            False -> Nothing
+            True -> Just False
+    , \x -> case x of
+            False -> Nothing
+            True -> Just True
+    , \x -> case x of
+            False -> Just False
+            True -> Nothing
+    , \x -> case x of
+            False -> Just True
+            True -> Nothing
+    ]
+  , [ \_ -> Just False
+    , \x -> case x of
+            False -> Just False
+            True -> Just True
+    , \x -> case x of
+            False -> Just True
+            True -> Just False
+    , \_ -> Just True
+    ]
+  ]
diff --git a/bench/tiers-txt/default-Bool-U.txt b/bench/tiers-txt/default-Bool-U.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-Bool-U.txt
@@ -0,0 +1,10 @@
+map length (tiers :: [[ Bool->() ]])  =  [1]
+
+length (list :: [ Bool->() ])  =  1
+
+allUnique (list :: [ Bool->() ])  =  True
+
+ratioRepetitions (list :: [ Bool->() ])  =  0 % 1
+
+tiers :: [Bool->()]  =
+  [[\_ -> ()]]
diff --git a/bench/tiers-txt/default-Bools-Bools.txt b/bench/tiers-txt/default-Bools-Bools.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-Bools-Bools.txt
@@ -0,0 +1,332 @@
+map length (tiers :: [[ [Bool]->[Bool] ]])  =  [1,2,8,26,88,...]
+
+length (list :: [ [Bool]->[Bool] ])  =  Infinity
+
+allUnique (list :: [ [Bool]->[Bool] ])  =  True
+
+ratioRepetitions (list :: [ [Bool]->[Bool] ])  =  0 % 1
+
+tiers :: [[Bool]->[Bool]]  =
+  [ [\_ -> []]
+  , [ \_ -> [False]
+    , \_ -> [True]
+    ]
+  , [ \x -> case x of
+            [] -> [False]
+            _ -> []
+    , \x -> case x of
+            [] -> [True]
+            _ -> []
+    , \x -> case x of
+            [] -> []
+            _ -> [False]
+    , \x -> case x of
+            [] -> []
+            _ -> [True]
+    , \_ -> [False,False]
+    , \_ -> [False,True]
+    , \_ -> [True,False]
+    , \_ -> [True,True]
+    ]
+  , [ \x -> case x of
+            [] -> [False,False]
+            _ -> []
+    , \x -> case x of
+            [] -> [False,True]
+            _ -> []
+    , \x -> case x of
+            [] -> [True,False]
+            _ -> []
+    , \x -> case x of
+            [] -> [True,True]
+            _ -> []
+    , \x -> case x of
+            [False] -> [False]
+            _ -> []
+    , \x -> case x of
+            [False] -> [True]
+            _ -> []
+    , \x -> case x of
+            [True] -> [False]
+            _ -> []
+    , \x -> case x of
+            [True] -> [True]
+            _ -> []
+    , \x -> case x of
+            [] -> [True]
+            _ -> [False]
+    , \x -> case x of
+            [False] -> []
+            _ -> [False]
+    , \x -> case x of
+            [True] -> []
+            _ -> [False]
+    , \x -> case x of
+            [] -> [False]
+            _ -> [True]
+    , \x -> case x of
+            [False] -> []
+            _ -> [True]
+    , \x -> case x of
+            [True] -> []
+            _ -> [True]
+    , \x -> case x of
+            [] -> []
+            _ -> [False,False]
+    , \x -> case x of
+            [] -> []
+            _ -> [False,True]
+    , \x -> case x of
+            [] -> []
+            _ -> [True,False]
+    , \x -> case x of
+            [] -> []
+            _ -> [True,True]
+    , \_ -> [False,False,False]
+    , \_ -> [False,False,True]
+    , \_ -> [False,True,False]
+    , \_ -> [False,True,True]
+    , \_ -> [True,False,False]
+    , \_ -> [True,False,True]
+    , \_ -> [True,True,False]
+    , \_ -> [True,True,True]
+    ]
+  , [ \x -> case x of
+            [] -> [False,False,False]
+            _ -> []
+    , \x -> case x of
+            [] -> [False,False,True]
+            _ -> []
+    , \x -> case x of
+            [] -> [False,True,False]
+            _ -> []
+    , \x -> case x of
+            [] -> [False,True,True]
+            _ -> []
+    , \x -> case x of
+            [] -> [True,False,False]
+            _ -> []
+    , \x -> case x of
+            [] -> [True,False,True]
+            _ -> []
+    , \x -> case x of
+            [] -> [True,True,False]
+            _ -> []
+    , \x -> case x of
+            [] -> [True,True,True]
+            _ -> []
+    , \x -> case x of
+            [False] -> [False,False]
+            _ -> []
+    , \x -> case x of
+            [False] -> [False,True]
+            _ -> []
+    , \x -> case x of
+            [False] -> [True,False]
+            _ -> []
+    , \x -> case x of
+            [False] -> [True,True]
+            _ -> []
+    , \x -> case x of
+            [True] -> [False,False]
+            _ -> []
+    , \x -> case x of
+            [True] -> [False,True]
+            _ -> []
+    , \x -> case x of
+            [True] -> [True,False]
+            _ -> []
+    , \x -> case x of
+            [True] -> [True,True]
+            _ -> []
+    , \x -> case x of
+            [False,False] -> [False]
+            _ -> []
+    , \x -> case x of
+            [False,False] -> [True]
+            _ -> []
+    , \x -> case x of
+            [False,True] -> [False]
+            _ -> []
+    , \x -> case x of
+            [False,True] -> [True]
+            _ -> []
+    , \x -> case x of
+            [True,False] -> [False]
+            _ -> []
+    , \x -> case x of
+            [True,False] -> [True]
+            _ -> []
+    , \x -> case x of
+            [True,True] -> [False]
+            _ -> []
+    , \x -> case x of
+            [True,True] -> [True]
+            _ -> []
+    , \x -> case x of
+            [] -> [False,False]
+            _ -> [False]
+    , \x -> case x of
+            [] -> [False,True]
+            _ -> [False]
+    , \x -> case x of
+            [] -> [True,False]
+            _ -> [False]
+    , \x -> case x of
+            [] -> [True,True]
+            _ -> [False]
+    , \x -> case x of
+            [False] -> [True]
+            _ -> [False]
+    , \x -> case x of
+            [True] -> [True]
+            _ -> [False]
+    , \x -> case x of
+            [] -> []
+            [False] -> []
+            _ -> [False]
+    , \x -> case x of
+            [] -> []
+            [True] -> []
+            _ -> [False]
+    , \x -> case x of
+            [False,False] -> []
+            _ -> [False]
+    , \x -> case x of
+            [False,True] -> []
+            _ -> [False]
+    , \x -> case x of
+            [True,False] -> []
+            _ -> [False]
+    , \x -> case x of
+            [True,True] -> []
+            _ -> [False]
+    , \x -> case x of
+            [] -> [False,False]
+            _ -> [True]
+    , \x -> case x of
+            [] -> [False,True]
+            _ -> [True]
+    , \x -> case x of
+            [] -> [True,False]
+            _ -> [True]
+    , \x -> case x of
+            [] -> [True,True]
+            _ -> [True]
+    , \x -> case x of
+            [False] -> [False]
+            _ -> [True]
+    , \x -> case x of
+            [True] -> [False]
+            _ -> [True]
+    , \x -> case x of
+            [] -> []
+            [False] -> []
+            _ -> [True]
+    , \x -> case x of
+            [] -> []
+            [True] -> []
+            _ -> [True]
+    , \x -> case x of
+            [False,False] -> []
+            _ -> [True]
+    , \x -> case x of
+            [False,True] -> []
+            _ -> [True]
+    , \x -> case x of
+            [True,False] -> []
+            _ -> [True]
+    , \x -> case x of
+            [True,True] -> []
+            _ -> [True]
+    , \x -> case x of
+            [] -> [False]
+            _ -> [False,False]
+    , \x -> case x of
+            [] -> [True]
+            _ -> [False,False]
+    , \x -> case x of
+            [False] -> []
+            _ -> [False,False]
+    , \x -> case x of
+            [True] -> []
+            _ -> [False,False]
+    , \x -> case x of
+            [] -> [False]
+            _ -> [False,True]
+    , \x -> case x of
+            [] -> [True]
+            _ -> [False,True]
+    , \x -> case x of
+            [False] -> []
+            _ -> [False,True]
+    , \x -> case x of
+            [True] -> []
+            _ -> [False,True]
+    , \x -> case x of
+            [] -> [False]
+            _ -> [True,False]
+    , \x -> case x of
+            [] -> [True]
+            _ -> [True,False]
+    , \x -> case x of
+            [False] -> []
+            _ -> [True,False]
+    , \x -> case x of
+            [True] -> []
+            _ -> [True,False]
+    , \x -> case x of
+            [] -> [False]
+            _ -> [True,True]
+    , \x -> case x of
+            [] -> [True]
+            _ -> [True,True]
+    , \x -> case x of
+            [False] -> []
+            _ -> [True,True]
+    , \x -> case x of
+            [True] -> []
+            _ -> [True,True]
+    , \x -> case x of
+            [] -> []
+            _ -> [False,False,False]
+    , \x -> case x of
+            [] -> []
+            _ -> [False,False,True]
+    , \x -> case x of
+            [] -> []
+            _ -> [False,True,False]
+    , \x -> case x of
+            [] -> []
+            _ -> [False,True,True]
+    , \x -> case x of
+            [] -> []
+            _ -> [True,False,False]
+    , \x -> case x of
+            [] -> []
+            _ -> [True,False,True]
+    , \x -> case x of
+            [] -> []
+            _ -> [True,True,False]
+    , \x -> case x of
+            [] -> []
+            _ -> [True,True,True]
+    , \_ -> [False,False,False,False]
+    , \_ -> [False,False,False,True]
+    , \_ -> [False,False,True,False]
+    , \_ -> [False,False,True,True]
+    , \_ -> [False,True,False,False]
+    , \_ -> [False,True,False,True]
+    , \_ -> [False,True,True,False]
+    , \_ -> [False,True,True,True]
+    , \_ -> [True,False,False,False]
+    , \_ -> [True,False,False,True]
+    , \_ -> [True,False,True,False]
+    , \_ -> [True,False,True,True]
+    , \_ -> [True,True,False,False]
+    , \_ -> [True,True,False,True]
+    , \_ -> [True,True,True,False]
+    , \_ -> [True,True,True,True]
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/default-Int-Bool-Bool.txt b/bench/tiers-txt/default-Int-Bool-Bool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-Int-Bool-Bool.txt
@@ -0,0 +1,1137 @@
+map length (tiers :: [[ Int->Bool->Bool ]])  =  [4,12,12,48,48,84,...]
+
+length (list :: [ Int->Bool->Bool ])  =  Infinity
+
+allUnique (list :: [ Int->Bool->Bool ])  =  True
+
+ratioRepetitions (list :: [ Int->Bool->Bool ])  =  0 % 1
+
+tiers :: [Int->Bool->Bool]  =
+  [ [ \_ _ -> False
+    , \_ y -> case y of
+              False -> False
+              _ -> True
+    , \_ y -> case y of
+              False -> True
+              _ -> False
+    , \_ _ -> True
+    ]
+  , [ \x y -> case (x,y) of
+              (0,True) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              _ -> False
+    , \x _ -> case x of
+              0 -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (_,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (_,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (_,False) -> True
+              _ -> False
+    , \x _ -> case x of
+              0 -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,True) -> False
+              _ -> True
+    ]
+  , [ \x y -> case (x,y) of
+              (1,True) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (1,False) -> True
+              _ -> False
+    , \x _ -> case x of
+              1 -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,False) -> False
+              (0,_) -> True
+              (1,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (1,False) -> True
+              (1,_) -> False
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (_,True) -> True
+              (1,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (_,True) -> False
+              (1,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (1,False) -> False
+              (1,_) -> True
+              (_,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,False) -> True
+              (0,_) -> False
+              (1,_) -> True
+              _ -> False
+    , \x _ -> case x of
+              1 -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (1,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (1,True) -> False
+              _ -> True
+    ]
+  , [ \x y -> case (x,y) of
+              (0,True) -> True
+              (1,True) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,True) -> True
+              (1,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,True) -> True
+              (1,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (1,True) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (1,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (1,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (1,True) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (1,False) -> True
+              _ -> False
+    , \x _ -> case x of
+              0 -> True
+              1 -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (-1,True) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (-1,False) -> True
+              _ -> False
+    , \x _ -> case x of
+              -1 -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (_,False) -> False
+              (1,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (1,False) -> True
+              (1,_) -> False
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (1,_) -> True
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (1,_) -> False
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (1,False) -> True
+              (1,_) -> False
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (1,_) -> True
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (1,_) -> False
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (1,False) -> True
+              (1,_) -> False
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (1,_) -> True
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (_,False) -> False
+              (0,_) -> True
+              (1,_) -> True
+              (-1,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (1,False) -> False
+              (1,_) -> True
+              (-1,False) -> True
+              (-1,_) -> False
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (_,True) -> True
+              (1,_) -> False
+              (-1,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (1,_) -> False
+              (_,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (1,False) -> False
+              (1,_) -> True
+              (_,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (1,_) -> True
+              (_,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (1,_) -> False
+              (_,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (1,False) -> False
+              (1,_) -> True
+              (_,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (1,_) -> True
+              (_,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (1,_) -> False
+              (_,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (1,False) -> False
+              (1,_) -> True
+              (_,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (_,False) -> True
+              (1,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (_,True) -> False
+              (1,_) -> True
+              (-1,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (1,False) -> True
+              (1,_) -> False
+              (-1,False) -> False
+              (-1,_) -> True
+              (_,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,False) -> True
+              (0,_) -> False
+              (1,_) -> False
+              (-1,_) -> True
+              _ -> False
+    , \x _ -> case x of
+              0 -> False
+              1 -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (1,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (1,True) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (1,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (1,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (1,True) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,True) -> False
+              (1,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,True) -> False
+              (1,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,True) -> False
+              (1,True) -> False
+              _ -> True
+    , \x _ -> case x of
+              -1 -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (-1,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (-1,True) -> False
+              _ -> True
+    ]
+  , [ \x y -> case (x,y) of
+              (0,True) -> True
+              (-1,True) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,True) -> True
+              (-1,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,True) -> True
+              (-1,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (-1,True) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (-1,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (-1,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (-1,True) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (-1,False) -> True
+              _ -> False
+    , \x _ -> case x of
+              0 -> True
+              -1 -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (2,True) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (2,False) -> True
+              _ -> False
+    , \x _ -> case x of
+              2 -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (_,False) -> False
+              (1,_) -> True
+              (-1,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (1,False) -> False
+              (1,_) -> True
+              (-1,False) -> True
+              (-1,_) -> False
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (1,False) -> False
+              (1,_) -> True
+              (_,True) -> True
+              (-1,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (_,False) -> False
+              (1,_) -> True
+              (-1,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (1,False) -> False
+              (1,_) -> True
+              (-1,False) -> True
+              (-1,_) -> False
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (1,False) -> False
+              (1,_) -> True
+              (_,True) -> True
+              (-1,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (_,False) -> False
+              (1,_) -> True
+              (-1,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (1,False) -> False
+              (1,_) -> True
+              (-1,False) -> True
+              (-1,_) -> False
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (1,False) -> False
+              (1,_) -> True
+              (_,True) -> True
+              (-1,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,False) -> False
+              (0,_) -> True
+              (1,_) -> True
+              (-1,_) -> True
+              (2,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,True) -> True
+              (1,False) -> False
+              (1,True) -> True
+              (-1,False) -> False
+              (-1,True) -> True
+              (2,False) -> True
+              (2,True) -> False
+              ...
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (_,True) -> True
+              (1,_) -> False
+              (-1,_) -> False
+              (2,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (1,False) -> True
+              (1,_) -> False
+              (_,True) -> False
+              (-1,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (1,False) -> True
+              (1,_) -> False
+              (-1,False) -> False
+              (-1,_) -> True
+              (_,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (_,False) -> True
+              (1,_) -> False
+              (-1,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (1,False) -> True
+              (1,_) -> False
+              (_,True) -> False
+              (-1,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (1,False) -> True
+              (1,_) -> False
+              (-1,False) -> False
+              (-1,_) -> True
+              (_,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (_,False) -> True
+              (1,_) -> False
+              (-1,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (1,False) -> True
+              (1,_) -> False
+              (_,True) -> False
+              (-1,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (1,False) -> True
+              (1,_) -> False
+              (-1,False) -> False
+              (-1,_) -> True
+              (_,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (_,False) -> True
+              (1,_) -> False
+              (-1,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (_,True) -> False
+              (1,_) -> True
+              (-1,_) -> True
+              (2,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,True) -> False
+              (1,False) -> True
+              (1,True) -> False
+              (-1,False) -> True
+              (-1,True) -> False
+              (2,False) -> False
+              (2,True) -> True
+              ...
+    , \x y -> case (x,y) of
+              (_,False) -> True
+              (0,_) -> False
+              (1,_) -> False
+              (-1,_) -> False
+              (2,_) -> True
+              _ -> False
+    , \x _ -> case x of
+              0 -> False
+              -1 -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (-1,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (-1,True) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (-1,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (-1,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (-1,True) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,True) -> False
+              (-1,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,True) -> False
+              (-1,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,True) -> False
+              (-1,True) -> False
+              _ -> True
+    , \x _ -> case x of
+              2 -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (2,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (2,True) -> False
+              _ -> True
+    ]
+  , [ \x y -> case (x,y) of
+              (0,True) -> True
+              (2,True) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,True) -> True
+              (2,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,True) -> True
+              (2,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (2,True) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (2,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (2,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (2,True) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (2,False) -> True
+              _ -> False
+    , \x _ -> case x of
+              0 -> True
+              2 -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (1,True) -> True
+              (-1,True) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (1,True) -> True
+              (-1,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (1,True) -> True
+              (-1,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (1,False) -> True
+              (-1,True) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (1,False) -> True
+              (-1,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (1,False) -> True
+              (-1,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (1,_) -> True
+              (-1,True) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (1,_) -> True
+              (-1,False) -> True
+              _ -> False
+    , \x _ -> case x of
+              1 -> True
+              -1 -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (-2,True) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (-2,False) -> True
+              _ -> False
+    , \x _ -> case x of
+              -2 -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (_,False) -> False
+              (1,_) -> True
+              (-1,_) -> True
+              (2,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,True) -> False
+              (1,False) -> False
+              (1,True) -> True
+              (-1,False) -> False
+              (-1,True) -> True
+              (2,False) -> True
+              (2,True) -> False
+              ...
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (1,False) -> False
+              (1,_) -> True
+              (_,True) -> True
+              (-1,_) -> False
+              (2,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (_,False) -> False
+              (1,_) -> True
+              (-1,_) -> True
+              (2,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,True) -> False
+              (1,False) -> False
+              (1,True) -> True
+              (-1,False) -> False
+              (-1,True) -> True
+              (2,False) -> True
+              (2,True) -> False
+              ...
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (1,False) -> False
+              (1,_) -> True
+              (_,True) -> True
+              (-1,_) -> False
+              (2,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (_,False) -> False
+              (1,_) -> True
+              (-1,_) -> True
+              (2,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,True) -> True
+              (1,False) -> False
+              (1,True) -> True
+              (-1,False) -> False
+              (-1,True) -> True
+              (2,False) -> True
+              (2,True) -> False
+              ...
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (1,False) -> False
+              (1,_) -> True
+              (_,True) -> True
+              (-1,_) -> False
+              (2,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,False) -> False
+              (0,_) -> True
+              (1,_) -> False
+              (-1,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (1,_) -> False
+              (-1,False) -> True
+              (-1,_) -> False
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (1,_) -> False
+              (-1,_) -> True
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (1,False) -> True
+              (1,_) -> False
+              (-1,_) -> False
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (1,False) -> True
+              (1,_) -> False
+              (-1,False) -> True
+              (-1,_) -> False
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (1,False) -> True
+              (1,_) -> False
+              (-1,_) -> True
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (1,_) -> True
+              (-1,_) -> False
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (1,_) -> True
+              (-1,False) -> True
+              (-1,_) -> False
+              (_,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (_,True) -> True
+              (1,_) -> True
+              (-1,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,False) -> False
+              (0,_) -> True
+              (1,_) -> True
+              (-1,_) -> True
+              (2,_) -> True
+              (-2,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,True) -> True
+              (1,False) -> False
+              (1,True) -> True
+              (-1,False) -> False
+              (-1,True) -> True
+              (2,False) -> False
+              (2,True) -> True
+              ...
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (_,True) -> True
+              (1,_) -> False
+              (-1,_) -> False
+              (2,_) -> False
+              (-2,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (1,False) -> True
+              (1,_) -> False
+              (_,True) -> False
+              (-1,_) -> True
+              (2,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,True) -> False
+              (1,False) -> True
+              (1,True) -> False
+              (-1,False) -> True
+              (-1,True) -> False
+              (2,False) -> False
+              (2,True) -> True
+              ...
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (_,False) -> True
+              (1,_) -> False
+              (-1,_) -> False
+              (2,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (1,False) -> True
+              (1,_) -> False
+              (_,True) -> False
+              (-1,_) -> True
+              (2,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,True) -> True
+              (1,False) -> True
+              (1,True) -> False
+              (-1,False) -> True
+              (-1,True) -> False
+              (2,False) -> False
+              (2,True) -> True
+              ...
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (0,_) -> True
+              (_,False) -> True
+              (1,_) -> False
+              (-1,_) -> False
+              (2,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (1,False) -> True
+              (1,_) -> False
+              (_,True) -> False
+              (-1,_) -> True
+              (2,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,True) -> True
+              (1,False) -> True
+              (1,True) -> False
+              (-1,False) -> True
+              (-1,True) -> False
+              (2,False) -> False
+              (2,True) -> True
+              ...
+    , \x y -> case (x,y) of
+              (0,_) -> True
+              (_,False) -> True
+              (1,_) -> False
+              (-1,_) -> False
+              (2,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (_,True) -> False
+              (1,_) -> False
+              (-1,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (1,_) -> False
+              (-1,False) -> False
+              (-1,_) -> True
+              (_,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (1,_) -> False
+              (-1,_) -> True
+              (_,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (1,False) -> False
+              (1,_) -> True
+              (-1,_) -> False
+              (_,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (1,False) -> False
+              (1,_) -> True
+              (-1,False) -> False
+              (-1,_) -> True
+              (_,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (1,False) -> False
+              (1,_) -> True
+              (-1,_) -> True
+              (_,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (1,_) -> True
+              (-1,_) -> False
+              (_,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (1,_) -> True
+              (-1,False) -> False
+              (-1,_) -> True
+              (_,False) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (_,False) -> True
+              (0,_) -> False
+              (1,_) -> True
+              (-1,_) -> True
+              _ -> False
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,_) -> False
+              (_,True) -> False
+              (1,_) -> True
+              (-1,_) -> True
+              (2,_) -> True
+              (-2,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> True
+              (0,True) -> False
+              (1,False) -> True
+              (1,True) -> False
+              (-1,False) -> True
+              (-1,True) -> False
+              (2,False) -> True
+              (2,True) -> False
+              ...
+    , \x y -> case (x,y) of
+              (_,False) -> True
+              (0,_) -> False
+              (1,_) -> False
+              (-1,_) -> False
+              (2,_) -> False
+              (-2,_) -> True
+              _ -> False
+    , \x _ -> case x of
+              0 -> False
+              2 -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (2,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,_) -> False
+              (2,True) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (2,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (2,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,False) -> False
+              (2,True) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,True) -> False
+              (2,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,True) -> False
+              (2,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (0,True) -> False
+              (2,True) -> False
+              _ -> True
+    , \x _ -> case x of
+              1 -> False
+              -1 -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (1,_) -> False
+              (-1,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (1,_) -> False
+              (-1,True) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (1,False) -> False
+              (-1,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (1,False) -> False
+              (-1,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (1,False) -> False
+              (-1,True) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (1,True) -> False
+              (-1,_) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (1,True) -> False
+              (-1,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (1,True) -> False
+              (-1,True) -> False
+              _ -> True
+    , \x _ -> case x of
+              -2 -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (-2,False) -> False
+              _ -> True
+    , \x y -> case (x,y) of
+              (-2,True) -> False
+              _ -> True
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/default-Int-Int-Int-Int.txt b/bench/tiers-txt/default-Int-Int-Int-Int.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-Int-Int-Int-Int.txt
@@ -0,0 +1,116 @@
+map length (tiers :: [[ Int->Int->Int->Int ]])  =  [1,1,7,25,...]
+
+length (list :: [ Int->Int->Int->Int ])  =  Infinity
+
+allUnique (list :: [ Int->Int->Int->Int ])  =  True
+
+ratioRepetitions (list :: [ Int->Int->Int->Int ])  =  0 % 1
+
+tiers :: [Int->Int->Int->Int]  =
+  [ [\_ _ _ -> 0]
+  , [\_ _ _ -> 1]
+  , [ \x _ _ -> case x of
+                0 -> 1
+                _ -> 0
+    , \x _ _ -> case x of
+                0 -> 0
+                _ -> 1
+    , \_ y _ -> case y of
+                0 -> 1
+                _ -> 0
+    , \_ y _ -> case y of
+                0 -> 0
+                _ -> 1
+    , \_ _ z -> case z of
+                0 -> 1
+                _ -> 0
+    , \_ _ z -> case z of
+                0 -> 0
+                _ -> 1
+    , \_ _ _ -> -1
+    ]
+  , [ \x y _ -> case (x,y) of
+                (0,0) -> 1
+                _ -> 0
+    , \x y _ -> case (x,y) of
+                (_,0) -> 0
+                (0,_) -> 1
+                _ -> 0
+    , \x _ z -> case (x,z) of
+                (0,0) -> 1
+                _ -> 0
+    , \x _ z -> case (x,z) of
+                (_,0) -> 0
+                (0,_) -> 1
+                _ -> 0
+    , \x _ _ -> case x of
+                0 -> -1
+                _ -> 0
+    , \x _ _ -> case x of
+                1 -> 1
+                _ -> 0
+    , \x _ _ -> case x of
+                1 -> 0
+                _ -> 1
+    , \x y _ -> case (x,y) of
+                (0,_) -> 0
+                (_,0) -> 1
+                _ -> 0
+    , \x y _ -> case (x,y) of
+                (0,_) -> 0
+                (_,0) -> 0
+                _ -> 1
+    , \x _ z -> case (x,z) of
+                (0,_) -> 0
+                (_,0) -> 1
+                _ -> 0
+    , \x _ z -> case (x,z) of
+                (0,_) -> 0
+                (_,0) -> 0
+                _ -> 1
+    , \x _ _ -> case x of
+                0 -> 0
+                _ -> -1
+    , \_ y z -> case (y,z) of
+                (0,0) -> 1
+                _ -> 0
+    , \_ y z -> case (y,z) of
+                (_,0) -> 0
+                (0,_) -> 1
+                _ -> 0
+    , \_ y _ -> case y of
+                0 -> -1
+                _ -> 0
+    , \_ y _ -> case y of
+                1 -> 1
+                _ -> 0
+    , \_ y _ -> case y of
+                1 -> 0
+                _ -> 1
+    , \_ y z -> case (y,z) of
+                (0,_) -> 0
+                (_,0) -> 1
+                _ -> 0
+    , \_ y z -> case (y,z) of
+                (0,_) -> 0
+                (_,0) -> 0
+                _ -> 1
+    , \_ y _ -> case y of
+                0 -> 0
+                _ -> -1
+    , \_ _ z -> case z of
+                0 -> -1
+                _ -> 0
+    , \_ _ z -> case z of
+                1 -> 1
+                _ -> 0
+    , \_ _ z -> case z of
+                1 -> 0
+                _ -> 1
+    , \_ _ z -> case z of
+                0 -> 0
+                _ -> -1
+    , \_ _ _ -> 2
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/default-Int-Int-Int.txt b/bench/tiers-txt/default-Int-Int-Int.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-Int-Int-Int.txt
@@ -0,0 +1,528 @@
+map length (tiers :: [[ Int->Int->Int ]])  =  [1,1,5,13,35,81,...]
+
+length (list :: [ Int->Int->Int ])  =  Infinity
+
+allUnique (list :: [ Int->Int->Int ])  =  True
+
+ratioRepetitions (list :: [ Int->Int->Int ])  =  0 % 1
+
+tiers :: [Int->Int->Int]  =
+  [ [\_ _ -> 0]
+  , [\_ _ -> 1]
+  , [ \x _ -> case x of
+              0 -> 1
+              _ -> 0
+    , \x _ -> case x of
+              0 -> 0
+              _ -> 1
+    , \_ y -> case y of
+              0 -> 1
+              _ -> 0
+    , \_ y -> case y of
+              0 -> 0
+              _ -> 1
+    , \_ _ -> -1
+    ]
+  , [ \x y -> case (x,y) of
+              (0,0) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (_,0) -> 0
+              (0,_) -> 1
+              _ -> 0
+    , \x _ -> case x of
+              0 -> -1
+              _ -> 0
+    , \x _ -> case x of
+              1 -> 1
+              _ -> 0
+    , \x _ -> case x of
+              1 -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 0
+              _ -> 1
+    , \x _ -> case x of
+              0 -> 0
+              _ -> -1
+    , \_ y -> case y of
+              0 -> -1
+              _ -> 0
+    , \_ y -> case y of
+              1 -> 1
+              _ -> 0
+    , \_ y -> case y of
+              1 -> 0
+              _ -> 1
+    , \_ y -> case y of
+              0 -> 0
+              _ -> -1
+    , \_ _ -> 2
+    ]
+  , [ \x y -> case (x,y) of
+              (0,0) -> -1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,1) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,0) -> 1
+              (_,1) -> 0
+              (1,_) -> 0
+              (_,0) -> 0
+              (0,_) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (_,0) -> 0
+              (0,_) -> -1
+              _ -> 0
+    , \x _ -> case x of
+              0 -> 2
+              _ -> 0
+    , \x y -> case (x,y) of
+              (1,0) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 0
+              (1,_) -> 1
+              _ -> 0
+    , \x _ -> case x of
+              1 -> -1
+              _ -> 0
+    , \x _ -> case x of
+              -1 -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (_,0) -> 1
+              (0,_) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,0) -> 0
+              _ -> 1
+    , \x _ -> case x of
+              0 -> -1
+              _ -> 1
+    , \x _ -> case x of
+              0 -> 0
+              1 -> 0
+              _ -> 1
+    , \x _ -> case x of
+              -1 -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,_) -> 1
+              (_,0) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,0) -> 1
+              (0,_) -> 0
+              (_,1) -> 0
+              (1,_) -> 0
+              (_,0) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 1
+              (_,0) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (_,0) -> 0
+              (1,_) -> 0
+              _ -> 1
+    , \x _ -> case x of
+              0 -> 1
+              _ -> -1
+    , \x _ -> case x of
+              1 -> 0
+              _ -> -1
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> -1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 0
+              (_,1) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,1) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 0
+              _ -> -1
+    , \x _ -> case x of
+              0 -> 0
+              _ -> 2
+    , \_ y -> case y of
+              0 -> 2
+              _ -> 0
+    , \_ y -> case y of
+              1 -> -1
+              _ -> 0
+    , \_ y -> case y of
+              -1 -> 1
+              _ -> 0
+    , \_ y -> case y of
+              0 -> -1
+              _ -> 1
+    , \_ y -> case y of
+              0 -> 0
+              1 -> 0
+              _ -> 1
+    , \_ y -> case y of
+              -1 -> 0
+              _ -> 1
+    , \_ y -> case y of
+              0 -> 1
+              _ -> -1
+    , \_ y -> case y of
+              1 -> 0
+              _ -> -1
+    , \_ y -> case y of
+              0 -> 0
+              _ -> 2
+    , \_ _ -> -2
+    ]
+  , [ \x y -> case (x,y) of
+              (0,0) -> 2
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,1) -> -1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,-1) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,0) -> -1
+              (0,_) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (_,0) -> 0
+              (_,1) -> 0
+              (0,_) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,0) -> 1
+              (0,1) -> 1
+              (1,_) -> 0
+              (_,0) -> 0
+              (_,-1) -> 0
+              (0,_) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,0) -> 1
+              (0,_) -> -1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,0) -> -1
+              (_,1) -> 0
+              (1,_) -> 0
+              (_,0) -> 0
+              (0,_) -> -1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (_,0) -> 0
+              (0,_) -> 2
+              _ -> 0
+    , \x _ -> case x of
+              0 -> -2
+              _ -> 0
+    , \x y -> case (x,y) of
+              (1,0) -> -1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (1,1) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (1,0) -> 1
+              (_,1) -> 0
+              (-1,_) -> 0
+              (_,0) -> 0
+              (1,_) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 0
+              (1,_) -> -1
+              _ -> 0
+    , \x _ -> case x of
+              1 -> 2
+              _ -> 0
+    , \x _ -> case x of
+              0 -> 1
+              1 -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (-1,0) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 0
+              (1,_) -> 0
+              (-1,_) -> 1
+              _ -> 0
+    , \x _ -> case x of
+              -1 -> -1
+              _ -> 0
+    , \x _ -> case x of
+              2 -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,0) -> -1
+              (0,_) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,0) -> 0
+              (_,1) -> 1
+              (1,_) -> 1
+              (_,0) -> 1
+              (0,_) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,1) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,0) -> 0
+              (0,_) -> -1
+              _ -> 1
+    , \x _ -> case x of
+              0 -> 2
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,_) -> 1
+              (_,0) -> 1
+              (1,_) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (1,0) -> 0
+              _ -> 1
+    , \x _ -> case x of
+              1 -> -1
+              _ -> 1
+    , \x _ -> case x of
+              0 -> 0
+              -1 -> 0
+              _ -> 1
+    , \x _ -> case x of
+              2 -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,0) -> 0
+              (0,_) -> 1
+              (_,0) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> -1
+              (_,0) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (_,0) -> 1
+              (1,_) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (1,_) -> 0
+              (_,0) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,0) -> 1
+              (0,1) -> 0
+              (1,0) -> 1
+              (0,-1) -> 0
+              (1,1) -> 0
+              (-1,0) -> 0
+              (0,2) -> 0
+              (1,-1) -> 0
+              ...
+    , \x y -> case (x,y) of
+              (0,0) -> 1
+              (0,_) -> 0
+              (_,0) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,_) -> -1
+              (_,0) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,0) -> 0
+              (0,_) -> 1
+              (_,1) -> 1
+              (1,_) -> 1
+              (_,0) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 0
+              (1,_) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (_,0) -> 0
+              (-1,_) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,0) -> 1
+              (0,_) -> 0
+              _ -> -1
+    , \x y -> case (x,y) of
+              (0,0) -> 0
+              (0,_) -> 1
+              _ -> -1
+    , \x _ -> case x of
+              1 -> 1
+              _ -> -1
+    , \x _ -> case x of
+              0 -> 0
+              1 -> 0
+              _ -> -1
+    , \x _ -> case x of
+              -1 -> 0
+              _ -> -1
+    , \x y -> case (x,y) of
+              (0,_) -> 1
+              (_,0) -> -1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,0) -> -1
+              (0,_) -> 0
+              (_,1) -> 0
+              (1,_) -> 0
+              (_,0) -> -1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 1
+              (_,1) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (_,0) -> 0
+              (0,1) -> 1
+              (0,_) -> 0
+              (_,-1) -> 0
+              (1,_) -> 0
+              (_,1) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 1
+              (_,0) -> 1
+              (_,1) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (_,1) -> 0
+              (1,_) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,_) -> 1
+              (_,0) -> 0
+              _ -> -1
+    , \x y -> case (x,y) of
+              (_,0) -> 0
+              (1,_) -> 0
+              _ -> -1
+    , \x _ -> case x of
+              0 -> 1
+              _ -> 2
+    , \x _ -> case x of
+              1 -> 0
+              _ -> 2
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 2
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 0
+              (_,1) -> -1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 0
+              (_,1) -> 0
+              (_,-1) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> -1
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 0
+              (_,1) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,-1) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 1
+              _ -> -1
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,1) -> 0
+              _ -> -1
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 0
+              _ -> 2
+    , \x _ -> case x of
+              0 -> 0
+              _ -> -2
+    , \_ y -> case y of
+              0 -> -2
+              _ -> 0
+    , \_ y -> case y of
+              1 -> 2
+              _ -> 0
+    , \_ y -> case y of
+              0 -> 1
+              1 -> 1
+              _ -> 0
+    , \_ y -> case y of
+              -1 -> -1
+              _ -> 0
+    , \_ y -> case y of
+              2 -> 1
+              _ -> 0
+    , \_ y -> case y of
+              0 -> 2
+              _ -> 1
+    , \_ y -> case y of
+              1 -> -1
+              _ -> 1
+    , \_ y -> case y of
+              0 -> 0
+              -1 -> 0
+              _ -> 1
+    , \_ y -> case y of
+              2 -> 0
+              _ -> 1
+    , \_ y -> case y of
+              1 -> 1
+              _ -> -1
+    , \_ y -> case y of
+              0 -> 0
+              1 -> 0
+              _ -> -1
+    , \_ y -> case y of
+              -1 -> 0
+              _ -> -1
+    , \_ y -> case y of
+              0 -> 1
+              _ -> 2
+    , \_ y -> case y of
+              1 -> 0
+              _ -> 2
+    , \_ y -> case y of
+              0 -> 0
+              _ -> -2
+    , \_ _ -> 3
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/default-Int-Int.txt b/bench/tiers-txt/default-Int-Int.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-Int-Int.txt
@@ -0,0 +1,670 @@
+map length (tiers :: [[ Int->Int ]])  =  [1,1,3,5,10,16,30,48,80,...]
+
+length (list :: [ Int->Int ])  =  Infinity
+
+allUnique (list :: [ Int->Int ])  =  True
+
+ratioRepetitions (list :: [ Int->Int ])  =  0 % 1
+
+tiers :: [Int->Int]  =
+  [ [\_ -> 0]
+  , [\_ -> 1]
+  , [ \x -> case x of
+            0 -> 1
+            _ -> 0
+    , \x -> case x of
+            0 -> 0
+            _ -> 1
+    , \_ -> -1
+    ]
+  , [ \x -> case x of
+            0 -> -1
+            _ -> 0
+    , \x -> case x of
+            1 -> 1
+            _ -> 0
+    , \x -> case x of
+            1 -> 0
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            _ -> -1
+    , \_ -> 2
+    ]
+  , [ \x -> case x of
+            0 -> 2
+            _ -> 0
+    , \x -> case x of
+            1 -> -1
+            _ -> 0
+    , \x -> case x of
+            -1 -> 1
+            _ -> 0
+    , \x -> case x of
+            0 -> -1
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            1 -> 0
+            _ -> 1
+    , \x -> case x of
+            -1 -> 0
+            _ -> 1
+    , \x -> case x of
+            0 -> 1
+            _ -> -1
+    , \x -> case x of
+            1 -> 0
+            _ -> -1
+    , \x -> case x of
+            0 -> 0
+            _ -> 2
+    , \_ -> -2
+    ]
+  , [ \x -> case x of
+            0 -> -2
+            _ -> 0
+    , \x -> case x of
+            1 -> 2
+            _ -> 0
+    , \x -> case x of
+            0 -> 1
+            1 -> 1
+            _ -> 0
+    , \x -> case x of
+            -1 -> -1
+            _ -> 0
+    , \x -> case x of
+            2 -> 1
+            _ -> 0
+    , \x -> case x of
+            0 -> 2
+            _ -> 1
+    , \x -> case x of
+            1 -> -1
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            -1 -> 0
+            _ -> 1
+    , \x -> case x of
+            2 -> 0
+            _ -> 1
+    , \x -> case x of
+            1 -> 1
+            _ -> -1
+    , \x -> case x of
+            0 -> 0
+            1 -> 0
+            _ -> -1
+    , \x -> case x of
+            -1 -> 0
+            _ -> -1
+    , \x -> case x of
+            0 -> 1
+            _ -> 2
+    , \x -> case x of
+            1 -> 0
+            _ -> 2
+    , \x -> case x of
+            0 -> 0
+            _ -> -2
+    , \_ -> 3
+    ]
+  , [ \x -> case x of
+            0 -> 3
+            _ -> 0
+    , \x -> case x of
+            1 -> -2
+            _ -> 0
+    , \x -> case x of
+            0 -> 1
+            1 -> -1
+            _ -> 0
+    , \x -> case x of
+            0 -> -1
+            1 -> 1
+            _ -> 0
+    , \x -> case x of
+            -1 -> 2
+            _ -> 0
+    , \x -> case x of
+            0 -> 1
+            -1 -> 1
+            _ -> 0
+    , \x -> case x of
+            2 -> -1
+            _ -> 0
+    , \x -> case x of
+            -2 -> 1
+            _ -> 0
+    , \x -> case x of
+            0 -> -2
+            _ -> 1
+    , \x -> case x of
+            1 -> 2
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            1 -> -1
+            _ -> 1
+    , \x -> case x of
+            0 -> -1
+            1 -> 0
+            _ -> 1
+    , \x -> case x of
+            -1 -> -1
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            2 -> 0
+            _ -> 1
+    , \x -> case x of
+            1 -> 0
+            -1 -> 0
+            _ -> 1
+    , \x -> case x of
+            -2 -> 0
+            _ -> 1
+    , \x -> case x of
+            0 -> 2
+            _ -> -1
+    , \x -> case x of
+            0 -> 0
+            1 -> 1
+            _ -> -1
+    , \x -> case x of
+            0 -> 1
+            1 -> 0
+            _ -> -1
+    , \x -> case x of
+            -1 -> 1
+            _ -> -1
+    , \x -> case x of
+            0 -> 0
+            -1 -> 0
+            _ -> -1
+    , \x -> case x of
+            2 -> 0
+            _ -> -1
+    , \x -> case x of
+            0 -> -1
+            _ -> 2
+    , \x -> case x of
+            1 -> 1
+            _ -> 2
+    , \x -> case x of
+            0 -> 0
+            1 -> 0
+            _ -> 2
+    , \x -> case x of
+            -1 -> 0
+            _ -> 2
+    , \x -> case x of
+            0 -> 1
+            _ -> -2
+    , \x -> case x of
+            1 -> 0
+            _ -> -2
+    , \x -> case x of
+            0 -> 0
+            _ -> 3
+    , \_ -> -3
+    ]
+  , [ \x -> case x of
+            0 -> -3
+            _ -> 0
+    , \x -> case x of
+            1 -> 3
+            _ -> 0
+    , \x -> case x of
+            0 -> 1
+            1 -> 2
+            _ -> 0
+    , \x -> case x of
+            0 -> -1
+            1 -> -1
+            _ -> 0
+    , \x -> case x of
+            0 -> 2
+            1 -> 1
+            _ -> 0
+    , \x -> case x of
+            -1 -> -2
+            _ -> 0
+    , \x -> case x of
+            0 -> 1
+            -1 -> -1
+            _ -> 0
+    , \x -> case x of
+            0 -> -1
+            -1 -> 1
+            _ -> 0
+    , \x -> case x of
+            2 -> 2
+            _ -> 0
+    , \x -> case x of
+            0 -> 1
+            2 -> 1
+            _ -> 0
+    , \x -> case x of
+            1 -> 1
+            -1 -> 1
+            _ -> 0
+    , \x -> case x of
+            -2 -> -1
+            _ -> 0
+    , \x -> case x of
+            3 -> 1
+            _ -> 0
+    , \x -> case x of
+            0 -> 3
+            _ -> 1
+    , \x -> case x of
+            1 -> -2
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            1 -> 2
+            _ -> 1
+    , \x -> case x of
+            0 -> 2
+            1 -> 0
+            _ -> 1
+    , \x -> case x of
+            -1 -> 2
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            -1 -> -1
+            _ -> 1
+    , \x -> case x of
+            0 -> -1
+            -1 -> 0
+            _ -> 1
+    , \x -> case x of
+            2 -> -1
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            1 -> 0
+            -1 -> 0
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            -2 -> 0
+            _ -> 1
+    , \x -> case x of
+            1 -> 0
+            2 -> 0
+            _ -> 1
+    , \x -> case x of
+            3 -> 0
+            _ -> 1
+    , \x -> case x of
+            0 -> -2
+            _ -> -1
+    , \x -> case x of
+            1 -> 2
+            _ -> -1
+    , \x -> case x of
+            0 -> 1
+            1 -> 1
+            _ -> -1
+    , \x -> case x of
+            0 -> 0
+            -1 -> 1
+            _ -> -1
+    , \x -> case x of
+            0 -> 1
+            -1 -> 0
+            _ -> -1
+    , \x -> case x of
+            2 -> 1
+            _ -> -1
+    , \x -> case x of
+            0 -> 0
+            2 -> 0
+            _ -> -1
+    , \x -> case x of
+            1 -> 0
+            -1 -> 0
+            _ -> -1
+    , \x -> case x of
+            -2 -> 0
+            _ -> -1
+    , \x -> case x of
+            1 -> -1
+            _ -> 2
+    , \x -> case x of
+            0 -> 0
+            1 -> 1
+            _ -> 2
+    , \x -> case x of
+            0 -> 1
+            1 -> 0
+            _ -> 2
+    , \x -> case x of
+            -1 -> 1
+            _ -> 2
+    , \x -> case x of
+            0 -> 0
+            -1 -> 0
+            _ -> 2
+    , \x -> case x of
+            2 -> 0
+            _ -> 2
+    , \x -> case x of
+            0 -> -1
+            _ -> -2
+    , \x -> case x of
+            1 -> 1
+            _ -> -2
+    , \x -> case x of
+            0 -> 0
+            1 -> 0
+            _ -> -2
+    , \x -> case x of
+            -1 -> 0
+            _ -> -2
+    , \x -> case x of
+            0 -> 1
+            _ -> 3
+    , \x -> case x of
+            1 -> 0
+            _ -> 3
+    , \x -> case x of
+            0 -> 0
+            _ -> -3
+    , \_ -> 4
+    ]
+  , [ \x -> case x of
+            0 -> 4
+            _ -> 0
+    , \x -> case x of
+            1 -> -3
+            _ -> 0
+    , \x -> case x of
+            0 -> 1
+            1 -> -2
+            _ -> 0
+    , \x -> case x of
+            0 -> -1
+            1 -> 2
+            _ -> 0
+    , \x -> case x of
+            0 -> 2
+            1 -> -1
+            _ -> 0
+    , \x -> case x of
+            0 -> -2
+            1 -> 1
+            _ -> 0
+    , \x -> case x of
+            -1 -> 3
+            _ -> 0
+    , \x -> case x of
+            0 -> 1
+            -1 -> 2
+            _ -> 0
+    , \x -> case x of
+            0 -> -1
+            -1 -> -1
+            _ -> 0
+    , \x -> case x of
+            0 -> 2
+            -1 -> 1
+            _ -> 0
+    , \x -> case x of
+            2 -> -2
+            _ -> 0
+    , \x -> case x of
+            0 -> 1
+            2 -> -1
+            _ -> 0
+    , \x -> case x of
+            0 -> -1
+            2 -> 1
+            _ -> 0
+    , \x -> case x of
+            1 -> 1
+            -1 -> -1
+            _ -> 0
+    , \x -> case x of
+            1 -> -1
+            -1 -> 1
+            _ -> 0
+    , \x -> case x of
+            -2 -> 2
+            _ -> 0
+    , \x -> case x of
+            0 -> 1
+            -2 -> 1
+            _ -> 0
+    , \x -> case x of
+            1 -> 1
+            2 -> 1
+            _ -> 0
+    , \x -> case x of
+            3 -> -1
+            _ -> 0
+    , \x -> case x of
+            -3 -> 1
+            _ -> 0
+    , \x -> case x of
+            0 -> -3
+            _ -> 1
+    , \x -> case x of
+            1 -> 3
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            1 -> -2
+            _ -> 1
+    , \x -> case x of
+            0 -> -1
+            1 -> -1
+            _ -> 1
+    , \x -> case x of
+            0 -> -2
+            1 -> 0
+            _ -> 1
+    , \x -> case x of
+            -1 -> -2
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            -1 -> 2
+            _ -> 1
+    , \x -> case x of
+            0 -> 2
+            -1 -> 0
+            _ -> 1
+    , \x -> case x of
+            2 -> 2
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            2 -> -1
+            _ -> 1
+    , \x -> case x of
+            0 -> -1
+            2 -> 0
+            _ -> 1
+    , \x -> case x of
+            1 -> 0
+            -1 -> -1
+            _ -> 1
+    , \x -> case x of
+            1 -> -1
+            -1 -> 0
+            _ -> 1
+    , \x -> case x of
+            -2 -> -1
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            1 -> 0
+            2 -> 0
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            3 -> 0
+            _ -> 1
+    , \x -> case x of
+            1 -> 0
+            -2 -> 0
+            _ -> 1
+    , \x -> case x of
+            -1 -> 0
+            2 -> 0
+            _ -> 1
+    , \x -> case x of
+            -3 -> 0
+            _ -> 1
+    , \x -> case x of
+            0 -> 3
+            _ -> -1
+    , \x -> case x of
+            1 -> -2
+            _ -> -1
+    , \x -> case x of
+            0 -> 0
+            1 -> 2
+            _ -> -1
+    , \x -> case x of
+            0 -> 2
+            1 -> 0
+            _ -> -1
+    , \x -> case x of
+            -1 -> 2
+            _ -> -1
+    , \x -> case x of
+            0 -> 1
+            -1 -> 1
+            _ -> -1
+    , \x -> case x of
+            0 -> 0
+            2 -> 1
+            _ -> -1
+    , \x -> case x of
+            0 -> 1
+            2 -> 0
+            _ -> -1
+    , \x -> case x of
+            1 -> 0
+            -1 -> 1
+            _ -> -1
+    , \x -> case x of
+            1 -> 1
+            -1 -> 0
+            _ -> -1
+    , \x -> case x of
+            -2 -> 1
+            _ -> -1
+    , \x -> case x of
+            0 -> 0
+            1 -> 0
+            -1 -> 0
+            _ -> -1
+    , \x -> case x of
+            0 -> 0
+            -2 -> 0
+            _ -> -1
+    , \x -> case x of
+            1 -> 0
+            2 -> 0
+            _ -> -1
+    , \x -> case x of
+            3 -> 0
+            _ -> -1
+    , \x -> case x of
+            0 -> -2
+            _ -> 2
+    , \x -> case x of
+            0 -> 0
+            1 -> -1
+            _ -> 2
+    , \x -> case x of
+            0 -> 1
+            1 -> 1
+            _ -> 2
+    , \x -> case x of
+            0 -> -1
+            1 -> 0
+            _ -> 2
+    , \x -> case x of
+            -1 -> -1
+            _ -> 2
+    , \x -> case x of
+            0 -> 0
+            -1 -> 1
+            _ -> 2
+    , \x -> case x of
+            0 -> 1
+            -1 -> 0
+            _ -> 2
+    , \x -> case x of
+            2 -> 1
+            _ -> 2
+    , \x -> case x of
+            0 -> 0
+            2 -> 0
+            _ -> 2
+    , \x -> case x of
+            1 -> 0
+            -1 -> 0
+            _ -> 2
+    , \x -> case x of
+            -2 -> 0
+            _ -> 2
+    , \x -> case x of
+            0 -> 2
+            _ -> -2
+    , \x -> case x of
+            1 -> -1
+            _ -> -2
+    , \x -> case x of
+            0 -> 0
+            1 -> 1
+            _ -> -2
+    , \x -> case x of
+            0 -> 1
+            1 -> 0
+            _ -> -2
+    , \x -> case x of
+            -1 -> 1
+            _ -> -2
+    , \x -> case x of
+            0 -> 0
+            -1 -> 0
+            _ -> -2
+    , \x -> case x of
+            2 -> 0
+            _ -> -2
+    , \x -> case x of
+            0 -> -1
+            _ -> 3
+    , \x -> case x of
+            1 -> 1
+            _ -> 3
+    , \x -> case x of
+            0 -> 0
+            1 -> 0
+            _ -> 3
+    , \x -> case x of
+            -1 -> 0
+            _ -> 3
+    , \x -> case x of
+            0 -> 1
+            _ -> -3
+    , \x -> case x of
+            1 -> 0
+            _ -> -3
+    , \x -> case x of
+            0 -> 0
+            _ -> 4
+    , \_ -> -4
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/default-Ints-Ints.txt b/bench/tiers-txt/default-Ints-Ints.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-Ints-Ints.txt
@@ -0,0 +1,317 @@
+map length (tiers :: [[ [Int]->[Int] ]])  =  [1,1,4,10,29,75,...]
+
+length (list :: [ [Int]->[Int] ])  =  Infinity
+
+allUnique (list :: [ [Int]->[Int] ])  =  True
+
+ratioRepetitions (list :: [ [Int]->[Int] ])  =  0 % 1
+
+tiers :: [[Int]->[Int]]  =
+  [ [\_ -> []]
+  , [\_ -> [0]]
+  , [ \x -> case x of
+            [] -> [0]
+            _ -> []
+    , \x -> case x of
+            [] -> []
+            _ -> [0]
+    , \_ -> [0,0]
+    , \_ -> [1]
+    ]
+  , [ \x -> case x of
+            [] -> [0,0]
+            _ -> []
+    , \x -> case x of
+            [] -> [1]
+            _ -> []
+    , \x -> case x of
+            [0] -> [0]
+            _ -> []
+    , \x -> case x of
+            [0] -> []
+            _ -> [0]
+    , \x -> case x of
+            [] -> []
+            _ -> [0,0]
+    , \x -> case x of
+            [] -> []
+            _ -> [1]
+    , \_ -> [0,0,0]
+    , \_ -> [0,1]
+    , \_ -> [1,0]
+    , \_ -> [-1]
+    ]
+  , [ \x -> case x of
+            [] -> [0,0,0]
+            _ -> []
+    , \x -> case x of
+            [] -> [0,1]
+            _ -> []
+    , \x -> case x of
+            [] -> [1,0]
+            _ -> []
+    , \x -> case x of
+            [] -> [-1]
+            _ -> []
+    , \x -> case x of
+            [0] -> [0,0]
+            _ -> []
+    , \x -> case x of
+            [0] -> [1]
+            _ -> []
+    , \x -> case x of
+            [0,0] -> [0]
+            _ -> []
+    , \x -> case x of
+            [1] -> [0]
+            _ -> []
+    , \x -> case x of
+            [] -> [0,0]
+            _ -> [0]
+    , \x -> case x of
+            [] -> [1]
+            _ -> [0]
+    , \x -> case x of
+            [] -> []
+            [0] -> []
+            _ -> [0]
+    , \x -> case x of
+            [0,0] -> []
+            _ -> [0]
+    , \x -> case x of
+            [1] -> []
+            _ -> [0]
+    , \x -> case x of
+            [] -> [0]
+            _ -> [0,0]
+    , \x -> case x of
+            [0] -> []
+            _ -> [0,0]
+    , \x -> case x of
+            [] -> [0]
+            _ -> [1]
+    , \x -> case x of
+            [0] -> []
+            _ -> [1]
+    , \x -> case x of
+            [] -> []
+            _ -> [0,0,0]
+    , \x -> case x of
+            [] -> []
+            _ -> [0,1]
+    , \x -> case x of
+            [] -> []
+            _ -> [1,0]
+    , \x -> case x of
+            [] -> []
+            _ -> [-1]
+    , \_ -> [0,0,0,0]
+    , \_ -> [0,0,1]
+    , \_ -> [0,1,0]
+    , \_ -> [0,-1]
+    , \_ -> [1,0,0]
+    , \_ -> [1,1]
+    , \_ -> [-1,0]
+    , \_ -> [2]
+    ]
+  , [ \x -> case x of
+            [] -> [0,0,0,0]
+            _ -> []
+    , \x -> case x of
+            [] -> [0,0,1]
+            _ -> []
+    , \x -> case x of
+            [] -> [0,1,0]
+            _ -> []
+    , \x -> case x of
+            [] -> [0,-1]
+            _ -> []
+    , \x -> case x of
+            [] -> [1,0,0]
+            _ -> []
+    , \x -> case x of
+            [] -> [1,1]
+            _ -> []
+    , \x -> case x of
+            [] -> [-1,0]
+            _ -> []
+    , \x -> case x of
+            [] -> [2]
+            _ -> []
+    , \x -> case x of
+            [0] -> [0,0,0]
+            _ -> []
+    , \x -> case x of
+            [0] -> [0,1]
+            _ -> []
+    , \x -> case x of
+            [0] -> [1,0]
+            _ -> []
+    , \x -> case x of
+            [0] -> [-1]
+            _ -> []
+    , \x -> case x of
+            [] -> [0]
+            [0] -> [0]
+            _ -> []
+    , \x -> case x of
+            [0,0] -> [0,0]
+            _ -> []
+    , \x -> case x of
+            [0,0] -> [1]
+            _ -> []
+    , \x -> case x of
+            [1] -> [0,0]
+            _ -> []
+    , \x -> case x of
+            [1] -> [1]
+            _ -> []
+    , \x -> case x of
+            [0,0,0] -> [0]
+            _ -> []
+    , \x -> case x of
+            [0,1] -> [0]
+            _ -> []
+    , \x -> case x of
+            [1,0] -> [0]
+            _ -> []
+    , \x -> case x of
+            [-1] -> [0]
+            _ -> []
+    , \x -> case x of
+            [] -> [0,0,0]
+            _ -> [0]
+    , \x -> case x of
+            [] -> [0,1]
+            _ -> [0]
+    , \x -> case x of
+            [] -> [1,0]
+            _ -> [0]
+    , \x -> case x of
+            [] -> [-1]
+            _ -> [0]
+    , \x -> case x of
+            [0] -> [0,0]
+            _ -> [0]
+    , \x -> case x of
+            [0] -> [1]
+            _ -> [0]
+    , \x -> case x of
+            [] -> []
+            [0,0] -> []
+            _ -> [0]
+    , \x -> case x of
+            [] -> []
+            [1] -> []
+            _ -> [0]
+    , \x -> case x of
+            [0,0,0] -> []
+            _ -> [0]
+    , \x -> case x of
+            [0,1] -> []
+            _ -> [0]
+    , \x -> case x of
+            [1,0] -> []
+            _ -> [0]
+    , \x -> case x of
+            [-1] -> []
+            _ -> [0]
+    , \x -> case x of
+            [] -> [1]
+            _ -> [0,0]
+    , \x -> case x of
+            [0] -> [0]
+            _ -> [0,0]
+    , \x -> case x of
+            [] -> []
+            [0] -> []
+            _ -> [0,0]
+    , \x -> case x of
+            [0,0] -> []
+            _ -> [0,0]
+    , \x -> case x of
+            [1] -> []
+            _ -> [0,0]
+    , \x -> case x of
+            [] -> [0,0]
+            _ -> [1]
+    , \x -> case x of
+            [0] -> [0]
+            _ -> [1]
+    , \x -> case x of
+            [] -> []
+            [0] -> []
+            _ -> [1]
+    , \x -> case x of
+            [0,0] -> []
+            _ -> [1]
+    , \x -> case x of
+            [1] -> []
+            _ -> [1]
+    , \x -> case x of
+            [] -> [0]
+            _ -> [0,0,0]
+    , \x -> case x of
+            [0] -> []
+            _ -> [0,0,0]
+    , \x -> case x of
+            [] -> [0]
+            _ -> [0,1]
+    , \x -> case x of
+            [0] -> []
+            _ -> [0,1]
+    , \x -> case x of
+            [] -> [0]
+            _ -> [1,0]
+    , \x -> case x of
+            [0] -> []
+            _ -> [1,0]
+    , \x -> case x of
+            [] -> [0]
+            _ -> [-1]
+    , \x -> case x of
+            [0] -> []
+            _ -> [-1]
+    , \x -> case x of
+            [] -> []
+            _ -> [0,0,0,0]
+    , \x -> case x of
+            [] -> []
+            _ -> [0,0,1]
+    , \x -> case x of
+            [] -> []
+            _ -> [0,1,0]
+    , \x -> case x of
+            [] -> []
+            _ -> [0,-1]
+    , \x -> case x of
+            [] -> []
+            _ -> [1,0,0]
+    , \x -> case x of
+            [] -> []
+            _ -> [1,1]
+    , \x -> case x of
+            [] -> []
+            _ -> [-1,0]
+    , \x -> case x of
+            [] -> []
+            _ -> [2]
+    , \_ -> [0,0,0,0,0]
+    , \_ -> [0,0,0,1]
+    , \_ -> [0,0,1,0]
+    , \_ -> [0,0,-1]
+    , \_ -> [0,1,0,0]
+    , \_ -> [0,1,1]
+    , \_ -> [0,-1,0]
+    , \_ -> [0,2]
+    , \_ -> [1,0,0,0]
+    , \_ -> [1,0,1]
+    , \_ -> [1,1,0]
+    , \_ -> [1,-1]
+    , \_ -> [-1,0,0]
+    , \_ -> [-1,1]
+    , \_ -> [2,0]
+    , \_ -> [-2]
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/default-MBool-Bool.txt b/bench/tiers-txt/default-MBool-Bool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-MBool-Bool.txt
@@ -0,0 +1,31 @@
+map length (tiers :: [[ Maybe Bool->Bool ]])  =  [8]
+
+length (list :: [ Maybe Bool->Bool ])  =  8
+
+allUnique (list :: [ Maybe Bool->Bool ])  =  True
+
+ratioRepetitions (list :: [ Maybe Bool->Bool ])  =  0 % 1
+
+tiers :: [Maybe Bool->Bool]  =
+  [ [ \_ -> False
+    , \x -> case x of
+            Just True -> True
+            _ -> False
+    , \x -> case x of
+            Just False -> True
+            _ -> False
+    , \x -> case x of
+            Nothing -> False
+            _ -> True
+    , \x -> case x of
+            Nothing -> True
+            _ -> False
+    , \x -> case x of
+            Just False -> False
+            _ -> True
+    , \x -> case x of
+            Just True -> False
+            _ -> True
+    , \_ -> True
+    ]
+  ]
diff --git a/bench/tiers-txt/default-MBool-MBool.txt b/bench/tiers-txt/default-MBool-MBool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-MBool-MBool.txt
@@ -0,0 +1,94 @@
+map length (tiers :: [[ Maybe Bool->Maybe Bool ]])  =  [1,6,12,8]
+
+length (list :: [ Maybe Bool->Maybe Bool ])  =  Infinity
+
+allUnique (list :: [ Maybe Bool->Maybe Bool ])  =  True
+
+ratioRepetitions (list :: [ Maybe Bool->Maybe Bool ])  =  0 % 1
+
+tiers :: [Maybe Bool->Maybe Bool]  =
+  [ [\_ -> Nothing]
+  , [ \x -> case x of
+            Just True -> Just False
+            _ -> Nothing
+    , \x -> case x of
+            Just True -> Just True
+            _ -> Nothing
+    , \x -> case x of
+            Just False -> Just False
+            _ -> Nothing
+    , \x -> case x of
+            Just False -> Just True
+            _ -> Nothing
+    , \x -> case x of
+            Nothing -> Just False
+            _ -> Nothing
+    , \x -> case x of
+            Nothing -> Just True
+            _ -> Nothing
+    ]
+  , [ \x -> case x of
+            Nothing -> Nothing
+            _ -> Just False
+    , \x -> case x of
+            Nothing -> Nothing
+            Just False -> Just False
+            Just True -> Just True
+    , \x -> case x of
+            Nothing -> Nothing
+            Just False -> Just True
+            Just True -> Just False
+    , \x -> case x of
+            Nothing -> Nothing
+            _ -> Just True
+    , \x -> case x of
+            Just False -> Nothing
+            _ -> Just False
+    , \x -> case x of
+            Nothing -> Just False
+            Just False -> Nothing
+            Just True -> Just True
+    , \x -> case x of
+            Just True -> Nothing
+            _ -> Just False
+    , \x -> case x of
+            Nothing -> Just False
+            Just False -> Just True
+            Just True -> Nothing
+    , \x -> case x of
+            Nothing -> Just True
+            Just False -> Nothing
+            Just True -> Just False
+    , \x -> case x of
+            Just False -> Nothing
+            _ -> Just True
+    , \x -> case x of
+            Nothing -> Just True
+            Just False -> Just False
+            Just True -> Nothing
+    , \x -> case x of
+            Just True -> Nothing
+            _ -> Just True
+    ]
+  , [ \_ -> Just False
+    , \x -> case x of
+            Just True -> Just True
+            _ -> Just False
+    , \x -> case x of
+            Just False -> Just True
+            _ -> Just False
+    , \x -> case x of
+            Nothing -> Just False
+            _ -> Just True
+    , \x -> case x of
+            Nothing -> Just True
+            _ -> Just False
+    , \x -> case x of
+            Just False -> Just False
+            _ -> Just True
+    , \x -> case x of
+            Just True -> Just False
+            _ -> Just True
+    , \_ -> Just True
+    ]
+  ]
diff --git a/bench/tiers-txt/default-Nat,Nat-Nat.txt b/bench/tiers-txt/default-Nat,Nat-Nat.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-Nat,Nat-Nat.txt
@@ -0,0 +1,205 @@
+map length (tiers :: [[ (Nat,Nat)->Nat ]])  =  [1,1,3,7,17,35,...]
+
+length (list :: [ (Nat,Nat)->Nat ])  =  Infinity
+
+allUnique (list :: [ (Nat,Nat)->Nat ])  =  True
+
+ratioRepetitions (list :: [ (Nat,Nat)->Nat ])  =  0 % 1
+
+tiers :: [(Nat,Nat)->Nat]  =
+  [ [\_ -> 0]
+  , [\_ -> 1]
+  , [ \x -> case x of
+            (0,0) -> 1
+            _ -> 0
+    , \x -> case x of
+            (0,0) -> 0
+            _ -> 1
+    , \_ -> 2
+    ]
+  , [ \x -> case x of
+            (0,0) -> 2
+            _ -> 0
+    , \x -> case x of
+            (0,1) -> 1
+            _ -> 0
+    , \x -> case x of
+            (1,0) -> 1
+            _ -> 0
+    , \x -> case x of
+            (0,1) -> 0
+            _ -> 1
+    , \x -> case x of
+            (1,0) -> 0
+            _ -> 1
+    , \x -> case x of
+            (0,0) -> 0
+            _ -> 2
+    , \_ -> 3
+    ]
+  , [ \x -> case x of
+            (0,0) -> 3
+            _ -> 0
+    , \x -> case x of
+            (0,1) -> 2
+            _ -> 0
+    , \x -> case x of
+            (1,0) -> 2
+            _ -> 0
+    , \x -> case x of
+            (0,2) -> 1
+            _ -> 0
+    , \x -> case x of
+            (1,1) -> 1
+            _ -> 0
+    , \x -> case x of
+            (2,0) -> 1
+            _ -> 0
+    , \x -> case x of
+            (0,0) -> 2
+            _ -> 1
+    , \x -> case x of
+            (0,0) -> 0
+            (0,1) -> 0
+            _ -> 1
+    , \x -> case x of
+            (0,0) -> 0
+            (1,0) -> 0
+            _ -> 1
+    , \x -> case x of
+            (0,2) -> 0
+            _ -> 1
+    , \x -> case x of
+            (1,1) -> 0
+            _ -> 1
+    , \x -> case x of
+            (2,0) -> 0
+            _ -> 1
+    , \x -> case x of
+            (0,0) -> 1
+            _ -> 2
+    , \x -> case x of
+            (0,1) -> 0
+            _ -> 2
+    , \x -> case x of
+            (1,0) -> 0
+            _ -> 2
+    , \x -> case x of
+            (0,0) -> 0
+            _ -> 3
+    , \_ -> 4
+    ]
+  , [ \x -> case x of
+            (0,0) -> 4
+            _ -> 0
+    , \x -> case x of
+            (0,1) -> 3
+            _ -> 0
+    , \x -> case x of
+            (1,0) -> 3
+            _ -> 0
+    , \x -> case x of
+            (0,0) -> 1
+            (0,1) -> 1
+            _ -> 0
+    , \x -> case x of
+            (0,0) -> 1
+            (1,0) -> 1
+            _ -> 0
+    , \x -> case x of
+            (0,2) -> 2
+            _ -> 0
+    , \x -> case x of
+            (1,1) -> 2
+            _ -> 0
+    , \x -> case x of
+            (2,0) -> 2
+            _ -> 0
+    , \x -> case x of
+            (0,3) -> 1
+            _ -> 0
+    , \x -> case x of
+            (1,2) -> 1
+            _ -> 0
+    , \x -> case x of
+            (2,1) -> 1
+            _ -> 0
+    , \x -> case x of
+            (3,0) -> 1
+            _ -> 0
+    , \x -> case x of
+            (0,0) -> 3
+            _ -> 1
+    , \x -> case x of
+            (0,1) -> 2
+            _ -> 1
+    , \x -> case x of
+            (1,0) -> 2
+            _ -> 1
+    , \x -> case x of
+            (0,0) -> 0
+            (0,2) -> 0
+            _ -> 1
+    , \x -> case x of
+            (0,0) -> 0
+            (1,1) -> 0
+            _ -> 1
+    , \x -> case x of
+            (0,0) -> 0
+            (2,0) -> 0
+            _ -> 1
+    , \x -> case x of
+            (0,1) -> 0
+            (1,0) -> 0
+            _ -> 1
+    , \x -> case x of
+            (0,3) -> 0
+            _ -> 1
+    , \x -> case x of
+            (1,2) -> 0
+            _ -> 1
+    , \x -> case x of
+            (2,1) -> 0
+            _ -> 1
+    , \x -> case x of
+            (3,0) -> 0
+            _ -> 1
+    , \x -> case x of
+            (0,1) -> 1
+            _ -> 2
+    , \x -> case x of
+            (1,0) -> 1
+            _ -> 2
+    , \x -> case x of
+            (0,0) -> 0
+            (0,1) -> 0
+            _ -> 2
+    , \x -> case x of
+            (0,0) -> 0
+            (1,0) -> 0
+            _ -> 2
+    , \x -> case x of
+            (0,2) -> 0
+            _ -> 2
+    , \x -> case x of
+            (1,1) -> 0
+            _ -> 2
+    , \x -> case x of
+            (2,0) -> 0
+            _ -> 2
+    , \x -> case x of
+            (0,0) -> 1
+            _ -> 3
+    , \x -> case x of
+            (0,1) -> 0
+            _ -> 3
+    , \x -> case x of
+            (1,0) -> 0
+            _ -> 3
+    , \x -> case x of
+            (0,0) -> 0
+            _ -> 4
+    , \_ -> 5
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/default-Nat-Nat-Nat.txt b/bench/tiers-txt/default-Nat-Nat-Nat.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-Nat-Nat-Nat.txt
@@ -0,0 +1,528 @@
+map length (tiers :: [[ Nat->Nat->Nat ]])  =  [1,1,5,13,35,81,...]
+
+length (list :: [ Nat->Nat->Nat ])  =  Infinity
+
+allUnique (list :: [ Nat->Nat->Nat ])  =  True
+
+ratioRepetitions (list :: [ Nat->Nat->Nat ])  =  0 % 1
+
+tiers :: [Nat->Nat->Nat]  =
+  [ [\_ _ -> 0]
+  , [\_ _ -> 1]
+  , [ \x _ -> case x of
+              0 -> 1
+              _ -> 0
+    , \x _ -> case x of
+              0 -> 0
+              _ -> 1
+    , \_ y -> case y of
+              0 -> 1
+              _ -> 0
+    , \_ y -> case y of
+              0 -> 0
+              _ -> 1
+    , \_ _ -> 2
+    ]
+  , [ \x y -> case (x,y) of
+              (0,0) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (_,0) -> 0
+              (0,_) -> 1
+              _ -> 0
+    , \x _ -> case x of
+              0 -> 2
+              _ -> 0
+    , \x _ -> case x of
+              1 -> 1
+              _ -> 0
+    , \x _ -> case x of
+              1 -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 0
+              _ -> 1
+    , \x _ -> case x of
+              0 -> 0
+              _ -> 2
+    , \_ y -> case y of
+              0 -> 2
+              _ -> 0
+    , \_ y -> case y of
+              1 -> 1
+              _ -> 0
+    , \_ y -> case y of
+              1 -> 0
+              _ -> 1
+    , \_ y -> case y of
+              0 -> 0
+              _ -> 2
+    , \_ _ -> 3
+    ]
+  , [ \x y -> case (x,y) of
+              (0,0) -> 2
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,1) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,0) -> 1
+              (_,1) -> 0
+              (1,_) -> 0
+              (_,0) -> 0
+              (0,_) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (_,0) -> 0
+              (0,_) -> 2
+              _ -> 0
+    , \x _ -> case x of
+              0 -> 3
+              _ -> 0
+    , \x y -> case (x,y) of
+              (1,0) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 0
+              (1,_) -> 1
+              _ -> 0
+    , \x _ -> case x of
+              1 -> 2
+              _ -> 0
+    , \x _ -> case x of
+              2 -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (_,0) -> 1
+              (0,_) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,0) -> 0
+              _ -> 1
+    , \x _ -> case x of
+              0 -> 2
+              _ -> 1
+    , \x _ -> case x of
+              0 -> 0
+              1 -> 0
+              _ -> 1
+    , \x _ -> case x of
+              2 -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,_) -> 1
+              (_,0) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,0) -> 1
+              (0,_) -> 0
+              (_,1) -> 0
+              (1,_) -> 0
+              (_,0) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 1
+              (_,0) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (_,0) -> 0
+              (1,_) -> 0
+              _ -> 1
+    , \x _ -> case x of
+              0 -> 1
+              _ -> 2
+    , \x _ -> case x of
+              1 -> 0
+              _ -> 2
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 2
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 0
+              (_,1) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,1) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 0
+              _ -> 2
+    , \x _ -> case x of
+              0 -> 0
+              _ -> 3
+    , \_ y -> case y of
+              0 -> 3
+              _ -> 0
+    , \_ y -> case y of
+              1 -> 2
+              _ -> 0
+    , \_ y -> case y of
+              2 -> 1
+              _ -> 0
+    , \_ y -> case y of
+              0 -> 2
+              _ -> 1
+    , \_ y -> case y of
+              0 -> 0
+              1 -> 0
+              _ -> 1
+    , \_ y -> case y of
+              2 -> 0
+              _ -> 1
+    , \_ y -> case y of
+              0 -> 1
+              _ -> 2
+    , \_ y -> case y of
+              1 -> 0
+              _ -> 2
+    , \_ y -> case y of
+              0 -> 0
+              _ -> 3
+    , \_ _ -> 4
+    ]
+  , [ \x y -> case (x,y) of
+              (0,0) -> 3
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,1) -> 2
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,2) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,0) -> 2
+              (0,_) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (_,0) -> 0
+              (_,1) -> 0
+              (0,_) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,0) -> 1
+              (0,1) -> 1
+              (1,_) -> 0
+              (_,0) -> 0
+              (_,2) -> 0
+              (0,_) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,0) -> 1
+              (0,_) -> 2
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,0) -> 2
+              (_,1) -> 0
+              (1,_) -> 0
+              (_,0) -> 0
+              (0,_) -> 2
+              _ -> 0
+    , \x y -> case (x,y) of
+              (_,0) -> 0
+              (0,_) -> 3
+              _ -> 0
+    , \x _ -> case x of
+              0 -> 4
+              _ -> 0
+    , \x y -> case (x,y) of
+              (1,0) -> 2
+              _ -> 0
+    , \x y -> case (x,y) of
+              (1,1) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (1,0) -> 1
+              (_,1) -> 0
+              (2,_) -> 0
+              (_,0) -> 0
+              (1,_) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 0
+              (1,_) -> 2
+              _ -> 0
+    , \x _ -> case x of
+              1 -> 3
+              _ -> 0
+    , \x _ -> case x of
+              0 -> 1
+              1 -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (2,0) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 0
+              (1,_) -> 0
+              (2,_) -> 1
+              _ -> 0
+    , \x _ -> case x of
+              2 -> 2
+              _ -> 0
+    , \x _ -> case x of
+              3 -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,0) -> 2
+              (0,_) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,0) -> 0
+              (_,1) -> 1
+              (1,_) -> 1
+              (_,0) -> 1
+              (0,_) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,1) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,0) -> 0
+              (0,_) -> 2
+              _ -> 1
+    , \x _ -> case x of
+              0 -> 3
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,_) -> 1
+              (_,0) -> 1
+              (1,_) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (1,0) -> 0
+              _ -> 1
+    , \x _ -> case x of
+              1 -> 2
+              _ -> 1
+    , \x _ -> case x of
+              0 -> 0
+              2 -> 0
+              _ -> 1
+    , \x _ -> case x of
+              3 -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,0) -> 0
+              (0,_) -> 1
+              (_,0) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 2
+              (_,0) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (_,0) -> 1
+              (1,_) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (1,_) -> 0
+              (_,0) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,0) -> 1
+              (0,1) -> 0
+              (1,0) -> 1
+              (0,2) -> 0
+              (1,1) -> 0
+              (2,0) -> 0
+              (0,3) -> 0
+              (1,2) -> 0
+              ...
+    , \x y -> case (x,y) of
+              (0,0) -> 1
+              (0,_) -> 0
+              (_,0) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,_) -> 2
+              (_,0) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,0) -> 0
+              (0,_) -> 1
+              (_,1) -> 1
+              (1,_) -> 1
+              (_,0) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 0
+              (1,_) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (_,0) -> 0
+              (2,_) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,0) -> 1
+              (0,_) -> 0
+              _ -> 2
+    , \x y -> case (x,y) of
+              (0,0) -> 0
+              (0,_) -> 1
+              _ -> 2
+    , \x _ -> case x of
+              1 -> 1
+              _ -> 2
+    , \x _ -> case x of
+              0 -> 0
+              1 -> 0
+              _ -> 2
+    , \x _ -> case x of
+              2 -> 0
+              _ -> 2
+    , \x y -> case (x,y) of
+              (0,_) -> 1
+              (_,0) -> 2
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,0) -> 2
+              (0,_) -> 0
+              (_,1) -> 0
+              (1,_) -> 0
+              (_,0) -> 2
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 1
+              (_,1) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (_,0) -> 0
+              (0,1) -> 1
+              (0,_) -> 0
+              (_,2) -> 0
+              (1,_) -> 0
+              (_,1) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 1
+              (_,0) -> 1
+              (_,1) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (_,1) -> 0
+              (1,_) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,_) -> 1
+              (_,0) -> 0
+              _ -> 2
+    , \x y -> case (x,y) of
+              (_,0) -> 0
+              (1,_) -> 0
+              _ -> 2
+    , \x _ -> case x of
+              0 -> 1
+              _ -> 3
+    , \x _ -> case x of
+              1 -> 0
+              _ -> 3
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 3
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 0
+              (_,1) -> 2
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 0
+              (_,1) -> 0
+              (_,2) -> 1
+              _ -> 0
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 2
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 0
+              (_,1) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,2) -> 0
+              _ -> 1
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 1
+              _ -> 2
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,1) -> 0
+              _ -> 2
+    , \x y -> case (x,y) of
+              (0,_) -> 0
+              (_,0) -> 0
+              _ -> 3
+    , \x _ -> case x of
+              0 -> 0
+              _ -> 4
+    , \_ y -> case y of
+              0 -> 4
+              _ -> 0
+    , \_ y -> case y of
+              1 -> 3
+              _ -> 0
+    , \_ y -> case y of
+              0 -> 1
+              1 -> 1
+              _ -> 0
+    , \_ y -> case y of
+              2 -> 2
+              _ -> 0
+    , \_ y -> case y of
+              3 -> 1
+              _ -> 0
+    , \_ y -> case y of
+              0 -> 3
+              _ -> 1
+    , \_ y -> case y of
+              1 -> 2
+              _ -> 1
+    , \_ y -> case y of
+              0 -> 0
+              2 -> 0
+              _ -> 1
+    , \_ y -> case y of
+              3 -> 0
+              _ -> 1
+    , \_ y -> case y of
+              1 -> 1
+              _ -> 2
+    , \_ y -> case y of
+              0 -> 0
+              1 -> 0
+              _ -> 2
+    , \_ y -> case y of
+              2 -> 0
+              _ -> 2
+    , \_ y -> case y of
+              0 -> 1
+              _ -> 3
+    , \_ y -> case y of
+              1 -> 0
+              _ -> 3
+    , \_ y -> case y of
+              0 -> 0
+              _ -> 4
+    , \_ _ -> 5
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/default-Nat-Nat.txt b/bench/tiers-txt/default-Nat-Nat.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-Nat-Nat.txt
@@ -0,0 +1,670 @@
+map length (tiers :: [[ Nat->Nat ]])  =  [1,1,3,5,10,16,30,48,80,...]
+
+length (list :: [ Nat->Nat ])  =  Infinity
+
+allUnique (list :: [ Nat->Nat ])  =  True
+
+ratioRepetitions (list :: [ Nat->Nat ])  =  0 % 1
+
+tiers :: [Nat->Nat]  =
+  [ [\_ -> 0]
+  , [\_ -> 1]
+  , [ \x -> case x of
+            0 -> 1
+            _ -> 0
+    , \x -> case x of
+            0 -> 0
+            _ -> 1
+    , \_ -> 2
+    ]
+  , [ \x -> case x of
+            0 -> 2
+            _ -> 0
+    , \x -> case x of
+            1 -> 1
+            _ -> 0
+    , \x -> case x of
+            1 -> 0
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            _ -> 2
+    , \_ -> 3
+    ]
+  , [ \x -> case x of
+            0 -> 3
+            _ -> 0
+    , \x -> case x of
+            1 -> 2
+            _ -> 0
+    , \x -> case x of
+            2 -> 1
+            _ -> 0
+    , \x -> case x of
+            0 -> 2
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            1 -> 0
+            _ -> 1
+    , \x -> case x of
+            2 -> 0
+            _ -> 1
+    , \x -> case x of
+            0 -> 1
+            _ -> 2
+    , \x -> case x of
+            1 -> 0
+            _ -> 2
+    , \x -> case x of
+            0 -> 0
+            _ -> 3
+    , \_ -> 4
+    ]
+  , [ \x -> case x of
+            0 -> 4
+            _ -> 0
+    , \x -> case x of
+            1 -> 3
+            _ -> 0
+    , \x -> case x of
+            0 -> 1
+            1 -> 1
+            _ -> 0
+    , \x -> case x of
+            2 -> 2
+            _ -> 0
+    , \x -> case x of
+            3 -> 1
+            _ -> 0
+    , \x -> case x of
+            0 -> 3
+            _ -> 1
+    , \x -> case x of
+            1 -> 2
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            2 -> 0
+            _ -> 1
+    , \x -> case x of
+            3 -> 0
+            _ -> 1
+    , \x -> case x of
+            1 -> 1
+            _ -> 2
+    , \x -> case x of
+            0 -> 0
+            1 -> 0
+            _ -> 2
+    , \x -> case x of
+            2 -> 0
+            _ -> 2
+    , \x -> case x of
+            0 -> 1
+            _ -> 3
+    , \x -> case x of
+            1 -> 0
+            _ -> 3
+    , \x -> case x of
+            0 -> 0
+            _ -> 4
+    , \_ -> 5
+    ]
+  , [ \x -> case x of
+            0 -> 5
+            _ -> 0
+    , \x -> case x of
+            1 -> 4
+            _ -> 0
+    , \x -> case x of
+            0 -> 1
+            1 -> 2
+            _ -> 0
+    , \x -> case x of
+            0 -> 2
+            1 -> 1
+            _ -> 0
+    , \x -> case x of
+            2 -> 3
+            _ -> 0
+    , \x -> case x of
+            0 -> 1
+            2 -> 1
+            _ -> 0
+    , \x -> case x of
+            3 -> 2
+            _ -> 0
+    , \x -> case x of
+            4 -> 1
+            _ -> 0
+    , \x -> case x of
+            0 -> 4
+            _ -> 1
+    , \x -> case x of
+            1 -> 3
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            1 -> 2
+            _ -> 1
+    , \x -> case x of
+            0 -> 2
+            1 -> 0
+            _ -> 1
+    , \x -> case x of
+            2 -> 2
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            3 -> 0
+            _ -> 1
+    , \x -> case x of
+            1 -> 0
+            2 -> 0
+            _ -> 1
+    , \x -> case x of
+            4 -> 0
+            _ -> 1
+    , \x -> case x of
+            0 -> 3
+            _ -> 2
+    , \x -> case x of
+            0 -> 0
+            1 -> 1
+            _ -> 2
+    , \x -> case x of
+            0 -> 1
+            1 -> 0
+            _ -> 2
+    , \x -> case x of
+            2 -> 1
+            _ -> 2
+    , \x -> case x of
+            0 -> 0
+            2 -> 0
+            _ -> 2
+    , \x -> case x of
+            3 -> 0
+            _ -> 2
+    , \x -> case x of
+            0 -> 2
+            _ -> 3
+    , \x -> case x of
+            1 -> 1
+            _ -> 3
+    , \x -> case x of
+            0 -> 0
+            1 -> 0
+            _ -> 3
+    , \x -> case x of
+            2 -> 0
+            _ -> 3
+    , \x -> case x of
+            0 -> 1
+            _ -> 4
+    , \x -> case x of
+            1 -> 0
+            _ -> 4
+    , \x -> case x of
+            0 -> 0
+            _ -> 5
+    , \_ -> 6
+    ]
+  , [ \x -> case x of
+            0 -> 6
+            _ -> 0
+    , \x -> case x of
+            1 -> 5
+            _ -> 0
+    , \x -> case x of
+            0 -> 1
+            1 -> 3
+            _ -> 0
+    , \x -> case x of
+            0 -> 2
+            1 -> 2
+            _ -> 0
+    , \x -> case x of
+            0 -> 3
+            1 -> 1
+            _ -> 0
+    , \x -> case x of
+            2 -> 4
+            _ -> 0
+    , \x -> case x of
+            0 -> 1
+            2 -> 2
+            _ -> 0
+    , \x -> case x of
+            0 -> 2
+            2 -> 1
+            _ -> 0
+    , \x -> case x of
+            3 -> 3
+            _ -> 0
+    , \x -> case x of
+            0 -> 1
+            3 -> 1
+            _ -> 0
+    , \x -> case x of
+            1 -> 1
+            2 -> 1
+            _ -> 0
+    , \x -> case x of
+            4 -> 2
+            _ -> 0
+    , \x -> case x of
+            5 -> 1
+            _ -> 0
+    , \x -> case x of
+            0 -> 5
+            _ -> 1
+    , \x -> case x of
+            1 -> 4
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            1 -> 3
+            _ -> 1
+    , \x -> case x of
+            0 -> 3
+            1 -> 0
+            _ -> 1
+    , \x -> case x of
+            2 -> 3
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            2 -> 2
+            _ -> 1
+    , \x -> case x of
+            0 -> 2
+            2 -> 0
+            _ -> 1
+    , \x -> case x of
+            3 -> 2
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            1 -> 0
+            2 -> 0
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            4 -> 0
+            _ -> 1
+    , \x -> case x of
+            1 -> 0
+            3 -> 0
+            _ -> 1
+    , \x -> case x of
+            5 -> 0
+            _ -> 1
+    , \x -> case x of
+            0 -> 4
+            _ -> 2
+    , \x -> case x of
+            1 -> 3
+            _ -> 2
+    , \x -> case x of
+            0 -> 1
+            1 -> 1
+            _ -> 2
+    , \x -> case x of
+            0 -> 0
+            2 -> 1
+            _ -> 2
+    , \x -> case x of
+            0 -> 1
+            2 -> 0
+            _ -> 2
+    , \x -> case x of
+            3 -> 1
+            _ -> 2
+    , \x -> case x of
+            0 -> 0
+            3 -> 0
+            _ -> 2
+    , \x -> case x of
+            1 -> 0
+            2 -> 0
+            _ -> 2
+    , \x -> case x of
+            4 -> 0
+            _ -> 2
+    , \x -> case x of
+            1 -> 2
+            _ -> 3
+    , \x -> case x of
+            0 -> 0
+            1 -> 1
+            _ -> 3
+    , \x -> case x of
+            0 -> 1
+            1 -> 0
+            _ -> 3
+    , \x -> case x of
+            2 -> 1
+            _ -> 3
+    , \x -> case x of
+            0 -> 0
+            2 -> 0
+            _ -> 3
+    , \x -> case x of
+            3 -> 0
+            _ -> 3
+    , \x -> case x of
+            0 -> 2
+            _ -> 4
+    , \x -> case x of
+            1 -> 1
+            _ -> 4
+    , \x -> case x of
+            0 -> 0
+            1 -> 0
+            _ -> 4
+    , \x -> case x of
+            2 -> 0
+            _ -> 4
+    , \x -> case x of
+            0 -> 1
+            _ -> 5
+    , \x -> case x of
+            1 -> 0
+            _ -> 5
+    , \x -> case x of
+            0 -> 0
+            _ -> 6
+    , \_ -> 7
+    ]
+  , [ \x -> case x of
+            0 -> 7
+            _ -> 0
+    , \x -> case x of
+            1 -> 6
+            _ -> 0
+    , \x -> case x of
+            0 -> 1
+            1 -> 4
+            _ -> 0
+    , \x -> case x of
+            0 -> 2
+            1 -> 3
+            _ -> 0
+    , \x -> case x of
+            0 -> 3
+            1 -> 2
+            _ -> 0
+    , \x -> case x of
+            0 -> 4
+            1 -> 1
+            _ -> 0
+    , \x -> case x of
+            2 -> 5
+            _ -> 0
+    , \x -> case x of
+            0 -> 1
+            2 -> 3
+            _ -> 0
+    , \x -> case x of
+            0 -> 2
+            2 -> 2
+            _ -> 0
+    , \x -> case x of
+            0 -> 3
+            2 -> 1
+            _ -> 0
+    , \x -> case x of
+            3 -> 4
+            _ -> 0
+    , \x -> case x of
+            0 -> 1
+            3 -> 2
+            _ -> 0
+    , \x -> case x of
+            0 -> 2
+            3 -> 1
+            _ -> 0
+    , \x -> case x of
+            1 -> 1
+            2 -> 2
+            _ -> 0
+    , \x -> case x of
+            1 -> 2
+            2 -> 1
+            _ -> 0
+    , \x -> case x of
+            4 -> 3
+            _ -> 0
+    , \x -> case x of
+            0 -> 1
+            4 -> 1
+            _ -> 0
+    , \x -> case x of
+            1 -> 1
+            3 -> 1
+            _ -> 0
+    , \x -> case x of
+            5 -> 2
+            _ -> 0
+    , \x -> case x of
+            6 -> 1
+            _ -> 0
+    , \x -> case x of
+            0 -> 6
+            _ -> 1
+    , \x -> case x of
+            1 -> 5
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            1 -> 4
+            _ -> 1
+    , \x -> case x of
+            0 -> 2
+            1 -> 2
+            _ -> 1
+    , \x -> case x of
+            0 -> 4
+            1 -> 0
+            _ -> 1
+    , \x -> case x of
+            2 -> 4
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            2 -> 3
+            _ -> 1
+    , \x -> case x of
+            0 -> 3
+            2 -> 0
+            _ -> 1
+    , \x -> case x of
+            3 -> 3
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            3 -> 2
+            _ -> 1
+    , \x -> case x of
+            0 -> 2
+            3 -> 0
+            _ -> 1
+    , \x -> case x of
+            1 -> 0
+            2 -> 2
+            _ -> 1
+    , \x -> case x of
+            1 -> 2
+            2 -> 0
+            _ -> 1
+    , \x -> case x of
+            4 -> 2
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            1 -> 0
+            3 -> 0
+            _ -> 1
+    , \x -> case x of
+            0 -> 0
+            5 -> 0
+            _ -> 1
+    , \x -> case x of
+            1 -> 0
+            4 -> 0
+            _ -> 1
+    , \x -> case x of
+            2 -> 0
+            3 -> 0
+            _ -> 1
+    , \x -> case x of
+            6 -> 0
+            _ -> 1
+    , \x -> case x of
+            0 -> 5
+            _ -> 2
+    , \x -> case x of
+            1 -> 4
+            _ -> 2
+    , \x -> case x of
+            0 -> 0
+            1 -> 3
+            _ -> 2
+    , \x -> case x of
+            0 -> 3
+            1 -> 0
+            _ -> 2
+    , \x -> case x of
+            2 -> 3
+            _ -> 2
+    , \x -> case x of
+            0 -> 1
+            2 -> 1
+            _ -> 2
+    , \x -> case x of
+            0 -> 0
+            3 -> 1
+            _ -> 2
+    , \x -> case x of
+            0 -> 1
+            3 -> 0
+            _ -> 2
+    , \x -> case x of
+            1 -> 0
+            2 -> 1
+            _ -> 2
+    , \x -> case x of
+            1 -> 1
+            2 -> 0
+            _ -> 2
+    , \x -> case x of
+            4 -> 1
+            _ -> 2
+    , \x -> case x of
+            0 -> 0
+            1 -> 0
+            2 -> 0
+            _ -> 2
+    , \x -> case x of
+            0 -> 0
+            4 -> 0
+            _ -> 2
+    , \x -> case x of
+            1 -> 0
+            3 -> 0
+            _ -> 2
+    , \x -> case x of
+            5 -> 0
+            _ -> 2
+    , \x -> case x of
+            0 -> 4
+            _ -> 3
+    , \x -> case x of
+            0 -> 0
+            1 -> 2
+            _ -> 3
+    , \x -> case x of
+            0 -> 1
+            1 -> 1
+            _ -> 3
+    , \x -> case x of
+            0 -> 2
+            1 -> 0
+            _ -> 3
+    , \x -> case x of
+            2 -> 2
+            _ -> 3
+    , \x -> case x of
+            0 -> 0
+            2 -> 1
+            _ -> 3
+    , \x -> case x of
+            0 -> 1
+            2 -> 0
+            _ -> 3
+    , \x -> case x of
+            3 -> 1
+            _ -> 3
+    , \x -> case x of
+            0 -> 0
+            3 -> 0
+            _ -> 3
+    , \x -> case x of
+            1 -> 0
+            2 -> 0
+            _ -> 3
+    , \x -> case x of
+            4 -> 0
+            _ -> 3
+    , \x -> case x of
+            0 -> 3
+            _ -> 4
+    , \x -> case x of
+            1 -> 2
+            _ -> 4
+    , \x -> case x of
+            0 -> 0
+            1 -> 1
+            _ -> 4
+    , \x -> case x of
+            0 -> 1
+            1 -> 0
+            _ -> 4
+    , \x -> case x of
+            2 -> 1
+            _ -> 4
+    , \x -> case x of
+            0 -> 0
+            2 -> 0
+            _ -> 4
+    , \x -> case x of
+            3 -> 0
+            _ -> 4
+    , \x -> case x of
+            0 -> 2
+            _ -> 5
+    , \x -> case x of
+            1 -> 1
+            _ -> 5
+    , \x -> case x of
+            0 -> 0
+            1 -> 0
+            _ -> 5
+    , \x -> case x of
+            2 -> 0
+            _ -> 5
+    , \x -> case x of
+            0 -> 1
+            _ -> 6
+    , \x -> case x of
+            1 -> 0
+            _ -> 6
+    , \x -> case x of
+            0 -> 0
+            _ -> 7
+    , \_ -> 8
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/default-Nat-U.txt b/bench/tiers-txt/default-Nat-U.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-Nat-U.txt
@@ -0,0 +1,17 @@
+map length (tiers :: [[ Nat->() ]])  =  [1,0,0,0,0,0,...]
+
+length (list :: [ Nat->() ])  =  1
+
+allUnique (list :: [ Nat->() ])  =  True
+
+ratioRepetitions (list :: [ Nat->() ])  =  0 % 1
+
+tiers :: [Nat->()]  =
+  [ [\_ -> ()]
+  , []
+  , []
+  , []
+  , []
+  , []
+  , ...
+  ]
diff --git a/bench/tiers-txt/default-Nat2-Nat2.txt b/bench/tiers-txt/default-Nat2-Nat2.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-Nat2-Nat2.txt
@@ -0,0 +1,19 @@
+map length (tiers :: [[ Nat2->Nat2 ]])  =  [1,2,1]
+
+length (list :: [ Nat2->Nat2 ])  =  4
+
+allUnique (list :: [ Nat2->Nat2 ])  =  True
+
+ratioRepetitions (list :: [ Nat2->Nat2 ])  =  0 % 1
+
+tiers :: [Nat2->Nat2]  =
+  [ [\_ -> 0]
+  , [ \x -> case x of
+            0 -> 0
+            1 -> 1
+    , \x -> case x of
+            0 -> 1
+            1 -> 0
+    ]
+  , [\_ -> 1]
+  ]
diff --git a/bench/tiers-txt/default-Nat2-Nat3.txt b/bench/tiers-txt/default-Nat2-Nat3.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-Nat2-Nat3.txt
@@ -0,0 +1,34 @@
+map length (tiers :: [[ Nat2->Nat3 ]])  =  [1,2,3,2,1]
+
+length (list :: [ Nat2->Nat3 ])  =  9
+
+allUnique (list :: [ Nat2->Nat3 ])  =  True
+
+ratioRepetitions (list :: [ Nat2->Nat3 ])  =  0 % 1
+
+tiers :: [Nat2->Nat3]  =
+  [ [\_ -> 0]
+  , [ \x -> case x of
+            0 -> 0
+            1 -> 1
+    , \x -> case x of
+            0 -> 1
+            1 -> 0
+    ]
+  , [ \x -> case x of
+            0 -> 0
+            1 -> 2
+    , \_ -> 1
+    , \x -> case x of
+            0 -> 2
+            1 -> 0
+    ]
+  , [ \x -> case x of
+            0 -> 1
+            1 -> 2
+    , \x -> case x of
+            0 -> 2
+            1 -> 1
+    ]
+  , [\_ -> 2]
+  ]
diff --git a/bench/tiers-txt/default-Nat3-Nat2.txt b/bench/tiers-txt/default-Nat3-Nat2.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-Nat3-Nat2.txt
@@ -0,0 +1,32 @@
+map length (tiers :: [[ Nat3->Nat2 ]])  =  [1,3,3,1]
+
+length (list :: [ Nat3->Nat2 ])  =  8
+
+allUnique (list :: [ Nat3->Nat2 ])  =  True
+
+ratioRepetitions (list :: [ Nat3->Nat2 ])  =  0 % 1
+
+tiers :: [Nat3->Nat2]  =
+  [ [\_ -> 0]
+  , [ \x -> case x of
+            2 -> 1
+            _ -> 0
+    , \x -> case x of
+            1 -> 1
+            _ -> 0
+    , \x -> case x of
+            0 -> 1
+            _ -> 0
+    ]
+  , [ \x -> case x of
+            0 -> 0
+            _ -> 1
+    , \x -> case x of
+            1 -> 0
+            _ -> 1
+    , \x -> case x of
+            2 -> 0
+            _ -> 1
+    ]
+  , [\_ -> 1]
+  ]
diff --git a/bench/tiers-txt/default-Nat3-Nat3.txt b/bench/tiers-txt/default-Nat3-Nat3.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-Nat3-Nat3.txt
@@ -0,0 +1,96 @@
+map length (tiers :: [[ Nat3->Nat3 ]])  =  [1,3,6,7,6,3,1]
+
+length (list :: [ Nat3->Nat3 ])  =  Infinity
+
+allUnique (list :: [ Nat3->Nat3 ])  =  True
+
+ratioRepetitions (list :: [ Nat3->Nat3 ])  =  0 % 1
+
+tiers :: [Nat3->Nat3]  =
+  [ [\_ -> 0]
+  , [ \x -> case x of
+            2 -> 1
+            _ -> 0
+    , \x -> case x of
+            1 -> 1
+            _ -> 0
+    , \x -> case x of
+            0 -> 1
+            _ -> 0
+    ]
+  , [ \x -> case x of
+            2 -> 2
+            _ -> 0
+    , \x -> case x of
+            0 -> 0
+            _ -> 1
+    , \x -> case x of
+            1 -> 2
+            _ -> 0
+    , \x -> case x of
+            1 -> 0
+            _ -> 1
+    , \x -> case x of
+            2 -> 0
+            _ -> 1
+    , \x -> case x of
+            0 -> 2
+            _ -> 0
+    ]
+  , [ \x -> case x of
+            0 -> 0
+            1 -> 1
+            2 -> 2
+    , \x -> case x of
+            0 -> 0
+            1 -> 2
+            2 -> 1
+    , \x -> case x of
+            0 -> 1
+            1 -> 0
+            2 -> 2
+    , \_ -> 1
+    , \x -> case x of
+            0 -> 1
+            1 -> 2
+            2 -> 0
+    , \x -> case x of
+            0 -> 2
+            1 -> 0
+            2 -> 1
+    , \x -> case x of
+            0 -> 2
+            1 -> 1
+            2 -> 0
+    ]
+  , [ \x -> case x of
+            0 -> 0
+            _ -> 2
+    , \x -> case x of
+            2 -> 2
+            _ -> 1
+    , \x -> case x of
+            1 -> 2
+            _ -> 1
+    , \x -> case x of
+            1 -> 0
+            _ -> 2
+    , \x -> case x of
+            0 -> 2
+            _ -> 1
+    , \x -> case x of
+            2 -> 0
+            _ -> 2
+    ]
+  , [ \x -> case x of
+            0 -> 1
+            _ -> 2
+    , \x -> case x of
+            1 -> 1
+            _ -> 2
+    , \x -> case x of
+            2 -> 1
+            _ -> 2
+    ]
+  , [\_ -> 2]
+  ]
diff --git a/bench/tiers-txt/default-Nats-Nats.txt b/bench/tiers-txt/default-Nats-Nats.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-Nats-Nats.txt
@@ -0,0 +1,317 @@
+map length (tiers :: [[ [Nat]->[Nat] ]])  =  [1,1,4,10,29,75,...]
+
+length (list :: [ [Nat]->[Nat] ])  =  Infinity
+
+allUnique (list :: [ [Nat]->[Nat] ])  =  True
+
+ratioRepetitions (list :: [ [Nat]->[Nat] ])  =  0 % 1
+
+tiers :: [[Nat]->[Nat]]  =
+  [ [\_ -> []]
+  , [\_ -> [0]]
+  , [ \x -> case x of
+            [] -> [0]
+            _ -> []
+    , \x -> case x of
+            [] -> []
+            _ -> [0]
+    , \_ -> [0,0]
+    , \_ -> [1]
+    ]
+  , [ \x -> case x of
+            [] -> [0,0]
+            _ -> []
+    , \x -> case x of
+            [] -> [1]
+            _ -> []
+    , \x -> case x of
+            [0] -> [0]
+            _ -> []
+    , \x -> case x of
+            [0] -> []
+            _ -> [0]
+    , \x -> case x of
+            [] -> []
+            _ -> [0,0]
+    , \x -> case x of
+            [] -> []
+            _ -> [1]
+    , \_ -> [0,0,0]
+    , \_ -> [0,1]
+    , \_ -> [1,0]
+    , \_ -> [2]
+    ]
+  , [ \x -> case x of
+            [] -> [0,0,0]
+            _ -> []
+    , \x -> case x of
+            [] -> [0,1]
+            _ -> []
+    , \x -> case x of
+            [] -> [1,0]
+            _ -> []
+    , \x -> case x of
+            [] -> [2]
+            _ -> []
+    , \x -> case x of
+            [0] -> [0,0]
+            _ -> []
+    , \x -> case x of
+            [0] -> [1]
+            _ -> []
+    , \x -> case x of
+            [0,0] -> [0]
+            _ -> []
+    , \x -> case x of
+            [1] -> [0]
+            _ -> []
+    , \x -> case x of
+            [] -> [0,0]
+            _ -> [0]
+    , \x -> case x of
+            [] -> [1]
+            _ -> [0]
+    , \x -> case x of
+            [] -> []
+            [0] -> []
+            _ -> [0]
+    , \x -> case x of
+            [0,0] -> []
+            _ -> [0]
+    , \x -> case x of
+            [1] -> []
+            _ -> [0]
+    , \x -> case x of
+            [] -> [0]
+            _ -> [0,0]
+    , \x -> case x of
+            [0] -> []
+            _ -> [0,0]
+    , \x -> case x of
+            [] -> [0]
+            _ -> [1]
+    , \x -> case x of
+            [0] -> []
+            _ -> [1]
+    , \x -> case x of
+            [] -> []
+            _ -> [0,0,0]
+    , \x -> case x of
+            [] -> []
+            _ -> [0,1]
+    , \x -> case x of
+            [] -> []
+            _ -> [1,0]
+    , \x -> case x of
+            [] -> []
+            _ -> [2]
+    , \_ -> [0,0,0,0]
+    , \_ -> [0,0,1]
+    , \_ -> [0,1,0]
+    , \_ -> [0,2]
+    , \_ -> [1,0,0]
+    , \_ -> [1,1]
+    , \_ -> [2,0]
+    , \_ -> [3]
+    ]
+  , [ \x -> case x of
+            [] -> [0,0,0,0]
+            _ -> []
+    , \x -> case x of
+            [] -> [0,0,1]
+            _ -> []
+    , \x -> case x of
+            [] -> [0,1,0]
+            _ -> []
+    , \x -> case x of
+            [] -> [0,2]
+            _ -> []
+    , \x -> case x of
+            [] -> [1,0,0]
+            _ -> []
+    , \x -> case x of
+            [] -> [1,1]
+            _ -> []
+    , \x -> case x of
+            [] -> [2,0]
+            _ -> []
+    , \x -> case x of
+            [] -> [3]
+            _ -> []
+    , \x -> case x of
+            [0] -> [0,0,0]
+            _ -> []
+    , \x -> case x of
+            [0] -> [0,1]
+            _ -> []
+    , \x -> case x of
+            [0] -> [1,0]
+            _ -> []
+    , \x -> case x of
+            [0] -> [2]
+            _ -> []
+    , \x -> case x of
+            [] -> [0]
+            [0] -> [0]
+            _ -> []
+    , \x -> case x of
+            [0,0] -> [0,0]
+            _ -> []
+    , \x -> case x of
+            [0,0] -> [1]
+            _ -> []
+    , \x -> case x of
+            [1] -> [0,0]
+            _ -> []
+    , \x -> case x of
+            [1] -> [1]
+            _ -> []
+    , \x -> case x of
+            [0,0,0] -> [0]
+            _ -> []
+    , \x -> case x of
+            [0,1] -> [0]
+            _ -> []
+    , \x -> case x of
+            [1,0] -> [0]
+            _ -> []
+    , \x -> case x of
+            [2] -> [0]
+            _ -> []
+    , \x -> case x of
+            [] -> [0,0,0]
+            _ -> [0]
+    , \x -> case x of
+            [] -> [0,1]
+            _ -> [0]
+    , \x -> case x of
+            [] -> [1,0]
+            _ -> [0]
+    , \x -> case x of
+            [] -> [2]
+            _ -> [0]
+    , \x -> case x of
+            [0] -> [0,0]
+            _ -> [0]
+    , \x -> case x of
+            [0] -> [1]
+            _ -> [0]
+    , \x -> case x of
+            [] -> []
+            [0,0] -> []
+            _ -> [0]
+    , \x -> case x of
+            [] -> []
+            [1] -> []
+            _ -> [0]
+    , \x -> case x of
+            [0,0,0] -> []
+            _ -> [0]
+    , \x -> case x of
+            [0,1] -> []
+            _ -> [0]
+    , \x -> case x of
+            [1,0] -> []
+            _ -> [0]
+    , \x -> case x of
+            [2] -> []
+            _ -> [0]
+    , \x -> case x of
+            [] -> [1]
+            _ -> [0,0]
+    , \x -> case x of
+            [0] -> [0]
+            _ -> [0,0]
+    , \x -> case x of
+            [] -> []
+            [0] -> []
+            _ -> [0,0]
+    , \x -> case x of
+            [0,0] -> []
+            _ -> [0,0]
+    , \x -> case x of
+            [1] -> []
+            _ -> [0,0]
+    , \x -> case x of
+            [] -> [0,0]
+            _ -> [1]
+    , \x -> case x of
+            [0] -> [0]
+            _ -> [1]
+    , \x -> case x of
+            [] -> []
+            [0] -> []
+            _ -> [1]
+    , \x -> case x of
+            [0,0] -> []
+            _ -> [1]
+    , \x -> case x of
+            [1] -> []
+            _ -> [1]
+    , \x -> case x of
+            [] -> [0]
+            _ -> [0,0,0]
+    , \x -> case x of
+            [0] -> []
+            _ -> [0,0,0]
+    , \x -> case x of
+            [] -> [0]
+            _ -> [0,1]
+    , \x -> case x of
+            [0] -> []
+            _ -> [0,1]
+    , \x -> case x of
+            [] -> [0]
+            _ -> [1,0]
+    , \x -> case x of
+            [0] -> []
+            _ -> [1,0]
+    , \x -> case x of
+            [] -> [0]
+            _ -> [2]
+    , \x -> case x of
+            [0] -> []
+            _ -> [2]
+    , \x -> case x of
+            [] -> []
+            _ -> [0,0,0,0]
+    , \x -> case x of
+            [] -> []
+            _ -> [0,0,1]
+    , \x -> case x of
+            [] -> []
+            _ -> [0,1,0]
+    , \x -> case x of
+            [] -> []
+            _ -> [0,2]
+    , \x -> case x of
+            [] -> []
+            _ -> [1,0,0]
+    , \x -> case x of
+            [] -> []
+            _ -> [1,1]
+    , \x -> case x of
+            [] -> []
+            _ -> [2,0]
+    , \x -> case x of
+            [] -> []
+            _ -> [3]
+    , \_ -> [0,0,0,0,0]
+    , \_ -> [0,0,0,1]
+    , \_ -> [0,0,1,0]
+    , \_ -> [0,0,2]
+    , \_ -> [0,1,0,0]
+    , \_ -> [0,1,1]
+    , \_ -> [0,2,0]
+    , \_ -> [0,3]
+    , \_ -> [1,0,0,0]
+    , \_ -> [1,0,1]
+    , \_ -> [1,1,0]
+    , \_ -> [1,2]
+    , \_ -> [2,0,0]
+    , \_ -> [2,1]
+    , \_ -> [3,0]
+    , \_ -> [4]
+    ]
+  , ...
+  ]
diff --git a/bench/tiers-txt/default-U-Bool.txt b/bench/tiers-txt/default-U-Bool.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-U-Bool.txt
@@ -0,0 +1,13 @@
+map length (tiers :: [[ ()->Bool ]])  =  [2]
+
+length (list :: [ ()->Bool ])  =  2
+
+allUnique (list :: [ ()->Bool ])  =  True
+
+ratioRepetitions (list :: [ ()->Bool ])  =  0 % 1
+
+tiers :: [()->Bool]  =
+  [ [ \_ -> False
+    , \_ -> True
+    ]
+  ]
diff --git a/bench/tiers-txt/default-U-Nat.txt b/bench/tiers-txt/default-U-Nat.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-U-Nat.txt
@@ -0,0 +1,17 @@
+map length (tiers :: [[ ()->Nat ]])  =  [1,1,1,1,1,1,...]
+
+length (list :: [ ()->Nat ])  =  Infinity
+
+allUnique (list :: [ ()->Nat ])  =  True
+
+ratioRepetitions (list :: [ ()->Nat ])  =  0 % 1
+
+tiers :: [()->Nat]  =
+  [ [\_ -> 0]
+  , [\_ -> 1]
+  , [\_ -> 2]
+  , [\_ -> 3]
+  , [\_ -> 4]
+  , [\_ -> 5]
+  , ...
+  ]
diff --git a/bench/tiers-txt/default-U-U.txt b/bench/tiers-txt/default-U-U.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-U-U.txt
@@ -0,0 +1,10 @@
+map length (tiers :: [[ ()->() ]])  =  [1]
+
+length (list :: [ ()->() ])  =  1
+
+allUnique (list :: [ ()->() ])  =  True
+
+ratioRepetitions (list :: [ ()->() ])  =  0 % 1
+
+tiers :: [()->()]  =
+  [[\_ -> ()]]
diff --git a/bench/tiers-txt/default-Us-Us.txt b/bench/tiers-txt/default-Us-Us.txt
new file mode 100644
--- /dev/null
+++ b/bench/tiers-txt/default-Us-Us.txt
@@ -0,0 +1,115 @@
+map length (tiers :: [[ [()]->[()] ]])  =  [1,1,3,5,10,16,...]
+
+length (list :: [ [()]->[()] ])  =  Infinity
+
+allUnique (list :: [ [()]->[()] ])  =  True
+
+ratioRepetitions (list :: [ [()]->[()] ])  =  0 % 1
+
+tiers :: [[()]->[()]]  =
+  [ [\_ -> []]
+  , [\_ -> [()]]
+  , [ \x -> case x of
+            [] -> [()]
+            _ -> []
+    , \x -> case x of
+            [] -> []
+            _ -> [()]
+    , \_ -> [(),()]
+    ]
+  , [ \x -> case x of
+            [] -> [(),()]
+            _ -> []
+    , \x -> case x of
+            [()] -> [()]
+            _ -> []
+    , \x -> case x of
+            [()] -> []
+            _ -> [()]
+    , \x -> case x of
+            [] -> []
+            _ -> [(),()]
+    , \_ -> [(),(),()]
+    ]
+  , [ \x -> case x of
+            [] -> [(),(),()]
+            _ -> []
+    , \x -> case x of
+            [()] -> [(),()]
+            _ -> []
+    , \x -> case x of
+            [(),()] -> [()]
+            _ -> []
+    , \x -> case x of
+            [] -> [(),()]
+            _ -> [()]
+    , \x -> case x of
+            [] -> []
+            [()] -> []
+            _ -> [()]
+    , \x -> case x of
+            [(),()] -> []
+            _ -> [()]
+    , \x -> case x of
+            [] -> [()]
+            _ -> [(),()]
+    , \x -> case x of
+            [()] -> []
+            _ -> [(),()]
+    , \x -> case x of
+            [] -> []
+            _ -> [(),(),()]
+    , \_ -> [(),(),(),()]
+    ]
+  , [ \x -> case x of
+            [] -> [(),(),(),()]
+            _ -> []
+    , \x -> case x of
+            [()] -> [(),(),()]
+            _ -> []
+    , \x -> case x of
+            [] -> [()]
+            [()] -> [()]
+            _ -> []
+    , \x -> case x of
+            [(),()] -> [(),()]
+            _ -> []
+    , \x -> case x of
+            [(),(),()] -> [()]
+            _ -> []
+    , \x -> case x of
+            [] -> [(),(),()]
+            _ -> [()]
+    , \x -> case x of
+            [()] -> [(),()]
+            _ -> [()]
+    , \x -> case x of
+            [] -> []
+            [(),()] -> []
+            _ -> [()]
+    , \x -> case x of
+            [(),(),()] -> []
+            _ -> [()]
+    , \x -> case x of
+            [()] -> [()]
+            _ -> [(),()]
+    , \x -> case x of
+            [] -> []
+            [()] -> []
+            _ -> [(),()]
+    , \x -> case x of
+            [(),()] -> []
+            _ -> [(),()]
+    , \x -> case x of
+            [] -> [()]
+            _ -> [(),(),()]
+    , \x -> case x of
+            [()] -> []
+            _ -> [(),(),()]
+    , \x -> case x of
+            [] -> []
+            _ -> [(),(),(),()]
+    , \_ -> [(),(),(),(),()]
+    ]
+  , ...
+  ]
diff --git a/bench/tiers.hs b/bench/tiers.hs
--- a/bench/tiers.hs
+++ b/bench/tiers.hs
@@ -1,6 +1,6 @@
 -- tiers.hs -- prints tiers of values up to a certain point
 --
--- Copyright (c) 2015-2020 Rudy Matela.
+-- Copyright (c) 2015-2024 Rudy Matela.
 -- Distributed under the 3-Clause BSD licence (see the file LICENSE).
 import Test.LeanCheck
 import Test.LeanCheck.Utils.Types
@@ -39,9 +39,7 @@
                      %  fromIntegral (length xs)
 
 showLengthT :: [[a]] -> String
-showLengthT xss  =  case lengthT xss of
-                    Nothing -> "Infinity"
-                    Just x  -> show x
+showLengthT  =  maybe "Infinity" show . lengthT
 
 showDotsLongerThan :: Show a => Int -> [a] -> String
 showDotsLongerThan n xs  =  "["
@@ -57,16 +55,16 @@
 put t n a  =  do
   putStrLn $ "map length (tiers :: [[ " ++ t ++ " ]])  =  "
           ++ showDotsLongerThan n (map length $ tiers `asTypeOf` [[a]])
-  putStrLn $ ""
+          ++ "\n"
   putStrLn $ "length (list :: [ " ++ t ++ " ])  =  "
           ++ showLengthT (tiers `asTypeOf` [[a]])
-  putStrLn $ ""
+          ++ "\n"
   putStrLn $ "allUnique (list :: [ " ++ t ++ " ])  =  "
           ++ show (allUnique . concat . take n $ tiers `asTypeOf` [[a]])
-  putStrLn $ ""
+          ++ "\n"
   putStrLn $ "ratioRepetitions (list :: [ " ++ t ++ " ])  =  "
           ++ show (ratioRepetitions . concat . take n $ tiers `asTypeOf` [[a]])
-  putStrLn $ ""
+          ++ "\n"
   putStrLn $ "tiers :: [" ++ t ++ "]  ="
   printTiers n $ tiers `asTypeOf` [[a]]
 
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -2,6 +2,14 @@
 =======================
 
 
+v1.0.2 (January 2024)
+---------------------
+
+* improve error messages
+* some code linting, refactoring and cleanup
+* improve testing of LeanCheck itself
+
+
 v1.0.0 (August 2022)
 --------------------
 
diff --git a/eg/higher-order.hs b/eg/higher-order.hs
--- a/eg/higher-order.hs
+++ b/eg/higher-order.hs
@@ -1,6 +1,6 @@
 -- higher-order.hs -- example: testing higher-order properties using LeanCheck
 --
--- Copyright (c) 2017-2020 Rudy Matela.
+-- Copyright (c) 2017-2024 Rudy Matela.
 -- Distributed under the 3-Clause BSD licence (see the file LICENSE).
 import Test.LeanCheck
 import Test.LeanCheck.Function ()
diff --git a/eg/higher-order.txt b/eg/higher-order.txt
new file mode 100644
--- /dev/null
+++ b/eg/higher-order.txt
@@ -0,0 +1,19 @@
+*** Failed! Falsifiable (after 75 tests):
+\x _ -> case x of
+        0 -> 1
+        _ -> 0
+0
+[0,0]
+
++++ OK, passed 200 tests.
+*** Failed! Falsifiable (after 36 tests):
+\_ -> 0
+\x -> case x of
+      0 -> True
+      _ -> False
+[1]
+
+*** Failed! Falsifiable (after 1 tests):
+(\_ -> 0) (\_ -> 0)
+*** Failed! Falsifiable (after 1 tests):
+(\_ -> 0) (0,0)
diff --git a/eg/overflow.txt b/eg/overflow.txt
new file mode 100644
--- /dev/null
+++ b/eg/overflow.txt
@@ -0,0 +1,2 @@
+*** Failed! Falsifiable (after 8792 tests):
+(T [] [] [] [-1] [-32768])
diff --git a/eg/test-bool.hs b/eg/test-bool.hs
--- a/eg/test-bool.hs
+++ b/eg/test-bool.hs
@@ -1,6 +1,6 @@
 -- test-bool.hs -- example program, testing Bool fns using LeanCheck
 --
--- Copyright (c) 2017-2020 Rudy Matela.
+-- Copyright (c) 2017-2024 Rudy Matela.
 -- Distributed under the 3-Clause BSD licence (see the file LICENSE).
 import Test.LeanCheck
 import Test.LeanCheck.Function ()
diff --git a/eg/test-bool.txt b/eg/test-bool.txt
new file mode 100644
--- /dev/null
+++ b/eg/test-bool.txt
@@ -0,0 +1,25 @@
+not . not === id
++++ OK, passed 2 tests (exhausted).
+(&&) commutes
++++ OK, passed 4 tests (exhausted).
+(||) commutes
++++ OK, passed 4 tests (exhausted).
+
+All boolean operators are commutative (wrong).
+*** Failed! Falsifiable (after 10 tests):
+\x y -> case (x,y) of
+        (True,False) -> True
+        _ -> False
+False
+True
+
+
+All boolean operators are associative (wrong).
+*** Failed! Falsifiable (after 22 tests):
+\x y -> case (x,y) of
+        (True,False) -> True
+        _ -> False
+True
+False
+True
+
diff --git a/eg/test-float.hs b/eg/test-float.hs
--- a/eg/test-float.hs
+++ b/eg/test-float.hs
@@ -1,6 +1,6 @@
 -- test-list.hs -- example program, testing Float using LeanCheck
 --
--- Copyright (c) 2017-2020 Rudy Matela.
+-- Copyright (c) 2017-2024 Rudy Matela.
 -- Distributed under the 3-Clause BSD licence (see the file LICENSE).
 import Test.LeanCheck
 
@@ -18,7 +18,7 @@
   checkFor n $ \x -> x + x + x + x + x == x * (5::Float)
   checkFor n $ \x -> x + x + x + x + x + x == x * (6::Float)
   checkFor n $ \() -> 0.1 + 0.1 + 0.1 == 0.3
-  checkFor n $ \x -> x >= 0 ==> (x ** 2) ** 0.5 == (x::Float)
-  checkFor n $ \x -> x >= 0 ==> (x ** 0.5) ** 2 == (x::Float)
+  checkFor n $ \x -> x >= 0 ==> sqrt (x ^ 2) == (x::Float)
+  checkFor n $ \x -> x >= 0 ==> sqrt x ^ 2 == (x::Float)
   where
   n  =  10000
diff --git a/eg/test-float.txt b/eg/test-float.txt
new file mode 100644
--- /dev/null
+++ b/eg/test-float.txt
@@ -0,0 +1,19 @@
+*** Failed! Falsifiable (after 65 tests):
+0.33333334 1.0
+*** Failed! Falsifiable (after 65 tests):
+0.33333334 1.0
+*** Failed! Falsifiable (after 694 tests):
+1.6666666 0.33333334
+*** Failed! Falsifiable (after 475 tests):
+0.33333334 0.6
++++ OK, passed 10000 tests.
++++ OK, passed 10000 tests.
++++ OK, passed 10000 tests.
++++ OK, passed 10000 tests.
+*** Failed! Falsifiable (after 22 tests):
+0.6
+*** Failed! Falsifiable (after 1 tests):
+()
++++ OK, passed 10000 tests.
+*** Failed! Falsifiable (after 4 tests):
+0.5
diff --git a/eg/test-list.hs b/eg/test-list.hs
--- a/eg/test-list.hs
+++ b/eg/test-list.hs
@@ -1,7 +1,13 @@
 -- test-list.hs -- example program, testing Data.List using LeanCheck
 --
--- Copyright (c) 2017-2020 Rudy Matela.
+-- Copyright (c) 2017-2024 Rudy Matela.
 -- Distributed under the 3-Clause BSD licence (see the file LICENSE).
+{-# LANGUAGE CPP #-}
+
+#if __GLASGOW_HASKELL__ >= 908
+{-# OPTIONS_GHC -Wno-x-partial #-}
+#endif
+
 import Test.LeanCheck
 import Data.List
 
diff --git a/eg/test-list.txt b/eg/test-list.txt
new file mode 100644
--- /dev/null
+++ b/eg/test-list.txt
@@ -0,0 +1,6 @@
+*** Failed! Falsifiable (after 4 tests):
+[] [0,0]
+*** Failed! Falsifiable (after 1 tests):
+[]
+*** Failed! Exception '...' (after 1 tests):
+[]
diff --git a/eg/test-sort.hs b/eg/test-sort.hs
--- a/eg/test-sort.hs
+++ b/eg/test-sort.hs
@@ -1,6 +1,6 @@
 -- test-sort.hs -- example program, testing sort using LeanCheck
 --
--- Copyright (c) 2017-2020 Rudy Matela.
+-- Copyright (c) 2017-2024 Rudy Matela.
 -- Distributed under the 3-Clause BSD licence (see the file LICENSE).
 import Test.LeanCheck
 
@@ -25,6 +25,6 @@
 
 main :: IO ()
 main  =  do
-  check $ (prop_sortOrdered :: [Int] -> Bool)
-  check $ (prop_sortCount :: Int -> [Int] -> Bool)
+  check (prop_sortOrdered :: [Int] -> Bool)
+  check (prop_sortCount :: Int -> [Int] -> Bool)
   check $ \xs -> sort (sort xs :: [Int]) == sort xs
diff --git a/eg/test-sort.txt b/eg/test-sort.txt
new file mode 100644
--- /dev/null
+++ b/eg/test-sort.txt
@@ -0,0 +1,4 @@
++++ OK, passed 200 tests.
+*** Failed! Falsifiable (after 4 tests):
+0 [0,0]
++++ OK, passed 200 tests.
diff --git a/etc/hugs-backports/Data/Function.hs b/etc/hugs-backports/Data/Function.hs
--- a/etc/hugs-backports/Data/Function.hs
+++ b/etc/hugs-backports/Data/Function.hs
@@ -1,7 +1,7 @@
 -- Backport of Data.Function for Hugs 2006-09.
 -- Only exports `on`
 --
--- Copyright (c) 2018-2021 Rudy Matela.
+-- Copyright (c) 2018-2024 Rudy Matela.
 -- Distributed under the 3-Clause BSD licence (see the file LICENSE).
 module Data.Function
   ( on
diff --git a/leancheck.cabal b/leancheck.cabal
--- a/leancheck.cabal
+++ b/leancheck.cabal
@@ -11,7 +11,7 @@
 -- this cabal file too complicated.  -- Rudy
 
 name:                leancheck
-version:             1.0.0
+version:             1.0.2
 synopsis:            Enumerative property-based testing
 description:
   LeanCheck is a simple enumerative property-based testing library.
@@ -51,6 +51,7 @@
                   , bench/memory-usage.hs
                   , bench/pick.hs
                   , bench/tiers.hs
+                  , bench/tiers-txt/*.txt
                   , bench/time-and-memory
                   , eg/higher-order.hs
                   , eg/overflow.hs
@@ -58,6 +59,7 @@
                   , eg/test-float.hs
                   , eg/test-list.hs
                   , eg/test-sort.hs
+                  , eg/*.txt
                   , etc/hugs-backports/Data/Function.hs
                   , mk/All.hs
                   , mk/Toplibs.hs
@@ -67,10 +69,10 @@
                   , mk/haskell.mk
                   , mk/install-on
                   , stack.yaml
-                  , test/diff/*.out
-                  , test/diff/eg/*.out
                   , test/sdist
-tested-with: GHC==9.4
+tested-with: GHC==9.8
+           , GHC==9.6
+           , GHC==9.4
            , GHC==9.2
            , GHC==9.0
            , GHC==8.10
@@ -78,11 +80,7 @@
            , GHC==8.6
            , GHC==8.4
            , GHC==8.2
-           , GHC==8.0
            , GHC==7.10
-           , GHC==7.8
-           , GHC==7.6
-           , GHC==7.4
            , Hugs==2006.9
 
 source-repository head
@@ -92,7 +90,7 @@
 source-repository this
   type:            git
   location:        https://github.com/rudymatela/leancheck
-  tag:             v1.0.0
+  tag:             v1.0.2
 
 library
   exposed-modules: Test.LeanCheck
diff --git a/mk/ghcdeps b/mk/ghcdeps
--- a/mk/ghcdeps
+++ b/mk/ghcdeps
@@ -2,7 +2,7 @@
 #
 # ghcdeps: generate Haskell make dependencies for compiling with GHC.
 #
-# Copyright (c) 2015-2021 Rudy Matela.
+# Copyright (c) 2015-2024 Rudy Matela.
 # Distributed under the 3-Clause BSD licence.
 #
 # From a list of files provided on standard input,
diff --git a/mk/haddock-i b/mk/haddock-i
--- a/mk/haddock-i
+++ b/mk/haddock-i
@@ -2,7 +2,7 @@
 #
 # haddock-i: list haddock's -i parameters.
 #
-# Copyright (c) 2015-2021 Rudy Matela.
+# Copyright (c) 2015-2024 Rudy Matela.
 # Distributed under the 3-Clause BSD licence.
 #
 # $ haddock-i <package1> <package2> ... <packageN>
diff --git a/mk/haskell.mk b/mk/haskell.mk
--- a/mk/haskell.mk
+++ b/mk/haskell.mk
@@ -1,6 +1,6 @@
 # Implicit rules for compiling Haskell code.
 #
-# Copyright (c) 2015-2021 Rudy Matela.
+# Copyright (c) 2015-2024 Rudy Matela.
 # Distributed under the 3-Clause BSD licence.
 #
 # You can optionally configure the "Configuration variables" below in your main
@@ -21,7 +21,7 @@
 GHC ?= ghc
 GHCCMD = $(GHC) -i$(GHCIMPORTDIRS) $(GHCFLAGS)
 HADDOCK ?= haddock
-CABAL_INSTALL = $(shell cabal --version | grep -q "version [0-2]\." && echo 'cabal install' || echo 'cabal v1-install')
+CABAL_INSTALL = $(shell cabal --version | grep -q "version [0-2]\." && echo 'cabal install' || echo 'cabal install --lib')
 
 # Hugs Parameters
 HUGSIMPORTDIRS ?= "/usr/lib/hugs/packages/*"
@@ -90,7 +90,10 @@
 	find $(ALL_HSS) | ./mk/ghcdeps -i$(GHCIMPORTDIRS) $(GHCFLAGS) > $(DEPMK)
 
 install-dependencies:
-	$(CABAL_INSTALL) $(INSTALL_DEPS)
+	if [ -n "$(INSTALL_DEPS)" ]; then \
+		cabal update && \
+		$(CABAL_INSTALL) $(INSTALL_DEPS); \
+	fi
 
 # haddock rules
 haddock: doc/index.html
diff --git a/mk/install-on b/mk/install-on
--- a/mk/install-on
+++ b/mk/install-on
@@ -2,7 +2,7 @@
 #
 # mk/install-on: install or updates the mk folder on a Haskell project
 #
-# Copyright (c) 2019-2021 Rudy Matela.
+# Copyright (c) 2019-2024 Rudy Matela.
 # Distributed under the 3-Clause BSD licence.
 #
 # usage: ./mk/install-on path/to/project
diff --git a/src/Test/LeanCheck.hs b/src/Test/LeanCheck.hs
--- a/src/Test/LeanCheck.hs
+++ b/src/Test/LeanCheck.hs
@@ -1,6 +1,6 @@
 -- |
 -- Module      : Test.LeanCheck
--- Copyright   : (c) 2015-2020 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
diff --git a/src/Test/LeanCheck/Basic.hs b/src/Test/LeanCheck/Basic.hs
--- a/src/Test/LeanCheck/Basic.hs
+++ b/src/Test/LeanCheck/Basic.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE CPP #-}
 -- |
 -- Module      : Test.LeanCheck.Basic
--- Copyright   : (c) 2015-2020 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
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
@@ -1,6 +1,6 @@
 -- |
 -- Module      : Test.LeanCheck.Core
--- Copyright   : (c) 2015-2020 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
@@ -270,7 +270,7 @@
 listFractional  =  0 : positives +| negatives
   where
   stern  =  map (fromInteger . fusc) [1..]
-  positives  =  takeWhile (>0) $ zipWith (/) stern (tail stern)
+  positives  =  takeWhile (>0) $ zipWith (/) stern (drop 1 stern)
   negatives  =  takeWhile (<0) $ map negate positives
   fusc  =  fu 1 0  where  fu a b 0               =  b
                           fu a b n  | even n     =  fu (a + b) b (n `div` 2)
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
@@ -1,7 +1,7 @@
 {-# LANGUAGE TemplateHaskell, CPP #-}
 -- |
 -- Module      : Test.LeanCheck.Derive
--- Copyright   : (c) 2015-2020 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
@@ -29,7 +29,7 @@
 
 import Language.Haskell.TH
 import Test.LeanCheck.Basic
-import Control.Monad (unless, liftM, filterM)
+import Control.Monad (unless, filterM)
 import Data.List (delete)
 
 #if __GLASGOW_HASKELL__ < 706
@@ -106,14 +106,13 @@
 deriveListableX warnExisting cascade t  =  do
   is <- t `isInstanceOf` ''Listable
   if is
-    then do
-      unless (not warnExisting)
-        (reportWarning $ "Instance Listable " ++ show t
-                      ++ " already exists, skipping derivation")
-      return []
-    else if cascade
-           then reallyDeriveListableCascading t
-           else reallyDeriveListable t
+  then do unless (not warnExisting) $
+            reportWarning $ "Instance Listable " ++ show t
+                         ++ " already exists, skipping derivation"
+          return []
+  else if cascade
+       then reallyDeriveListableCascading t
+       else reallyDeriveListable t
 
 reallyDeriveListable :: Name -> DecsQ
 reallyDeriveListable t  =  do
@@ -165,7 +164,7 @@
 reallyDeriveListableCascading t =
       return . concat
   =<< mapM reallyDeriveListable
-  =<< filterM (liftM not . isTypeSynonym)
+  =<< filterM (fmap not . isTypeSynonym)
   =<< return . (t:) . delete t
   =<< t `typeConCascadingArgsThat` (`isntInstanceOf` ''Listable)
 
@@ -175,8 +174,8 @@
 typeConArgs t  =  do
   is <- isTypeSynonym t
   if is
-  then liftM typeConTs $ typeSynonymType t
-  else liftM (nubMerges . map typeConTs . concat . map snd) $ typeConstructors t
+  then typeConTs `fmap` typeSynonymType t
+  else (nubMerges . map typeConTs . concatMap snd) `fmap` typeConstructors t
   where
   typeConTs :: Type -> [Name]
   typeConTs (AppT t1 t2)  =  typeConTs t1 `nubMerge` typeConTs t2
@@ -192,29 +191,31 @@
   typeConTs _  =  []
 
 typeConArgsThat :: Name -> (Name -> Q Bool) -> Q [Name]
-typeConArgsThat t p  =  do
-  targs <- typeConArgs t
-  tbs   <- mapM (\t' -> do is <- p t'; return (t',is)) targs
-  return [t' | (t',p) <- tbs, p]
+t `typeConArgsThat` p  =  filterM p =<< typeConArgs t
 
 typeConCascadingArgsThat :: Name -> (Name -> Q Bool) -> Q [Name]
 t `typeConCascadingArgsThat` p  =  do
   ts <- t `typeConArgsThat` p
-  let p' t'  =  do is <- p t'; return $ t' `notElem` (t:ts) && is
+  let p' t'  =  (t' `notElem` t:ts &&) `fmap` p t'
   tss <- mapM (`typeConCascadingArgsThat` p') ts
   return $ nubMerges (ts:tss)
 
--- Normalizes a type by applying it to necessary type variables, making it
--- accept "zero" parameters.  The normalized type is tupled with a list of
--- necessary type variables.
+-- |
+-- Normalizes a type by applying it to necessary type variables
+-- making it accept zero type parameters.
+-- The normalized type is paired with a list of necessary type variables.
 --
--- Suppose:
+-- > > putStrLn $(stringE . show =<< normalizeType ''Int)
+-- > (ConT ''Int, [])
 --
--- > data DT a b c ...  =  ...
+-- > > putStrLn $(stringE . show =<< normalizeType ''Maybe)
+-- > (AppT (ConT ''Maybe) (VarT ''a),[VarT ''a])
 --
--- Then, in pseudo-TH:
+-- > > putStrLn $(stringE . show =<< normalizeType ''Either)
+-- > (AppT (AppT (ConT ''Either) (VarT ''a)) (VarT ''b),[VarT ''a,VarT ''b])
 --
--- > normalizeType [t|DT|] == Q (DT a b c ..., [a, b, c, ...])
+-- > > putStrLn $(stringE . show =<< normalizeType ''[])
+-- > (AppT (ConT ''[]) (VarT a),[VarT a])
 normalizeType :: Name -> Q (Type, [Type])
 normalizeType t  =  do
   ar <- typeArity t
@@ -224,10 +225,12 @@
     newNames :: [String] -> Q [Name]
     newNames  =  mapM newName
     newVarTs :: Int -> Q [Type]
-    newVarTs n  =  liftM (map VarT)
-                $  newNames (take n . map (:[]) $ cycle ['a'..'z'])
+    newVarTs n  =  map VarT
+            `fmap` newNames (take n . map (:[]) $ cycle ['a'..'z'])
 
--- Normalizes a type by applying it to units (`()`) while possible.
+-- |
+-- Normalizes a type by applying it to units to make it star-kinded.
+-- (cf. 'normalizeType')
 --
 -- > normalizeTypeUnits ''Int    === [t| Int |]
 -- > normalizeTypeUnits ''Maybe  === [t| Maybe () |]
@@ -237,105 +240,150 @@
   ar <- typeArity t
   return (foldl AppT (ConT t) (replicate ar (TupleT 0)))
 
+-- |
 -- Given a type name and a class name,
 -- returns whether the type is an instance of that class.
+-- The given type must be star-kinded (@ * @)
+-- and the given class double-star-kinded (@ * -> * @.
+--
+-- > > putStrLn $(stringE . show =<< ''Int `isInstanceOf` ''Num)
+-- > True
+--
+-- > > putStrLn $(stringE . show =<< ''Int `isInstanceOf` ''Fractional)
+-- > False
 isInstanceOf :: Name -> Name -> Q Bool
 isInstanceOf tn cl  =  do
   ty <- normalizeTypeUnits tn
   isInstance cl [ty]
 
+-- |
+-- The negation of 'isInstanceOf'.
 isntInstanceOf :: Name -> Name -> Q Bool
-isntInstanceOf tn cl  =  liftM not (isInstanceOf tn cl)
+isntInstanceOf tn  =  fmap not . isInstanceOf tn
 
 -- | Given a type name, return the number of arguments taken by that type.
 -- Examples in partially broken TH:
 --
--- > arity ''Int        === Q 0
--- > arity ''Int->Int   === Q 0
--- > arity ''Maybe      === Q 1
--- > arity ''Either     === Q 2
--- > arity ''Int->      === Q 1
+-- > > putStrLn $(stringE . show =<< typeArity ''Int)
+-- > 0
 --
--- This works for Data's and Newtype's and it is useful when generating
--- typeclass instances.
+-- > > putStrLn $(stringE . show =<< typeArity ''Maybe)
+-- > 1
+--
+-- > > putStrLn $(stringE . show =<< typeArity ''Either)
+-- > 2
+--
+-- > > putStrLn $(stringE . show =<< typeArity ''[])
+-- > 1
+--
+-- > > putStrLn $(stringE . show =<< typeArity ''(,))
+-- > 2
+--
+-- > > putStrLn $(stringE . show =<< typeArity ''(,,))
+-- > 3
+--
+-- > > putStrLn $(stringE . show =<< typeArity ''String)
+-- > 0
+--
+-- This works for data and newtype declarations and
+-- it is useful when generating typeclass instances.
 typeArity :: Name -> Q Int
-typeArity t  =  do
-  ti <- reify t
-  return . length $ case ti of
+typeArity t  =  fmap arity $ reify t
+  where
+  arity  =  length . args
 #if __GLASGOW_HASKELL__ < 800
-    TyConI (DataD    _ _ ks _ _) -> ks
-    TyConI (NewtypeD _ _ ks _ _) -> ks
+  args (TyConI (DataD    _ _ ks   _ _))  =  ks
+  args (TyConI (NewtypeD _ _ ks   _ _))  =  ks
 #else
-    TyConI (DataD    _ _ ks _ _ _) -> ks
-    TyConI (NewtypeD _ _ ks _ _ _) -> ks
+  args (TyConI (DataD    _ _ ks _ _ _))  =  ks
+  args (TyConI (NewtypeD _ _ ks _ _ _))  =  ks
 #endif
-    TyConI (TySynD _ ks _) -> ks
-    _ -> error $ "error (typeArity): symbol " ++ show t
-              ++ " is not a newtype, data or type synonym"
+  args (TyConI (TySynD _ ks _))          =  ks
+  args _  =  errorOn "typeArity"
+          $  "neither newtype nor data nor type synonym: " ++ show t
 
--- Given a type name, returns a list of its type constructor names paired with
+-- |
+-- Given a type 'Name',
+-- returns a list of its type constructor 'Name's
+-- paired with the type arguments they take.
 -- the type arguments they take.
 --
--- > typeConstructors ''()  =  Q [('(),[])]
---
--- > typeConstructors ''(,)  =  Q [('(,),[VarT a, VarT b])]
+-- > > putStrLn $(stringE . show =<< typeConstructors ''Bool)
+-- > [ ('False, [])
+-- > , ('True, [])
+-- > ]
 --
--- > typeConstructors ''[]  =  Q [('[],[]),('(:),[VarT a,AppT ListT (VarT a)])]
+-- > > putStrLn $(stringE . show =<< typeConstructors ''[])
+-- > [ ('[], [])
+-- > , ('(:), [VarT ''a, AppT ListT (VarT ''a)])
+-- > ]
 --
--- > data Pair a  =  P a a
--- > typeConstructors ''Pair  =  Q [('P,[VarT a, VarT a])]
+-- > > putStrLn $(stringE . show =<< typeConstructors ''(,))
+-- > [('(,), [VarT (mkName "a"), VarT (mkName "b")])]
 --
--- > data Point  =  Pt Int Int
--- > typeConstructors ''Point  =  Q [('Pt,[ConT Int, ConT Int])]
+-- > > data Point  =  Pt Int Int
+-- > > putStrLn $(stringE . show =<< typeConstructors ''Point)
+-- > [('Pt,[ConT ''Int, ConT ''Int])]
 typeConstructors :: Name -> Q [(Name,[Type])]
-typeConstructors t  =  do
-  ti <- reify t
-  return . map simplify $ case ti of
+typeConstructors t  =  fmap (map normalize . cons) $ reify t
+  where
 #if __GLASGOW_HASKELL__ < 800
-    TyConI (DataD    _ _ _ cs _) -> cs
-    TyConI (NewtypeD _ _ _ c  _) -> [c]
+  cons (TyConI (DataD    _ _ _   cs _))  =  cs
+  cons (TyConI (NewtypeD _ _ _   c  _))  =  [c]
 #else
-    TyConI (DataD    _ _ _ _ cs _) -> cs
-    TyConI (NewtypeD _ _ _ _ c  _) -> [c]
+  cons (TyConI (DataD    _ _ _ _ cs _))  =  cs
+  cons (TyConI (NewtypeD _ _ _ _ c  _))  =  [c]
 #endif
-    _ -> error $ "error (typeConstructors): symbol " ++ show t
-              ++ " is neither newtype nor data"
-  where
-  simplify (NormalC n ts)   =  (n,map snd ts)
-  simplify (RecC    n ts)   =  (n,map trd ts)
-  simplify (InfixC  t1 n t2)  =  (n,[snd t1,snd t2])
-  simplify _  =  error "typeConstructors: unexpected unhandled case"
+  cons _  =  errorOn "typeConstructors"
+          $  "neither newtype nor data: " ++ show t
+  normalize (NormalC n ts)   =  (n,map snd ts)
+  normalize (RecC    n ts)   =  (n,map trd ts)
+  normalize (InfixC  t1 n t2)  =  (n,[snd t1,snd t2])
+  normalize _  =  errorOn "typeConstructors"
+               $  "unexpected unhandled case when called with " ++ show t
   trd (x,y,z)  =  z
 
+-- |
+-- Is the given 'Name' a type synonym?
+--
+-- > > putStrLn $(stringE . show =<< isTypeSynonym 'show)
+-- > False
+--
+-- > > putStrLn $(stringE . show =<< isTypeSynonym ''Char)
+-- > False
+--
+-- > > putStrLn $(stringE . show =<< isTypeSynonym ''String)
+-- > True
 isTypeSynonym :: Name -> Q Bool
-isTypeSynonym t  =  do
-  ti <- reify t
-  return $ case ti of
-    TyConI (TySynD _ _ _) -> True
-    _                     -> False
+isTypeSynonym  =  fmap is . reify
+  where
+  is (TyConI (TySynD _ _ _))  =  True
+  is _                        =  False
 
+-- |
+-- Resolves a type synonym.
+--
+-- > > putStrLn $(stringE . show =<< typeSynonymType ''String)
+-- > AppT ListT (ConT ''Char)
 typeSynonymType :: Name -> Q Type
-typeSynonymType t  =  do
-  ti <- reify t
-  return $ case ti of
-    TyConI (TySynD _ _ t') -> t'
-    _ -> error $ "error (typeSynonymType): symbol " ++ show t
-              ++ " is not a type synonym"
+typeSynonymType t  =  fmap typ $ reify t
+  where
+  typ (TyConI (TySynD _ _ t'))  =  t'
+  typ _  =  errorOn "typeSynonymType" $ "not a type synonym: " ++ show t
 
 -- Append to instance contexts in a declaration.
 --
 -- > sequence [[|Eq b|],[|Eq c|]] |=>| [t|instance Eq a => Cl (Ty a) where f=g|]
 -- > == [t| instance (Eq a, Eq b, Eq c) => Cl (Ty a) where f  =  g |]
 (|=>|) :: Cxt -> DecsQ -> DecsQ
-c |=>| qds  =  do ds <- qds
-                  return $ map (`ac` c) ds
+c |=>| qds  =  map (=>++ c) `fmap` qds
+  where
 #if __GLASGOW_HASKELL__ < 800
-  where ac (InstanceD c ts ds) c'  =  InstanceD (c++c') ts ds
-        ac d                   _   =  d
+  (InstanceD   c ts ds) =>++ c'  =  InstanceD   (c++c') ts ds
 #else
-  where ac (InstanceD o c ts ds) c'  =  InstanceD o (c++c') ts ds
-        ac d                     _   =  d
+  (InstanceD o c ts ds) =>++ c'  =  InstanceD o (c++c') ts ds
 #endif
+  d                     =>++ _   =  d
 
 -- > nubMerge xs ys == nub (merge xs ys)
 -- > nubMerge xs ys == nub (sort (xs ++ ys))
@@ -352,23 +400,26 @@
 #else
 -- When using Hugs or other compiler without Template Haskell
 
-errorNotGHC :: a
-errorNotGHC  =  error "Only defined when using GHC"
+errorNotGHC :: String -> a
+errorNotGHC fn  =  errorOn fn "only defined when using GHC"
 
 deriveListable :: a
-deriveListable  =  errorNotGHC
+deriveListable  =  errorNotGHC "deriveListable"
 
 deriveListableIfNeeded :: a
-deriveListableIfNeeded  =  errorNotGHC
+deriveListableIfNeeded  =  errorNotGHC "deriveListableIfNeeded"
 
 deriveListableCascading :: a
-deriveListableCascading  =  errorNotGHC
+deriveListableCascading  =  errorNotGHC "deriveListableCascading"
 
 deriveTiers :: a
-deriveTiers  =  errorNotGHC
+deriveTiers  =  errorNotGHC "deriveTiers"
 
 deriveList :: a
-deriveList  =  errorNotGHC
+deriveList  =  errorNotGHC "deriveList"
 
 -- closing #ifdef __GLASGOW_HASKELL__
 #endif
+
+errorOn :: String -> String -> a
+errorOn fn msg  =  error $ "Test.LeanCheck.Derive." ++ fn ++ ": " ++ msg
diff --git a/src/Test/LeanCheck/Error.hs b/src/Test/LeanCheck/Error.hs
--- a/src/Test/LeanCheck/Error.hs
+++ b/src/Test/LeanCheck/Error.hs
@@ -1,6 +1,6 @@
 -- |
 -- Module      : Test.LeanCheck.Error
--- Copyright   : (c) 2015-2020 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
@@ -57,7 +57,6 @@
   , results
   )
 
-import Control.Monad (liftM)
 import System.IO.Unsafe (unsafePerformIO)
 import Data.Maybe (listToMaybe, fromMaybe)
 import Data.Function (on)
@@ -130,14 +129,14 @@
 errorToLeft :: a -> Either String a
 errorToLeft x  =  unsafePerformIO $
 #if __GLASGOW_HASKELL__
-  (Right `liftM` evaluate x) `catches`
+  (Right `fmap` evaluate x) `catches`
     [ Handler $ \e -> return . Left $ show1st (e :: ArithException)
     , Handler $ \e -> return . Left $ show1st (e :: ArrayException)
     , Handler $ \e -> return . Left $ show1st (e :: ErrorCall)
     , Handler $ \e -> return . Left $ show1st (e :: PatternMatchFail)
     ]
 #else
-  (Right `liftM` evaluate x) `catch` (return . Left . show1st)
+  (Right `fmap` evaluate x) `catch` (return . Left . show1st)
 #endif
 
 -- | Transforms a value into 'Right' that value or 'Left String' on error.
@@ -148,10 +147,10 @@
 anyErrorToLeft :: a -> Either String a
 anyErrorToLeft x  =  unsafePerformIO $
 #if __GLASGOW_HASKELL__
-  (Right `liftM` evaluate x)
+  (Right `fmap` evaluate x)
     `catch` (\e -> return . Left $ show1st (e :: SomeException))
 #else
-  (Right `liftM` evaluate x) `catch` (return . Left . show1st)
+  (Right `fmap` evaluate x) `catch` (return . Left . show1st)
 #endif
 
 show1st :: Show a => a -> String
diff --git a/src/Test/LeanCheck/Function.hs b/src/Test/LeanCheck/Function.hs
--- a/src/Test/LeanCheck/Function.hs
+++ b/src/Test/LeanCheck/Function.hs
@@ -1,6 +1,6 @@
 -- |
 -- Module      : Test.LeanCheck.Function
--- Copyright   : (c) 2015-2020 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
diff --git a/src/Test/LeanCheck/Function/Eq.hs b/src/Test/LeanCheck/Function/Eq.hs
--- a/src/Test/LeanCheck/Function/Eq.hs
+++ b/src/Test/LeanCheck/Function/Eq.hs
@@ -1,6 +1,6 @@
 -- |
 -- Module      : Test.LeanCheck.Function.Eq
--- Copyright   : (c) 2015-2021 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
diff --git a/src/Test/LeanCheck/Function/List.hs b/src/Test/LeanCheck/Function/List.hs
--- a/src/Test/LeanCheck/Function/List.hs
+++ b/src/Test/LeanCheck/Function/List.hs
@@ -1,6 +1,6 @@
 -- |
 -- Module      : Test.LeanCheck.Function.List
--- Copyright   : (c) 2015-2021 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
diff --git a/src/Test/LeanCheck/Function/Listable.hs b/src/Test/LeanCheck/Function/Listable.hs
--- a/src/Test/LeanCheck/Function/Listable.hs
+++ b/src/Test/LeanCheck/Function/Listable.hs
@@ -1,6 +1,6 @@
 -- |
 -- Module      : Test.LeanCheck.Function.Listable
--- Copyright   : (c) 2015-2020 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
diff --git a/src/Test/LeanCheck/Function/Listable/ListsOfPairs.hs b/src/Test/LeanCheck/Function/Listable/ListsOfPairs.hs
--- a/src/Test/LeanCheck/Function/Listable/ListsOfPairs.hs
+++ b/src/Test/LeanCheck/Function/Listable/ListsOfPairs.hs
@@ -1,6 +1,6 @@
 -- |
 -- Module      : Test.LeanCheck.Function.ListsOfPairs
--- Copyright   : (c) 2015-2020 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
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
@@ -1,6 +1,6 @@
 -- |
 -- Module      : Test.LeanCheck.Function.ListsOfPairs
--- Copyright   : (c) 2015-2020 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
diff --git a/src/Test/LeanCheck/Function/Ord.hs b/src/Test/LeanCheck/Function/Ord.hs
--- a/src/Test/LeanCheck/Function/Ord.hs
+++ b/src/Test/LeanCheck/Function/Ord.hs
@@ -1,6 +1,6 @@
 -- |
 -- Module      : Test.LeanCheck.Function.Ord
--- Copyright   : (c) 2015-2021 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
diff --git a/src/Test/LeanCheck/Function/Show.hs b/src/Test/LeanCheck/Function/Show.hs
--- a/src/Test/LeanCheck/Function/Show.hs
+++ b/src/Test/LeanCheck/Function/Show.hs
@@ -1,6 +1,6 @@
 -- |
 -- Module      : Test.LeanCheck.Function.Show
--- Copyright   : (c) 2015-2020 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
diff --git a/src/Test/LeanCheck/Function/Show/EightLines.hs b/src/Test/LeanCheck/Function/Show/EightLines.hs
--- a/src/Test/LeanCheck/Function/Show/EightLines.hs
+++ b/src/Test/LeanCheck/Function/Show/EightLines.hs
@@ -1,6 +1,6 @@
 -- |
 -- Module      : Test.LeanCheck.Function.Show.EightLines
--- Copyright   : (c) 2015-2020 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
diff --git a/src/Test/LeanCheck/Function/Show/FourCases.hs b/src/Test/LeanCheck/Function/Show/FourCases.hs
--- a/src/Test/LeanCheck/Function/Show/FourCases.hs
+++ b/src/Test/LeanCheck/Function/Show/FourCases.hs
@@ -1,6 +1,6 @@
 -- |
 -- Module      : Test.LeanCheck.Function.Show.FourCases
--- Copyright   : (c) 2015-2020 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
diff --git a/src/Test/LeanCheck/Function/ShowFunction.hs b/src/Test/LeanCheck/Function/ShowFunction.hs
--- a/src/Test/LeanCheck/Function/ShowFunction.hs
+++ b/src/Test/LeanCheck/Function/ShowFunction.hs
@@ -1,7 +1,6 @@
-{-# LANGUAGE CPP #-}
 -- |
 -- Module      : Test.LeanCheck.Function.ShowFunction
--- Copyright   : (c) 2015-2020 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
@@ -71,9 +70,9 @@
 import System.IO (IOMode, BufferMode, SeekMode)
 import Foreign.C
 #ifndef __HUGS__
-import Data.List (intercalate, sortBy)
+import Data.List (intercalate, sortBy, minimumBy)
 #else
-import Data.List (sortBy)
+import Data.List (sortBy, minimumBy)
 
 intercalate :: [a] -> [[a]] -> [a]
 intercalate xs xss  =  concat (intersperse xs xss)
@@ -239,9 +238,9 @@
               _        -> False
 
 showValueOf :: ShowFunction a => a -> String
-showValueOf x  =  case snd . head . bindings $ x of
-                  Nothing -> "undefined"
-                  Just x' -> x'
+showValueOf x  =  case bindings x of
+                  (_,Just x'):_ -> x'
+                  _ -> "undefined"
 
 -- | Given the number of patterns to show, shows a 'ShowFunction' value.
 --
@@ -302,16 +301,16 @@
 showConstant :: ShowFunction a => Int -> a -> String
 showConstant m f  =  "\\" ++ unwords vs ++ " -> " ++ fromMaybe "undefined" r
   where
-  (as,r)  =  head $ bindings f
+  (as,r):_  =  bindings f
   vs  =  replicate (length as) "_"
 
 -- The first boolean parameter tells if we are showing
 -- the function on a single line
 showFunctionL :: ShowFunction a => Bool -> Int -> Int -> a -> String
-showFunctionL singleLine m n f | isValue f  =  showValueOf f
-showFunctionL singleLine m n f | isConstant m f  =  showConstant m f
---showFunctionL singleLine m n f | canName m f  =  showName m f
-showFunctionL singleLine m n f | otherwise  =  lambdaPat ++ caseExp
+showFunctionL singleLine m n f
+  | isValue f  =  showValueOf f
+  | isConstant m f  =  showConstant m f
+  | otherwise  =  lambdaPat ++ caseExp
   where
     lambdaPat  =  "\\" ++ unwords vs ++ " -> "
     casePat  =  "case " ++ showTuple (filter (/= "_") vs) ++ " of"
@@ -564,7 +563,7 @@
   bs1  =  describeBindings bs0
 
 describeBindings :: [Binding] -> [Binding]
-describeBindings bs  =  head $ sortOn length $
+describeBindings bs  =  minimumOn length
   [ bs
   , explainBindings bs
   , explainBindings . concat . sortOn length $ classifyOn snd bs
@@ -683,6 +682,10 @@
 -- sortOn is only available on GHC > 7.8
 sortOn :: Ord b => (a -> b) -> [a] -> [a]
 sortOn f  =  sortBy (compare `on` f)
+
+-- likewise...
+minimumOn :: Ord b => (a -> b) -> [a] -> a
+minimumOn f  =  minimumBy (compare `on` f)
 
 select :: [Bool] -> [a] -> [a]
 select [] _  =  []
diff --git a/src/Test/LeanCheck/Generic.hs b/src/Test/LeanCheck/Generic.hs
--- a/src/Test/LeanCheck/Generic.hs
+++ b/src/Test/LeanCheck/Generic.hs
@@ -4,7 +4,7 @@
 #endif
 -- |
 -- Module      : Test.LeanCheck.Generic
--- Copyright   : (c) 2018-2020 Rudy Matela
+-- Copyright   : (c) 2018-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
diff --git a/src/Test/LeanCheck/IO.hs b/src/Test/LeanCheck/IO.hs
--- a/src/Test/LeanCheck/IO.hs
+++ b/src/Test/LeanCheck/IO.hs
@@ -1,6 +1,6 @@
 -- |
 -- Module      : Test.LeanCheck.IO
--- Copyright   : (c) 2015-2020 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
@@ -22,6 +22,7 @@
 #endif
 
 import Test.LeanCheck.Core
+
 #ifdef __GLASGOW_HASKELL__
 import Control.Exception (SomeException, catch, evaluate)
 #else
@@ -30,6 +31,11 @@
 type SomeException  =  Exception
 #endif
 
+-- we redeclare void for backwards compatibility with old compilers
+-- e.g.: hugs
+void :: Functor f => f a -> f ()
+void  =  fmap (const ())
+
 -- | Checks a property printing results on 'System.IO.stdout'
 --
 -- > > check $ \xs -> sort (sort xs) == sort (xs::[Int])
@@ -39,7 +45,7 @@
 -- > *** Failed! Falsifiable (after 4 tests):
 -- > [] [0,0]
 check :: Testable a => a -> IO ()
-check p  =  checkResult p >> return ()
+check  =  void . checkResult
 
 -- | Check a property for a given number of tests
 --   printing results on 'System.IO.stdout'
@@ -53,7 +59,7 @@
 -- > > checkFor 3 $ \p -> p == not (not p)
 -- > +++ OK, passed 2 tests (exhausted).
 checkFor :: Testable a => Int -> a -> IO ()
-checkFor n p  =  checkResultFor n p >> return ()
+checkFor n  =  void . checkResultFor n
 
 -- | Check a property
 --   printing results on 'System.IO.stdout' and
@@ -110,7 +116,8 @@
 resultIO :: Testable a => Int -> a -> IO Result
 resultIO n  =  computeResult . resultsIO n
   where
-  computeResult []  =  error "resultIO: no results, empty Listable enumeration?"
+  computeResult []  =  return $ OK 0  -- empty Listable enumeration
+                                      -- no tests are reported as a "success"
   computeResult [r]  =  r
   computeResult (r:rs)  =  r >>= \r -> case r of
                                        (OK _) -> computeResult rs
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
@@ -1,7 +1,7 @@
 {-# LANGUAGE CPP #-}
 -- |
 -- Module      : Test.LeanCheck.Stats
--- Copyright   : (c) 2017-2020 Rudy Matela
+-- Copyright   : (c) 2017-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
@@ -220,7 +220,9 @@
 -- > > countsOn length ["sheep", "chip", "ship", "cheap", "Mississippi"]
 -- > [(5,2),(4,2),(11,1)]
 countsOn :: Eq b => (a -> b) -> [a] -> [(b,Int)]
-countsOn f  =  map (\xs -> (f $ head xs, length xs)) . classifyOn f
+countsOn f  =  map (first f . headLength) . classifyOn f
+  where
+  first f (x,y)  =  (f x, y)
 
 countsT :: Eq a => [[a]] -> [(a,Int,[Int])]
 countsT xss  =  [(x,n,map (count x) xss) | (x,n) <- counts (concat xss)]
@@ -231,7 +233,8 @@
 countsTOn f  =  countsT . mapT f
 
 headLength :: [a] -> (a,Int)
-headLength xs  =  (head xs, length xs)
+headLength []  =  (error "Test.LeanCheck.Stats.headLength: empty list", 0)
+headLength xs@(x:_)  =  (x, length xs)
 
 unquote :: String -> String
 unquote ('"':s) | last s == '"'  =  init s
@@ -240,8 +243,7 @@
 table :: String -> [[String]] -> String
 table s []   =  ""
 table s sss  =  unlines
-             .  map (removeTrailing ' ')
-             .  map (intercalate s)
+             .  map (removeTrailing ' ' . intercalate s)
              .  transpose
              .  map (normalize ' ')
              .  foldr1 (zipWith (++))
diff --git a/src/Test/LeanCheck/Tiers.hs b/src/Test/LeanCheck/Tiers.hs
--- a/src/Test/LeanCheck/Tiers.hs
+++ b/src/Test/LeanCheck/Tiers.hs
@@ -1,6 +1,6 @@
 -- |
 -- Module      : Test.LeanCheck.Tiers
--- Copyright   : (c) 2015-2020 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
@@ -161,7 +161,7 @@
 
 -- | Like '><', but over 3 lists of tiers.
 product3 :: [[a]] -> [[b]]-> [[c]] -> [[(a,b,c)]]
-product3  =  product3With (\x y z -> (x,y,z))
+product3  =  product3With (,,)
 
 -- | Like 'productWith', but over 3 lists of tiers.
 product3With :: (a->b->c->d) -> [[a]] -> [[b]] -> [[c]] -> [[d]]
@@ -191,7 +191,7 @@
 --
 -- > distinctPairsWith f  =  mapT (uncurry f) . distinctPairs
 distinctPairsWith :: (a -> a -> b) -> [[a]] -> [[b]]
-distinctPairsWith f  =  concatT . choicesWith (\e -> mapT (f e))
+distinctPairsWith f  =  concatT . choicesWith (mapT . f)
 
 -- | Takes as argument tiers of element values;
 --   returns tiers of unordered pairs where, in enumeration order,
@@ -214,7 +214,7 @@
 --
 -- > unorderedPairsWith f  =  mapT (uncurry f) . unorderedPairs
 unorderedPairsWith :: (a -> a -> b) -> [[a]] -> [[b]]
-unorderedPairsWith f  =  concatT . bagChoicesWith (\e -> mapT (f e))
+unorderedPairsWith f  =  concatT . bagChoicesWith (mapT . f)
 
 -- | Takes as argument tiers of element values;
 --   returns tiers of unordered pairs where, in enumeration order,
@@ -232,7 +232,7 @@
 --
 -- > unorderedDistinctPairsWith f  =  mapT (uncurry f) . unorderedDistinctPairs
 unorderedDistinctPairsWith :: (a -> a -> b) -> [[a]] -> [[b]]
-unorderedDistinctPairsWith f  =  concatT . setChoicesWith (\e -> mapT (f e))
+unorderedDistinctPairsWith f  =  concatT . setChoicesWith (mapT . f)
 
 -- | Takes as argument tiers of element values;
 --   returns tiers of lists of elements.
@@ -505,15 +505,15 @@
 listLines []  =  "[]"
 listLines [s] | '\n' `notElem` s  =  "[" ++ s ++ "]"
 listLines ss  =  (++ "]")
-              . unlines
-              . zipWith beside (["[ "] ++ repeat ", ")
-              $ ss
+              .  unlines
+              .  zipWith beside ("[ " : repeat ", ")
+              $  ss
   where
   beside :: String -> String -> String
   beside s  =  init
-            . unlines
-            . zipWith (++) ([s] ++ repeat (replicate (length s) ' '))
-            . lines
+            .  unlines
+            .  zipWith (++) (s : repeat (replicate (length s) ' '))
+            .  lines
 
 
 -- | Shows a list, one element per line.
diff --git a/src/Test/LeanCheck/Utils.hs b/src/Test/LeanCheck/Utils.hs
--- a/src/Test/LeanCheck/Utils.hs
+++ b/src/Test/LeanCheck/Utils.hs
@@ -1,6 +1,6 @@
 -- |
 -- Module      : Test.LeanCheck.Utils
--- Copyright   : (c) 2015-2020 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
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
@@ -1,6 +1,6 @@
 -- |
 -- Module      : Test.LeanCheck.Utils.Operators
--- Copyright   : (c) 2015-2020 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
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
@@ -1,6 +1,6 @@
 -- |
 -- Module      : Test.LeanCheck.Utils.TypeBinding
--- Copyright   : (c) 2015-2020 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
@@ -117,7 +117,7 @@
 import Test.LeanCheck.Utils.Types
 
 undefinedOf :: String -> a
-undefinedOf fn  =  error $ "Test.LeanCheck.TypeBinding." ++ fn
+undefinedOf fn  =  error $ "Test.LeanCheck.Utils.undefinedOf " ++ fn
 
 -- | Type restricted version of const
 -- that forces its first argument
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
@@ -1,6 +1,6 @@
 -- |
 -- Module      : Test.LeanCheck.Utils.Types
--- Copyright   : (c) 2015-2020 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
@@ -737,7 +737,7 @@
 
 idx :: Integral a => (a,a) -> a -> Int
 idx b@(m,_) i  | irng b i   =  fromIntegral (i - m)
-               | otherwise  =  error "Index out of range."
+               | otherwise  =  error "Test.LeanCheck.Utils.Types.idx: index out of range"
 
 irng :: Ord a => (a,a) -> a -> Bool
 irng (m,n) i  =  m <= i && i <= m
@@ -942,7 +942,7 @@
 --
 -- > > check $ \(Space c) -> isSpace c
 -- > +++ OK, passed 6 tests (exhausted).
-data Space  =  Space {unSpace :: Char}
+newtype Space  =  Space {unSpace :: Char}
 
 -- | Lowercase characters.
 --
@@ -950,7 +950,7 @@
 --
 -- > > check $ \(Lower c) -> isLower c
 -- > +++ OK, passed 26 tests (exhausted).
-data Lower  =  Lower {unLower :: Char}
+newtype Lower  =  Lower {unLower :: Char}
 
 -- | Uppercase characters.
 --
@@ -958,7 +958,7 @@
 --
 -- > > check $ \(Upper c) -> isUpper c
 -- > +++ OK, passed 26 tests (exhausted).
-data Upper  =  Upper {unUpper :: Char}
+newtype Upper  =  Upper {unUpper :: Char}
 
 -- | Alphabetic characters.
 --
@@ -968,7 +968,7 @@
 -- > +++ OK, passed 52 tests (exhausted).
 --
 -- Equivalent to 'Letter'.
-data Alpha  =  Alpha {unAlpha :: Char}
+newtype Alpha  =  Alpha {unAlpha :: Char}
 
 -- | Digits.
 --
@@ -976,7 +976,7 @@
 --
 -- > > check $ \(Digit c) -> isDigit c
 -- > +++ OK, passed 10 tests (exhausted).
-data Digit  =  Digit {unDigit :: Char}
+newtype Digit  =  Digit {unDigit :: Char}
 
 -- | Alphanumeric characters.
 --
@@ -984,7 +984,7 @@
 --
 -- > > check $ \(AlphaNum c) -> isAlphaNum c
 -- > +++ OK, passed 62 tests (exhausted).
-data AlphaNum  =  AlphaNum {unAlphaNum :: Char}
+newtype AlphaNum  =  AlphaNum {unAlphaNum :: Char}
 
 -- | Alphabetic characters.
 --
@@ -994,7 +994,7 @@
 -- > +++ OK, passed 52 tests (exhausted).
 --
 -- Equivalent to 'Alpha'.
-data Letter    =  Letter   {unLetter   :: Char}
+newtype Letter    =  Letter   {unLetter   :: Char}
 
 instance Show Space where  show  =  show . unSpace
 instance Show Lower where  show  =  show . unLower
@@ -1026,25 +1026,25 @@
   list  =  map Letter $ ['a'..'z'] +| ['A'..'Z']
 
 -- | Strings of spaces.
-data Spaces  =  Spaces {unSpaces :: String}
+newtype Spaces  =  Spaces {unSpaces :: String}
 
 -- | Strings of lowercase characters.
-data Lowers  =  Lowers {unLowers :: String}
+newtype Lowers  =  Lowers {unLowers :: String}
 
 -- | Strings of uppercase characters
-data Uppers  =  Uppers {unUppers :: String}
+newtype Uppers  =  Uppers {unUppers :: String}
 
 -- | Strings of alphabetic characters
-data Alphas  =  Alphas {unAlphas :: String}
+newtype Alphas  =  Alphas {unAlphas :: String}
 
 -- | Strings of digits.
-data Digits  =  Digits {unDigits :: String}
+newtype Digits  =  Digits {unDigits :: String}
 
 -- | Strings of alphanumeric characters
-data AlphaNums  =  AlphaNums {unAlphaNums :: String}
+newtype AlphaNums  =  AlphaNums {unAlphaNums :: String}
 
 -- | Strings of letters
-data Letters    =  Letters   {unLetters   :: String}
+newtype Letters    =  Letters   {unLetters   :: String}
 
 instance Show Spaces where  show  =  show . unSpaces
 instance Show Lowers where  show  =  show . unLowers
diff --git a/test/Test.hs b/test/Test.hs
--- a/test/Test.hs
+++ b/test/Test.hs
@@ -1,6 +1,6 @@
 -- |
 -- Module      : Test
--- Copyright   : (c) 2015-2020 Rudy Matela
+-- Copyright   : (c) 2015-2024 Rudy Matela
 -- License     : 3-Clause BSD  (see the file LICENSE)
 -- Maintainer  : Rudy Matela <rudy@matela.com.br>
 --
@@ -11,6 +11,8 @@
 module Test
   ( module Test.LeanCheck
 
+  , mainTest
+  , reportTests
   , getMaxTestsFromArgs
 
   , tNatPairOrd
@@ -37,21 +39,29 @@
 import Test.LeanCheck
 import Data.List
 import Data.Ord
-import Data.Maybe
-import System.Environment
+import System.Exit (exitFailure)
+import System.Environment (getArgs, getProgName)
 import Test.LeanCheck.Utils.Types (Nat(..))
 
-readMaybe :: Read a => String -> Maybe a
-readMaybe s  =  case readsPrec 0 s of
-                [(x,"")] -> Just x
-                _ -> Nothing
+reportTests :: String -> [Bool] -> IO ()
+reportTests s tests = do
+  case elemIndices False tests of
+    [] -> putStrLn $ s ++ ": tests passed"
+    is -> do putStrLn (s ++ ": failed tests: " ++ show is)
+             exitFailure
 
 getMaxTestsFromArgs :: Int -> IO Int
 getMaxTestsFromArgs n  =  do
   as <- getArgs
   return $ case as of
-           (s:_) -> fromMaybe n $ readMaybe s
+           (s:_) -> read s
            _     -> n
+
+mainTest :: (Int -> [Bool]) -> Int -> IO ()
+mainTest tests n' = do
+  pn <- getProgName
+  n <- getMaxTestsFromArgs n'
+  reportTests pn (tests n)
 
 -- | check if a list is ordered
 ordered :: Ord a => [a] -> Bool
diff --git a/test/derive.hs b/test/derive.hs
--- a/test/derive.hs
+++ b/test/derive.hs
@@ -1,15 +1,14 @@
--- Copyright (c) 2015-2020 Rudy Matela.
+-- Copyright (c) 2015-2024 Rudy Matela.
 -- Distributed under the 3-Clause BSD licence (see the file LICENSE).
 {-# LANGUAGE TemplateHaskell, CPP #-}
 import Test
 -- import Test.LeanCheck -- already exported by Test
 import Test.LeanCheck.Derive
-import System.Exit (exitFailure)
-import Data.List (elemIndices,sort)
 import Test.LeanCheck.Utils
+import Data.List (sort)
 
 data D0        =  D0                     deriving Show
-data D1 a      =  D1 a                   deriving Show
+newtype D1 a   =  D1 a                   deriving Show
 data D2 a b    =  D2 a b                 deriving Show
 data D3 a b c  =  D3 a b c               deriving Show
 data C1 a      =            C11 a | C10  deriving Show
@@ -37,8 +36,8 @@
 
 -- Nested datatype cascade
 data Nested  =  Nested N0 (N1 Int) (N2 Int Int)
-data N0      =  R0 Int
-data N1 a    =  R1 a
+newtype N0   =  R0 Int
+newtype N1 a =  R1 a
 data N2 a b  =  R2 a b
 deriveListableCascading ''Nested
 
@@ -75,12 +74,7 @@
 deriveListableIfNeeded ''Either
 
 main :: IO ()
-main  =  do
-  max <- getMaxTestsFromArgs 200
-  case elemIndices False (tests max) of
-    [] -> putStrLn "Tests passed!"
-    is -> do putStrLn ("Failed tests:" ++ show is)
-             exitFailure
+main  =  mainTest tests 200
 
 tests :: Int -> [Bool]
 tests n  =
diff --git a/test/diff/eg/higher-order.out b/test/diff/eg/higher-order.out
deleted file mode 100644
--- a/test/diff/eg/higher-order.out
+++ /dev/null
@@ -1,19 +0,0 @@
-*** Failed! Falsifiable (after 75 tests):
-\x _ -> case x of
-        0 -> 1
-        _ -> 0
-0
-[0,0]
-
-+++ OK, passed 200 tests.
-*** Failed! Falsifiable (after 36 tests):
-\_ -> 0
-\x -> case x of
-      0 -> True
-      _ -> False
-[1]
-
-*** Failed! Falsifiable (after 1 tests):
-(\_ -> 0) (\_ -> 0)
-*** Failed! Falsifiable (after 1 tests):
-(\_ -> 0) (0,0)
diff --git a/test/diff/eg/overflow.out b/test/diff/eg/overflow.out
deleted file mode 100644
--- a/test/diff/eg/overflow.out
+++ /dev/null
@@ -1,2 +0,0 @@
-*** Failed! Falsifiable (after 8792 tests):
-(T [] [] [] [-1] [-32768])
diff --git a/test/diff/eg/test-bool.out b/test/diff/eg/test-bool.out
deleted file mode 100644
--- a/test/diff/eg/test-bool.out
+++ /dev/null
@@ -1,25 +0,0 @@
-not . not === id
-+++ OK, passed 2 tests (exhausted).
-(&&) commutes
-+++ OK, passed 4 tests (exhausted).
-(||) commutes
-+++ OK, passed 4 tests (exhausted).
-
-All boolean operators are commutative (wrong).
-*** Failed! Falsifiable (after 10 tests):
-\x y -> case (x,y) of
-        (True,False) -> True
-        _ -> False
-False
-True
-
-
-All boolean operators are associative (wrong).
-*** Failed! Falsifiable (after 22 tests):
-\x y -> case (x,y) of
-        (True,False) -> True
-        _ -> False
-True
-False
-True
-
diff --git a/test/diff/eg/test-float.out b/test/diff/eg/test-float.out
deleted file mode 100644
--- a/test/diff/eg/test-float.out
+++ /dev/null
@@ -1,19 +0,0 @@
-*** Failed! Falsifiable (after 65 tests):
-0.33333334 1.0
-*** Failed! Falsifiable (after 65 tests):
-0.33333334 1.0
-*** Failed! Falsifiable (after 694 tests):
-1.6666666 0.33333334
-*** Failed! Falsifiable (after 475 tests):
-0.33333334 0.6
-+++ OK, passed 10000 tests.
-+++ OK, passed 10000 tests.
-+++ OK, passed 10000 tests.
-+++ OK, passed 10000 tests.
-*** Failed! Falsifiable (after 22 tests):
-0.6
-*** Failed! Falsifiable (after 1 tests):
-()
-+++ OK, passed 10000 tests.
-*** Failed! Falsifiable (after 4 tests):
-0.5
diff --git a/test/diff/eg/test-list.out b/test/diff/eg/test-list.out
deleted file mode 100644
--- a/test/diff/eg/test-list.out
+++ /dev/null
@@ -1,6 +0,0 @@
-*** Failed! Falsifiable (after 4 tests):
-[] [0,0]
-*** Failed! Falsifiable (after 1 tests):
-[]
-*** Failed! Exception '...' (after 1 tests):
-[]
diff --git a/test/diff/eg/test-sort.out b/test/diff/eg/test-sort.out
deleted file mode 100644
--- a/test/diff/eg/test-sort.out
+++ /dev/null
@@ -1,4 +0,0 @@
-+++ OK, passed 200 tests.
-*** Failed! Falsifiable (after 4 tests):
-0 [0,0]
-+++ OK, passed 200 tests.
diff --git a/test/diff/tiers-4cases-Bool-Bool-Bool-Bool.out b/test/diff/tiers-4cases-Bool-Bool-Bool-Bool.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-Bool-Bool-Bool-Bool.out
+++ /dev/null
@@ -1,267 +0,0 @@
-map length (tiers :: [[ Bool->Bool->Bool->Bool ]])  =  [256]
-
-length (list :: [ Bool->Bool->Bool->Bool ])  =  Infinity
-
-allUnique (list :: [ Bool->Bool->Bool->Bool ])  =  True
-
-ratioRepetitions (list :: [ Bool->Bool->Bool->Bool ])  =  0 % 1
-
-tiers :: [Bool->Bool->Bool->Bool]  =
-  [ [ \_ _ _ -> False
-    , \x y z -> case (x,y,z) of (True,True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (True,True,False) -> True; _ -> False
-    , \x y _ -> case (x,y) of (True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (True,False,True) -> True; _ -> False
-    , \x _ z -> case (x,z) of (True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (True,False,True) -> True; (True,True,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,_,_) -> False; (_,False,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (True,False,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (True,False,False) -> True; (True,True,True) -> True; _ -> False
-    , \x _ z -> case (x,z) of (True,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (True,_,False) -> True; (True,True,_) -> True; _ -> False
-    , \x y _ -> case (x,y) of (True,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (True,False,_) -> True; (True,_,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (True,False,_) -> True; (True,_,False) -> True; _ -> False
-    , \x _ _ -> case x of False -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,True,True) -> True; _ -> False
-    , \_ y z -> case (y,z) of (True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,True,True) -> True; (True,True,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,_,False) -> False; (_,False,_) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,True,True) -> True; (True,False,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,_) -> False; (_,_,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,True,True) -> True; (True,False,True) -> True; (True,True,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,_) -> False; (False,_,False) -> False; (_,False,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,True,True) -> True; (True,False,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (_,True,True) -> True; (True,False,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,True,True) -> True; (True,_,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,_) -> False; (False,_,False) -> False; (_,False,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,True,True) -> True; (True,False,_) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,_) -> False; (False,_,False) -> False; (_,True,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,_) -> False; (False,_,False) -> False; (True,True,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,_) -> False; (False,_,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,True,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,True,False) -> True; (True,True,True) -> True; _ -> False
-    , \_ y z -> case (y,z) of (True,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (_,True,False) -> True; (True,True,_) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,True,False) -> True; (True,False,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,True,False) -> True; (True,_,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (_,True,False) -> True; (True,False,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,_) -> False; (_,False,False) -> False; (False,_,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,True,False) -> True; (True,False,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,True,False) -> True; (True,False,False) -> True; (True,True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,_) -> False; (_,_,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,_) -> False; (False,_,True) -> False; (_,False,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,True,False) -> True; (True,False,_) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,_) -> False; (False,_,True) -> False; (True,True,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,_) -> False; (False,_,True) -> False; (_,True,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,_) -> False; (False,_,True) -> False; _ -> True
-    , \x y _ -> case (x,y) of (False,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,True,_) -> True; (_,True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,True,_) -> True; (_,True,False) -> True; _ -> False
-    , \_ y _ -> case y of False -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,True,_) -> True; (True,False,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,_) -> False; (_,False,False) -> False; (True,_,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,_) -> False; (_,False,False) -> False; (True,True,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,_) -> False; (_,False,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,True,_) -> True; (True,False,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,_) -> False; (_,False,True) -> False; (True,True,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,_) -> False; (False,_,_) -> True; (_,_,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,_) -> False; (_,False,True) -> False; _ -> True
-    , \x y _ -> case (x,y) of (False,False) -> False; (True,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,_) -> False; (True,True,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,_) -> False; (True,True,True) -> False; _ -> True
-    , \x y _ -> case (x,y) of (False,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,True) -> True; (True,True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,True) -> True; (True,True,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,True) -> True; (True,True,_) -> True; _ -> False
-    , \_ y z -> case (y,z) of (False,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (_,False,True) -> True; (True,_,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (_,False,True) -> True; (True,True,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,_,False) -> False; (_,False,False) -> False; (False,True,_) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,True) -> True; (True,False,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,True) -> True; (True,False,False) -> True; (True,True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,True) -> True; (True,_,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,_,False) -> False; (False,True,_) -> False; (True,False,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,_,False) -> False; (_,False,_) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,_,False) -> False; (False,True,_) -> False; (_,True,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,_,False) -> False; (False,True,_) -> False; (_,True,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,_,False) -> False; (False,True,_) -> False; _ -> True
-    , \x _ z -> case (x,z) of (False,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,_,True) -> True; (_,True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,_,True) -> True; (True,True,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,_,False) -> False; (_,False,False) -> False; (True,False,_) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,_,True) -> True; (_,False,True) -> True; _ -> False
-    , \_ _ z -> case z of False -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,_,False) -> False; (_,False,False) -> False; (True,True,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,_,False) -> False; (_,False,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,_,True) -> True; (True,False,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,_,False) -> False; (True,False,True) -> False; (_,True,False) -> False; _ -> True
-    , \x _ z -> case (x,z) of (False,False) -> False; (True,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,_,False) -> False; (True,False,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,_,False) -> False; (False,_,_) -> True; (_,False,_) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,_,False) -> False; (_,True,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,_,False) -> False; (True,True,True) -> False; _ -> True
-    , \x _ z -> case (x,z) of (False,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,True) -> True; (False,True,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,True) -> True; (False,True,False) -> True; (True,True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,True) -> True; (_,True,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (_,False,False) -> False; (False,True,True) -> False; (True,False,_) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (_,False,True) -> True; (False,True,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (_,False,False) -> False; (False,True,True) -> False; (True,_,False) -> False; _ -> True
-    , \_ y z -> case (y,z) of (False,False) -> False; (True,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (_,False,False) -> False; (False,True,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,True) -> True; (False,True,False) -> True; (True,False,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,False) -> False; (False,False,True) -> True; (False,True,False) -> True; (False,True,True) -> False; ...
-    , \x y z -> case (x,y,z) of (False,False,False) -> False; (False,False,_) -> True; (_,_,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,False) -> False; (False,True,True) -> False; (True,False,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,False) -> False; (_,False,_) -> True; (False,_,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,False) -> False; (False,True,True) -> False; (True,True,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,False) -> False; (_,True,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,False) -> False; (False,True,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (_,False,False) -> False; (False,_,_) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (_,False,False) -> False; (True,False,_) -> False; (True,_,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (_,False,False) -> False; (True,False,_) -> False; (True,_,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (_,False,False) -> False; (True,False,_) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (_,False,False) -> False; (False,_,_) -> True; (_,False,_) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (_,False,False) -> False; (True,_,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (_,False,False) -> False; (True,True,True) -> False; _ -> True
-    , \_ y z -> case (y,z) of (False,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,False) -> False; (False,_,_) -> True; (_,False,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,False) -> False; (True,False,True) -> False; (True,True,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,False) -> False; (True,_,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,False) -> False; (True,False,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,False) -> False; (True,True,_) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,False) -> False; (True,True,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,False) -> False; (True,True,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,False) -> True; (True,True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,False) -> True; (True,True,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,False) -> True; (True,True,_) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,False) -> True; (True,False,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,False) -> True; (True,_,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,False) -> True; (True,False,True) -> True; (True,True,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,False) -> True; (False,_,_) -> False; (_,False,False) -> False; _ -> True
-    , \_ y z -> case (y,z) of (False,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (_,False,False) -> True; (True,True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (_,False,False) -> True; (True,_,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (_,False,False) -> True; (False,_,_) -> False; (_,False,_) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (_,False,False) -> True; (True,False,_) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (_,False,False) -> True; (True,False,_) -> True; (True,_,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (_,False,False) -> True; (True,False,_) -> True; (True,_,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (_,False,False) -> True; (False,_,_) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,False) -> True; (False,True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,False) -> True; (_,True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,False) -> True; (False,True,True) -> True; (True,True,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,False) -> True; (_,False,_) -> False; (False,_,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,False) -> True; (False,True,True) -> True; (True,False,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,False) -> True; (False,False,_) -> False; (_,_,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,False) -> True; (False,False,True) -> False; (False,True,False) -> False; (False,True,True) -> True; ...
-    , \x y z -> case (x,y,z) of (False,False,True) -> False; (False,True,False) -> False; (True,False,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (_,False,False) -> True; (False,True,True) -> True; _ -> False
-    , \_ y z -> case (y,z) of (False,False) -> True; (True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (_,False,False) -> True; (False,True,True) -> True; (True,_,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (_,False,True) -> False; (False,True,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (_,False,False) -> True; (False,True,True) -> True; (True,False,_) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,True) -> False; (_,True,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,True) -> False; (False,True,False) -> False; (True,True,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,True) -> False; (False,True,False) -> False; _ -> True
-    , \x _ z -> case (x,z) of (False,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,_,False) -> True; (True,True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,_,False) -> True; (_,True,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,_,False) -> True; (False,_,_) -> False; (_,False,_) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,_,False) -> True; (True,False,True) -> True; _ -> False
-    , \x _ z -> case (x,z) of (False,False) -> True; (True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,_,False) -> True; (True,False,True) -> True; (_,True,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,_,True) -> False; (True,False,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,_,False) -> True; (_,False,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,_,False) -> True; (_,False,False) -> True; (True,True,True) -> True; _ -> False
-    , \_ _ z -> case z of False -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,_,True) -> False; (_,False,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,_,False) -> True; (_,False,False) -> True; (True,False,_) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,_,True) -> False; (True,True,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,_,True) -> False; (_,True,True) -> False; _ -> True
-    , \x _ z -> case (x,z) of (False,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,_,False) -> True; (False,True,_) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,_,False) -> True; (False,True,_) -> True; (_,True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,_,False) -> True; (False,True,_) -> True; (_,True,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,_,False) -> True; (_,False,_) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,_,False) -> True; (False,True,_) -> True; (True,False,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,True) -> False; (True,_,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,True) -> False; (True,False,False) -> False; (True,True,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,True) -> False; (True,False,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,_,False) -> True; (_,False,False) -> True; (False,True,_) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (_,False,True) -> False; (True,True,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (_,False,True) -> False; (True,_,True) -> False; _ -> True
-    , \_ y z -> case (y,z) of (False,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,True) -> False; (True,True,_) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,True) -> False; (True,True,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,True) -> False; (True,True,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,True) -> False; _ -> True
-    , \x y _ -> case (x,y) of (False,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,_) -> True; (True,True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,_) -> True; (True,True,False) -> True; _ -> False
-    , \x y _ -> case (x,y) of (False,False) -> True; (True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,_) -> True; (_,False,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,_) -> True; (False,_,_) -> False; (_,_,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,_) -> True; (_,False,True) -> True; (True,True,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,True,_) -> False; (True,False,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,_) -> True; (_,False,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,_) -> True; (_,False,False) -> True; (True,True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,_) -> True; (_,False,False) -> True; (True,_,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,True,_) -> False; (True,False,True) -> False; _ -> True
-    , \_ y _ -> case y of False -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,True,_) -> False; (_,True,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,True,_) -> False; (_,True,True) -> False; _ -> True
-    , \x y _ -> case (x,y) of (False,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,_) -> True; (False,_,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,_) -> True; (False,_,True) -> True; (_,True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,_) -> True; (False,_,True) -> True; (True,True,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,True,False) -> False; (True,False,_) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,_) -> True; (False,_,True) -> True; (_,False,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,_) -> True; (_,_,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,True,False) -> False; (True,False,False) -> False; (True,True,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,True,False) -> False; (True,False,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,_) -> True; (_,False,False) -> True; (False,_,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (_,True,False) -> False; (True,False,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,True,False) -> False; (True,_,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,True,False) -> False; (True,False,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (_,True,False) -> False; (True,True,_) -> False; _ -> True
-    , \_ y z -> case (y,z) of (True,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,True,False) -> False; (True,True,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,True,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,_) -> True; (False,_,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,_) -> True; (False,_,False) -> True; (True,True,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,False,_) -> True; (False,_,False) -> True; (_,True,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,True,True) -> False; (True,False,_) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,_) -> True; (False,_,False) -> True; (_,False,True) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,True,True) -> False; (True,_,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (_,True,True) -> False; (True,False,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,True,True) -> False; (True,False,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,_) -> True; (False,_,False) -> True; (_,False,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,True,True) -> False; (True,False,True) -> False; (True,True,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,False,_) -> True; (_,_,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,True,True) -> False; (True,False,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,_,False) -> True; (_,False,_) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (False,True,True) -> False; (True,True,False) -> False; _ -> True
-    , \_ y z -> case (y,z) of (True,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,True,True) -> False; _ -> True
-    , \x _ _ -> case x of False -> True; _ -> False
-    , \x y z -> case (x,y,z) of (True,False,_) -> False; (True,_,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (True,False,_) -> False; (True,_,True) -> False; _ -> True
-    , \x y _ -> case (x,y) of (True,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (True,_,False) -> False; (True,True,_) -> False; _ -> True
-    , \x _ z -> case (x,z) of (True,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (True,False,False) -> False; (True,True,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (True,False,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (False,_,_) -> True; (_,False,False) -> True; _ -> False
-    , \x y z -> case (x,y,z) of (True,False,True) -> False; (True,True,False) -> False; _ -> True
-    , \x _ z -> case (x,z) of (True,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (True,False,True) -> False; _ -> True
-    , \x y _ -> case (x,y) of (True,True) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (True,True,False) -> False; _ -> True
-    , \x y z -> case (x,y,z) of (True,True,True) -> False; _ -> True
-    , \_ _ _ -> True
-    ]
-  ]
diff --git a/test/diff/tiers-4cases-Bool-Bool-Bool.out b/test/diff/tiers-4cases-Bool-Bool-Bool.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-Bool-Bool-Bool.out
+++ /dev/null
@@ -1,27 +0,0 @@
-map length (tiers :: [[ Bool->Bool->Bool ]])  =  [16]
-
-length (list :: [ Bool->Bool->Bool ])  =  Infinity
-
-allUnique (list :: [ Bool->Bool->Bool ])  =  True
-
-ratioRepetitions (list :: [ Bool->Bool->Bool ])  =  0 % 1
-
-tiers :: [Bool->Bool->Bool]  =
-  [ [ \_ _ -> False
-    , \x y -> case (x,y) of (True,True) -> True; _ -> False
-    , \x y -> case (x,y) of (True,False) -> True; _ -> False
-    , \x _ -> case x of False -> False; _ -> True
-    , \x y -> case (x,y) of (False,True) -> True; _ -> False
-    , \_ y -> case y of False -> False; _ -> True
-    , \x y -> case (x,y) of (False,False) -> False; (True,True) -> False; _ -> True
-    , \x y -> case (x,y) of (False,False) -> False; _ -> True
-    , \x y -> case (x,y) of (False,False) -> True; _ -> False
-    , \x y -> case (x,y) of (False,False) -> True; (True,True) -> True; _ -> False
-    , \_ y -> case y of False -> True; _ -> False
-    , \x y -> case (x,y) of (False,True) -> False; _ -> True
-    , \x _ -> case x of False -> True; _ -> False
-    , \x y -> case (x,y) of (True,False) -> False; _ -> True
-    , \x y -> case (x,y) of (True,True) -> False; _ -> True
-    , \_ _ -> True
-    ]
-  ]
diff --git a/test/diff/tiers-4cases-Bool-Bool.out b/test/diff/tiers-4cases-Bool-Bool.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-Bool-Bool.out
+++ /dev/null
@@ -1,15 +0,0 @@
-map length (tiers :: [[ Bool->Bool ]])  =  [4]
-
-length (list :: [ Bool->Bool ])  =  4
-
-allUnique (list :: [ Bool->Bool ])  =  True
-
-ratioRepetitions (list :: [ Bool->Bool ])  =  0 % 1
-
-tiers :: [Bool->Bool]  =
-  [ [ \_ -> False
-    , \x -> case x of False -> False; True -> True
-    , \x -> case x of False -> True; True -> False
-    , \_ -> True
-    ]
-  ]
diff --git a/test/diff/tiers-4cases-Bool-Int-Bool.out b/test/diff/tiers-4cases-Bool-Int-Bool.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-Bool-Int-Bool.out
+++ /dev/null
@@ -1,157 +0,0 @@
-map length (tiers :: [[ Bool->Int->Bool ]])  =  [4,8,12,24,36,56,...]
-
-length (list :: [ Bool->Int->Bool ])  =  Infinity
-
-allUnique (list :: [ Bool->Int->Bool ])  =  True
-
-ratioRepetitions (list :: [ Bool->Int->Bool ])  =  0 % 1
-
-tiers :: [Bool->Int->Bool]  =
-  [ [ \_ _ -> False
-    , \x _ -> case x of False -> False; _ -> True
-    , \x _ -> case x of False -> True; _ -> False
-    , \_ _ -> True
-    ]
-  , [ \x y -> case (x,y) of (True,0) -> True; _ -> False
-    , \x y -> case (x,y) of (False,_) -> False; (_,0) -> False; _ -> True
-    , \x y -> case (x,y) of (False,_) -> True; (_,0) -> True; _ -> False
-    , \x y -> case (x,y) of (True,0) -> False; _ -> True
-    , \x y -> case (x,y) of (False,0) -> True; _ -> False
-    , \x y -> case (x,y) of (_,0) -> True; (False,_) -> False; _ -> True
-    , \x y -> case (x,y) of (_,0) -> False; (False,_) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> False; _ -> True
-    ]
-  , [ \x y -> case (x,y) of (True,1) -> True; _ -> False
-    , \x y -> case (x,y) of (False,_) -> False; (_,0) -> True; (_,1) -> False; _ -> True
-    , \x y -> case (x,y) of (False,_) -> True; (_,0) -> False; (_,1) -> True; _ -> False
-    , \x y -> case (x,y) of (True,1) -> False; _ -> True
-    , \_ y -> case y of 0 -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> True; (_,0) -> False; (False,_) -> False; _ -> True
-    , \x y -> case (x,y) of (False,0) -> False; (_,0) -> True; (False,_) -> True; _ -> False
-    , \_ y -> case y of 0 -> False; _ -> True
-    , \x y -> case (x,y) of (False,1) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> True; (True,1) -> True; ...
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> False; (True,1) -> False; ...
-    , \x y -> case (x,y) of (False,1) -> False; _ -> True
-    ]
-  , [ \x y -> case (x,y) of (True,0) -> True; (True,1) -> True; _ -> False
-    , \x y -> case (x,y) of (True,-1) -> True; _ -> False
-    , \x y -> case (x,y) of (False,_) -> False; (_,0) -> False; (_,1) -> False; _ -> True
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> False; (True,1) -> True; ...
-    , \x y -> case (x,y) of (False,_) -> True; (_,0) -> True; (_,1) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> True; (True,1) -> False; ...
-    , \x y -> case (x,y) of (True,0) -> False; (True,1) -> False; _ -> True
-    , \x y -> case (x,y) of (True,-1) -> False; _ -> True
-    , \x y -> case (x,y) of (False,0) -> True; (True,1) -> True; _ -> False
-    , \x y -> case (x,y) of (_,0) -> True; (False,_) -> False; (_,1) -> False; _ -> True
-    , \x y -> case (x,y) of (_,0) -> False; (False,_) -> True; (_,1) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> False; (True,1) -> False; _ -> True
-    , \x y -> case (x,y) of (True,0) -> True; (False,1) -> True; _ -> False
-    , \x y -> case (x,y) of (_,0) -> False; (_,1) -> True; (False,_) -> False; _ -> True
-    , \x y -> case (x,y) of (_,0) -> True; (_,1) -> False; (False,_) -> True; _ -> False
-    , \x y -> case (x,y) of (True,0) -> False; (False,1) -> False; _ -> True
-    , \x y -> case (x,y) of (False,0) -> True; (False,1) -> True; _ -> False
-    , \x y -> case (x,y) of (_,0) -> True; (_,1) -> True; (False,_) -> False; _ -> True
-    , \x y -> case (x,y) of (False,-1) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> False; (True,1) -> True; ...
-    , \x y -> case (x,y) of (_,0) -> False; (_,1) -> False; (False,_) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> False; (False,1) -> False; _ -> True
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> True; (True,1) -> False; ...
-    , \x y -> case (x,y) of (False,-1) -> False; _ -> True
-    ]
-  , [ \x y -> case (x,y) of (True,0) -> True; (True,-1) -> True; _ -> False
-    , \x y -> case (x,y) of (True,2) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> False; (False,1) -> False; (True,1) -> True; ...
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> False; (True,1) -> True; ...
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> True; (False,1) -> True; (True,1) -> False; ...
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> True; (True,1) -> False; ...
-    , \x y -> case (x,y) of (True,0) -> False; (True,-1) -> False; _ -> True
-    , \x y -> case (x,y) of (True,2) -> False; _ -> True
-    , \x y -> case (x,y) of (_,0) -> True; (True,1) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> True; (True,-1) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> False; (True,1) -> False; ...
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> True; (False,1) -> False; (True,1) -> True; ...
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> True; (True,1) -> True; ...
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> False; (False,1) -> True; (True,1) -> False; ...
-    , \x y -> case (x,y) of (_,0) -> False; (True,1) -> False; _ -> True
-    , \x y -> case (x,y) of (False,0) -> False; (True,-1) -> False; _ -> True
-    , \_ y -> case y of 1 -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> True; (True,1) -> False; ...
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> False; (True,1) -> True; ...
-    , \_ y -> case y of 1 -> False; _ -> True
-    , \x y -> case (x,y) of (_,0) -> True; (False,1) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> True; (True,1) -> True; ...
-    , \x y -> case (x,y) of (True,0) -> True; (False,-1) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> False; (False,1) -> False; (True,1) -> True; ...
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> False; (True,1) -> False; ...
-    , \x y -> case (x,y) of (_,0) -> False; (False,1) -> False; _ -> True
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> True; (False,1) -> True; (True,1) -> False; ...
-    , \x y -> case (x,y) of (True,0) -> False; (False,-1) -> False; _ -> True
-    , \x y -> case (x,y) of (False,0) -> True; (False,-1) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> True; (False,1) -> False; (True,1) -> True; ...
-    , \x y -> case (x,y) of (False,2) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> False; (True,1) -> True; ...
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> False; (False,1) -> True; (True,1) -> False; ...
-    , \x y -> case (x,y) of (False,0) -> False; (False,-1) -> False; _ -> True
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> True; (True,1) -> False; ...
-    , \x y -> case (x,y) of (False,2) -> False; _ -> True
-    ]
-  , [ \x y -> case (x,y) of (True,0) -> True; (True,2) -> True; _ -> False
-    , \x y -> case (x,y) of (True,1) -> True; (True,-1) -> True; _ -> False
-    , \x y -> case (x,y) of (True,-2) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> False; (False,1) -> False; (True,1) -> True; ...
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> False; (True,1) -> False; ...
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> False; (True,1) -> True; ...
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> True; (False,1) -> True; (True,1) -> False; ...
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> True; (True,1) -> True; ...
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> True; (True,1) -> False; ...
-    , \x y -> case (x,y) of (True,0) -> False; (True,2) -> False; _ -> True
-    , \x y -> case (x,y) of (True,1) -> False; (True,-1) -> False; _ -> True
-    , \x y -> case (x,y) of (True,-2) -> False; _ -> True
-    , \x y -> case (x,y) of (_,0) -> True; (True,-1) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> True; (True,2) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> False; (True,1) -> True; ...
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> True; (False,1) -> False; (True,1) -> True; ...
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> True; (True,1) -> False; ...
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> False; (False,1) -> True; (True,1) -> False; ...
-    , \x y -> case (x,y) of (_,0) -> False; (True,-1) -> False; _ -> True
-    , \x y -> case (x,y) of (False,0) -> False; (True,2) -> False; _ -> True
-    , \x y -> case (x,y) of (True,0) -> True; (_,1) -> True; _ -> False
-    , \x y -> case (x,y) of (False,1) -> True; (True,-1) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> False; (False,1) -> True; (True,1) -> False; ...
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> True; (True,1) -> True; ...
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> True; (False,1) -> False; (True,1) -> True; ...
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> False; (True,1) -> False; ...
-    , \x y -> case (x,y) of (True,0) -> False; (_,1) -> False; _ -> True
-    , \x y -> case (x,y) of (False,1) -> False; (True,-1) -> False; _ -> True
-    , \x y -> case (x,y) of (False,0) -> True; (_,1) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> True; (False,1) -> True; (True,1) -> False; ...
-    , \x y -> case (x,y) of (True,1) -> True; (False,-1) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> False; (True,1) -> False; ...
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> False; (False,1) -> False; (True,1) -> True; ...
-    , \x y -> case (x,y) of (False,0) -> False; (_,1) -> False; _ -> True
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> True; (True,1) -> True; ...
-    , \x y -> case (x,y) of (True,1) -> False; (False,-1) -> False; _ -> True
-    , \x y -> case (x,y) of (_,0) -> True; (False,-1) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> False; (True,1) -> True; ...
-    , \x y -> case (x,y) of (True,0) -> True; (False,2) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> False; (False,1) -> False; (True,1) -> True; ...
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> True; (True,1) -> False; ...
-    , \x y -> case (x,y) of (_,0) -> False; (False,-1) -> False; _ -> True
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> True; (False,1) -> True; (True,1) -> False; ...
-    , \x y -> case (x,y) of (True,0) -> False; (False,2) -> False; _ -> True
-    , \x y -> case (x,y) of (False,0) -> True; (False,2) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> True; (False,1) -> False; (True,1) -> True; ...
-    , \x y -> case (x,y) of (False,1) -> True; (False,-1) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> True; (True,1) -> True; ...
-    , \x y -> case (x,y) of (False,-2) -> True; _ -> False
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> True; (False,1) -> False; (True,1) -> True; ...
-    , \x y -> case (x,y) of (False,0) -> False; (True,0) -> False; (False,1) -> True; (True,1) -> False; ...
-    , \x y -> case (x,y) of (False,0) -> False; (False,2) -> False; _ -> True
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> False; (True,1) -> False; ...
-    , \x y -> case (x,y) of (False,1) -> False; (False,-1) -> False; _ -> True
-    , \x y -> case (x,y) of (False,0) -> True; (True,0) -> False; (False,1) -> True; (True,1) -> False; ...
-    , \x y -> case (x,y) of (False,-2) -> False; _ -> True
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-4cases-Bool-MBool.out b/test/diff/tiers-4cases-Bool-MBool.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-Bool-MBool.out
+++ /dev/null
@@ -1,21 +0,0 @@
-map length (tiers :: [[ Bool->Maybe Bool ]])  =  [1,4,4]
-
-length (list :: [ Bool->Maybe Bool ])  =  9
-
-allUnique (list :: [ Bool->Maybe Bool ])  =  True
-
-ratioRepetitions (list :: [ Bool->Maybe Bool ])  =  0 % 1
-
-tiers :: [Bool->Maybe Bool]  =
-  [ [\_ -> Nothing]
-  , [ \x -> case x of False -> Nothing; True -> Just False
-    , \x -> case x of False -> Nothing; True -> Just True
-    , \x -> case x of False -> Just False; True -> Nothing
-    , \x -> case x of False -> Just True; True -> Nothing
-    ]
-  , [ \_ -> Just False
-    , \x -> case x of False -> Just False; True -> Just True
-    , \x -> case x of False -> Just True; True -> Just False
-    , \_ -> Just True
-    ]
-  ]
diff --git a/test/diff/tiers-4cases-Bool-U.out b/test/diff/tiers-4cases-Bool-U.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-Bool-U.out
+++ /dev/null
@@ -1,10 +0,0 @@
-map length (tiers :: [[ Bool->() ]])  =  [1]
-
-length (list :: [ Bool->() ])  =  1
-
-allUnique (list :: [ Bool->() ])  =  True
-
-ratioRepetitions (list :: [ Bool->() ])  =  0 % 1
-
-tiers :: [Bool->()]  =
-  [[\_ -> ()]]
diff --git a/test/diff/tiers-4cases-Bools-Bools.out b/test/diff/tiers-4cases-Bools-Bools.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-Bools-Bools.out
+++ /dev/null
@@ -1,140 +0,0 @@
-map length (tiers :: [[ [Bool]->[Bool] ]])  =  [1,2,8,26,88,...]
-
-length (list :: [ [Bool]->[Bool] ])  =  Infinity
-
-allUnique (list :: [ [Bool]->[Bool] ])  =  True
-
-ratioRepetitions (list :: [ [Bool]->[Bool] ])  =  0 % 1
-
-tiers :: [[Bool]->[Bool]]  =
-  [ [\_ -> []]
-  , [ \_ -> [False]
-    , \_ -> [True]
-    ]
-  , [ \x -> case x of [] -> [False]; _ -> []
-    , \x -> case x of [] -> [True]; _ -> []
-    , \x -> case x of [] -> []; _ -> [False]
-    , \x -> case x of [] -> []; _ -> [True]
-    , \_ -> [False,False]
-    , \_ -> [False,True]
-    , \_ -> [True,False]
-    , \_ -> [True,True]
-    ]
-  , [ \x -> case x of [] -> [False,False]; _ -> []
-    , \x -> case x of [] -> [False,True]; _ -> []
-    , \x -> case x of [] -> [True,False]; _ -> []
-    , \x -> case x of [] -> [True,True]; _ -> []
-    , \x -> case x of [False] -> [False]; _ -> []
-    , \x -> case x of [False] -> [True]; _ -> []
-    , \x -> case x of [True] -> [False]; _ -> []
-    , \x -> case x of [True] -> [True]; _ -> []
-    , \x -> case x of [] -> [True]; _ -> [False]
-    , \x -> case x of [False] -> []; _ -> [False]
-    , \x -> case x of [True] -> []; _ -> [False]
-    , \x -> case x of [] -> [False]; _ -> [True]
-    , \x -> case x of [False] -> []; _ -> [True]
-    , \x -> case x of [True] -> []; _ -> [True]
-    , \x -> case x of [] -> []; _ -> [False,False]
-    , \x -> case x of [] -> []; _ -> [False,True]
-    , \x -> case x of [] -> []; _ -> [True,False]
-    , \x -> case x of [] -> []; _ -> [True,True]
-    , \_ -> [False,False,False]
-    , \_ -> [False,False,True]
-    , \_ -> [False,True,False]
-    , \_ -> [False,True,True]
-    , \_ -> [True,False,False]
-    , \_ -> [True,False,True]
-    , \_ -> [True,True,False]
-    , \_ -> [True,True,True]
-    ]
-  , [ \x -> case x of [] -> [False,False,False]; _ -> []
-    , \x -> case x of [] -> [False,False,True]; _ -> []
-    , \x -> case x of [] -> [False,True,False]; _ -> []
-    , \x -> case x of [] -> [False,True,True]; _ -> []
-    , \x -> case x of [] -> [True,False,False]; _ -> []
-    , \x -> case x of [] -> [True,False,True]; _ -> []
-    , \x -> case x of [] -> [True,True,False]; _ -> []
-    , \x -> case x of [] -> [True,True,True]; _ -> []
-    , \x -> case x of [False] -> [False,False]; _ -> []
-    , \x -> case x of [False] -> [False,True]; _ -> []
-    , \x -> case x of [False] -> [True,False]; _ -> []
-    , \x -> case x of [False] -> [True,True]; _ -> []
-    , \x -> case x of [True] -> [False,False]; _ -> []
-    , \x -> case x of [True] -> [False,True]; _ -> []
-    , \x -> case x of [True] -> [True,False]; _ -> []
-    , \x -> case x of [True] -> [True,True]; _ -> []
-    , \x -> case x of [False,False] -> [False]; _ -> []
-    , \x -> case x of [False,False] -> [True]; _ -> []
-    , \x -> case x of [False,True] -> [False]; _ -> []
-    , \x -> case x of [False,True] -> [True]; _ -> []
-    , \x -> case x of [True,False] -> [False]; _ -> []
-    , \x -> case x of [True,False] -> [True]; _ -> []
-    , \x -> case x of [True,True] -> [False]; _ -> []
-    , \x -> case x of [True,True] -> [True]; _ -> []
-    , \x -> case x of [] -> [False,False]; _ -> [False]
-    , \x -> case x of [] -> [False,True]; _ -> [False]
-    , \x -> case x of [] -> [True,False]; _ -> [False]
-    , \x -> case x of [] -> [True,True]; _ -> [False]
-    , \x -> case x of [False] -> [True]; _ -> [False]
-    , \x -> case x of [True] -> [True]; _ -> [False]
-    , \x -> case x of [] -> []; [False] -> []; _ -> [False]
-    , \x -> case x of [] -> []; [True] -> []; _ -> [False]
-    , \x -> case x of [False,False] -> []; _ -> [False]
-    , \x -> case x of [False,True] -> []; _ -> [False]
-    , \x -> case x of [True,False] -> []; _ -> [False]
-    , \x -> case x of [True,True] -> []; _ -> [False]
-    , \x -> case x of [] -> [False,False]; _ -> [True]
-    , \x -> case x of [] -> [False,True]; _ -> [True]
-    , \x -> case x of [] -> [True,False]; _ -> [True]
-    , \x -> case x of [] -> [True,True]; _ -> [True]
-    , \x -> case x of [False] -> [False]; _ -> [True]
-    , \x -> case x of [True] -> [False]; _ -> [True]
-    , \x -> case x of [] -> []; [False] -> []; _ -> [True]
-    , \x -> case x of [] -> []; [True] -> []; _ -> [True]
-    , \x -> case x of [False,False] -> []; _ -> [True]
-    , \x -> case x of [False,True] -> []; _ -> [True]
-    , \x -> case x of [True,False] -> []; _ -> [True]
-    , \x -> case x of [True,True] -> []; _ -> [True]
-    , \x -> case x of [] -> [False]; _ -> [False,False]
-    , \x -> case x of [] -> [True]; _ -> [False,False]
-    , \x -> case x of [False] -> []; _ -> [False,False]
-    , \x -> case x of [True] -> []; _ -> [False,False]
-    , \x -> case x of [] -> [False]; _ -> [False,True]
-    , \x -> case x of [] -> [True]; _ -> [False,True]
-    , \x -> case x of [False] -> []; _ -> [False,True]
-    , \x -> case x of [True] -> []; _ -> [False,True]
-    , \x -> case x of [] -> [False]; _ -> [True,False]
-    , \x -> case x of [] -> [True]; _ -> [True,False]
-    , \x -> case x of [False] -> []; _ -> [True,False]
-    , \x -> case x of [True] -> []; _ -> [True,False]
-    , \x -> case x of [] -> [False]; _ -> [True,True]
-    , \x -> case x of [] -> [True]; _ -> [True,True]
-    , \x -> case x of [False] -> []; _ -> [True,True]
-    , \x -> case x of [True] -> []; _ -> [True,True]
-    , \x -> case x of [] -> []; _ -> [False,False,False]
-    , \x -> case x of [] -> []; _ -> [False,False,True]
-    , \x -> case x of [] -> []; _ -> [False,True,False]
-    , \x -> case x of [] -> []; _ -> [False,True,True]
-    , \x -> case x of [] -> []; _ -> [True,False,False]
-    , \x -> case x of [] -> []; _ -> [True,False,True]
-    , \x -> case x of [] -> []; _ -> [True,True,False]
-    , \x -> case x of [] -> []; _ -> [True,True,True]
-    , \_ -> [False,False,False,False]
-    , \_ -> [False,False,False,True]
-    , \_ -> [False,False,True,False]
-    , \_ -> [False,False,True,True]
-    , \_ -> [False,True,False,False]
-    , \_ -> [False,True,False,True]
-    , \_ -> [False,True,True,False]
-    , \_ -> [False,True,True,True]
-    , \_ -> [True,False,False,False]
-    , \_ -> [True,False,False,True]
-    , \_ -> [True,False,True,False]
-    , \_ -> [True,False,True,True]
-    , \_ -> [True,True,False,False]
-    , \_ -> [True,True,False,True]
-    , \_ -> [True,True,True,False]
-    , \_ -> [True,True,True,True]
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-4cases-Int-Bool-Bool.out b/test/diff/tiers-4cases-Int-Bool-Bool.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-Int-Bool-Bool.out
+++ /dev/null
@@ -1,225 +0,0 @@
-map length (tiers :: [[ Int->Bool->Bool ]])  =  [4,12,12,48,48,84,...]
-
-length (list :: [ Int->Bool->Bool ])  =  Infinity
-
-allUnique (list :: [ Int->Bool->Bool ])  =  True
-
-ratioRepetitions (list :: [ Int->Bool->Bool ])  =  0 % 1
-
-tiers :: [Int->Bool->Bool]  =
-  [ [ \_ _ -> False
-    , \_ y -> case y of False -> False; _ -> True
-    , \_ y -> case y of False -> True; _ -> False
-    , \_ _ -> True
-    ]
-  , [ \x y -> case (x,y) of (0,True) -> True; _ -> False
-    , \x y -> case (x,y) of (0,False) -> True; _ -> False
-    , \x _ -> case x of 0 -> True; _ -> False
-    , \x y -> case (x,y) of (0,_) -> False; (_,False) -> False; _ -> True
-    , \x y -> case (x,y) of (0,False) -> True; (0,_) -> False; (_,False) -> False; _ -> True
-    , \x y -> case (x,y) of (0,_) -> True; (_,False) -> False; _ -> True
-    , \x y -> case (x,y) of (0,_) -> False; (_,False) -> True; _ -> False
-    , \x y -> case (x,y) of (0,False) -> False; (0,_) -> True; (_,False) -> True; _ -> False
-    , \x y -> case (x,y) of (0,_) -> True; (_,False) -> True; _ -> False
-    , \x _ -> case x of 0 -> False; _ -> True
-    , \x y -> case (x,y) of (0,False) -> False; _ -> True
-    , \x y -> case (x,y) of (0,True) -> False; _ -> True
-    ]
-  , [ \x y -> case (x,y) of (1,True) -> True; _ -> False
-    , \x y -> case (x,y) of (1,False) -> True; _ -> False
-    , \x _ -> case x of 1 -> True; _ -> False
-    , \x y -> case (x,y) of (_,False) -> False; (0,_) -> True; (1,_) -> False; _ -> True
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (_,False) -> True; (0,_) -> False; (1,_) -> True; _ -> False
-    , \x _ -> case x of 1 -> False; _ -> True
-    , \x y -> case (x,y) of (1,False) -> False; _ -> True
-    , \x y -> case (x,y) of (1,True) -> False; _ -> True
-    ]
-  , [ \x y -> case (x,y) of (0,True) -> True; (1,True) -> True; _ -> False
-    , \x y -> case (x,y) of (0,True) -> True; (1,False) -> True; _ -> False
-    , \x y -> case (x,y) of (0,True) -> True; (1,_) -> True; _ -> False
-    , \x y -> case (x,y) of (0,False) -> True; (1,True) -> True; _ -> False
-    , \x y -> case (x,y) of (0,False) -> True; (1,False) -> True; _ -> False
-    , \x y -> case (x,y) of (0,False) -> True; (1,_) -> True; _ -> False
-    , \x y -> case (x,y) of (0,_) -> True; (1,True) -> True; _ -> False
-    , \x y -> case (x,y) of (0,_) -> True; (1,False) -> True; _ -> False
-    , \x _ -> case x of 0 -> True; 1 -> True; _ -> False
-    , \x y -> case (x,y) of (-1,True) -> True; _ -> False
-    , \x y -> case (x,y) of (-1,False) -> True; _ -> False
-    , \x _ -> case x of -1 -> True; _ -> False
-    , \x y -> case (x,y) of (0,_) -> False; (_,False) -> False; (1,_) -> False; _ -> True
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,_) -> False; (1,_) -> True; (_,False) -> False; _ -> True
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,_) -> True; (1,_) -> False; (_,False) -> False; _ -> True
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,_) -> True; (1,_) -> True; (_,False) -> False; _ -> True
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,_) -> False; (1,_) -> False; (_,False) -> True; _ -> False
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,_) -> False; (1,_) -> True; (_,False) -> True; _ -> False
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,_) -> True; (1,_) -> False; (_,False) -> True; _ -> False
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,_) -> True; (_,False) -> True; (1,_) -> True; _ -> False
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
-    , \x _ -> case x of 0 -> False; 1 -> False; _ -> True
-    , \x y -> case (x,y) of (0,_) -> False; (1,False) -> False; _ -> True
-    , \x y -> case (x,y) of (0,_) -> False; (1,True) -> False; _ -> True
-    , \x y -> case (x,y) of (0,False) -> False; (1,_) -> False; _ -> True
-    , \x y -> case (x,y) of (0,False) -> False; (1,False) -> False; _ -> True
-    , \x y -> case (x,y) of (0,False) -> False; (1,True) -> False; _ -> True
-    , \x y -> case (x,y) of (0,True) -> False; (1,_) -> False; _ -> True
-    , \x y -> case (x,y) of (0,True) -> False; (1,False) -> False; _ -> True
-    , \x y -> case (x,y) of (0,True) -> False; (1,True) -> False; _ -> True
-    , \x _ -> case x of -1 -> False; _ -> True
-    , \x y -> case (x,y) of (-1,False) -> False; _ -> True
-    , \x y -> case (x,y) of (-1,True) -> False; _ -> True
-    ]
-  , [ \x y -> case (x,y) of (0,True) -> True; (-1,True) -> True; _ -> False
-    , \x y -> case (x,y) of (0,True) -> True; (-1,False) -> True; _ -> False
-    , \x y -> case (x,y) of (0,True) -> True; (-1,_) -> True; _ -> False
-    , \x y -> case (x,y) of (0,False) -> True; (-1,True) -> True; _ -> False
-    , \x y -> case (x,y) of (0,False) -> True; (-1,False) -> True; _ -> False
-    , \x y -> case (x,y) of (0,False) -> True; (-1,_) -> True; _ -> False
-    , \x y -> case (x,y) of (0,_) -> True; (-1,True) -> True; _ -> False
-    , \x y -> case (x,y) of (0,_) -> True; (-1,False) -> True; _ -> False
-    , \x _ -> case x of 0 -> True; -1 -> True; _ -> False
-    , \x y -> case (x,y) of (2,True) -> True; _ -> False
-    , \x y -> case (x,y) of (2,False) -> True; _ -> False
-    , \x _ -> case x of 2 -> True; _ -> False
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
-    , \x _ -> case x of 0 -> False; -1 -> False; _ -> True
-    , \x y -> case (x,y) of (0,_) -> False; (-1,False) -> False; _ -> True
-    , \x y -> case (x,y) of (0,_) -> False; (-1,True) -> False; _ -> True
-    , \x y -> case (x,y) of (0,False) -> False; (-1,_) -> False; _ -> True
-    , \x y -> case (x,y) of (0,False) -> False; (-1,False) -> False; _ -> True
-    , \x y -> case (x,y) of (0,False) -> False; (-1,True) -> False; _ -> True
-    , \x y -> case (x,y) of (0,True) -> False; (-1,_) -> False; _ -> True
-    , \x y -> case (x,y) of (0,True) -> False; (-1,False) -> False; _ -> True
-    , \x y -> case (x,y) of (0,True) -> False; (-1,True) -> False; _ -> True
-    , \x _ -> case x of 2 -> False; _ -> True
-    , \x y -> case (x,y) of (2,False) -> False; _ -> True
-    , \x y -> case (x,y) of (2,True) -> False; _ -> True
-    ]
-  , [ \x y -> case (x,y) of (0,True) -> True; (2,True) -> True; _ -> False
-    , \x y -> case (x,y) of (0,True) -> True; (2,False) -> True; _ -> False
-    , \x y -> case (x,y) of (0,True) -> True; (2,_) -> True; _ -> False
-    , \x y -> case (x,y) of (0,False) -> True; (2,True) -> True; _ -> False
-    , \x y -> case (x,y) of (0,False) -> True; (2,False) -> True; _ -> False
-    , \x y -> case (x,y) of (0,False) -> True; (2,_) -> True; _ -> False
-    , \x y -> case (x,y) of (0,_) -> True; (2,True) -> True; _ -> False
-    , \x y -> case (x,y) of (0,_) -> True; (2,False) -> True; _ -> False
-    , \x _ -> case x of 0 -> True; 2 -> True; _ -> False
-    , \x y -> case (x,y) of (1,True) -> True; (-1,True) -> True; _ -> False
-    , \x y -> case (x,y) of (1,True) -> True; (-1,False) -> True; _ -> False
-    , \x y -> case (x,y) of (1,True) -> True; (-1,_) -> True; _ -> False
-    , \x y -> case (x,y) of (1,False) -> True; (-1,True) -> True; _ -> False
-    , \x y -> case (x,y) of (1,False) -> True; (-1,False) -> True; _ -> False
-    , \x y -> case (x,y) of (1,False) -> True; (-1,_) -> True; _ -> False
-    , \x y -> case (x,y) of (1,_) -> True; (-1,True) -> True; _ -> False
-    , \x y -> case (x,y) of (1,_) -> True; (-1,False) -> True; _ -> False
-    , \x _ -> case x of 1 -> True; -1 -> True; _ -> False
-    , \x y -> case (x,y) of (-2,True) -> True; _ -> False
-    , \x y -> case (x,y) of (-2,False) -> True; _ -> False
-    , \x _ -> case x of -2 -> True; _ -> False
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> False; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> True; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> False; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> True; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
-    , \x y -> case (x,y) of (0,False) -> True; (0,True) -> False; (1,False) -> True; (1,True) -> False; ...
-    , \x _ -> case x of 0 -> False; 2 -> False; _ -> True
-    , \x y -> case (x,y) of (0,_) -> False; (2,False) -> False; _ -> True
-    , \x y -> case (x,y) of (0,_) -> False; (2,True) -> False; _ -> True
-    , \x y -> case (x,y) of (0,False) -> False; (2,_) -> False; _ -> True
-    , \x y -> case (x,y) of (0,False) -> False; (2,False) -> False; _ -> True
-    , \x y -> case (x,y) of (0,False) -> False; (2,True) -> False; _ -> True
-    , \x y -> case (x,y) of (0,True) -> False; (2,_) -> False; _ -> True
-    , \x y -> case (x,y) of (0,True) -> False; (2,False) -> False; _ -> True
-    , \x y -> case (x,y) of (0,True) -> False; (2,True) -> False; _ -> True
-    , \x _ -> case x of 1 -> False; -1 -> False; _ -> True
-    , \x y -> case (x,y) of (1,_) -> False; (-1,False) -> False; _ -> True
-    , \x y -> case (x,y) of (1,_) -> False; (-1,True) -> False; _ -> True
-    , \x y -> case (x,y) of (1,False) -> False; (-1,_) -> False; _ -> True
-    , \x y -> case (x,y) of (1,False) -> False; (-1,False) -> False; _ -> True
-    , \x y -> case (x,y) of (1,False) -> False; (-1,True) -> False; _ -> True
-    , \x y -> case (x,y) of (1,True) -> False; (-1,_) -> False; _ -> True
-    , \x y -> case (x,y) of (1,True) -> False; (-1,False) -> False; _ -> True
-    , \x y -> case (x,y) of (1,True) -> False; (-1,True) -> False; _ -> True
-    , \x _ -> case x of -2 -> False; _ -> True
-    , \x y -> case (x,y) of (-2,False) -> False; _ -> True
-    , \x y -> case (x,y) of (-2,True) -> False; _ -> True
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-4cases-Int-Int-Int-Int.out b/test/diff/tiers-4cases-Int-Int-Int-Int.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-Int-Int-Int-Int.out
+++ /dev/null
@@ -1,47 +0,0 @@
-map length (tiers :: [[ Int->Int->Int->Int ]])  =  [1,1,7,25,...]
-
-length (list :: [ Int->Int->Int->Int ])  =  Infinity
-
-allUnique (list :: [ Int->Int->Int->Int ])  =  True
-
-ratioRepetitions (list :: [ Int->Int->Int->Int ])  =  0 % 1
-
-tiers :: [Int->Int->Int->Int]  =
-  [ [\_ _ _ -> 0]
-  , [\_ _ _ -> 1]
-  , [ \x _ _ -> case x of 0 -> 1; _ -> 0
-    , \x _ _ -> case x of 0 -> 0; _ -> 1
-    , \_ y _ -> case y of 0 -> 1; _ -> 0
-    , \_ y _ -> case y of 0 -> 0; _ -> 1
-    , \_ _ z -> case z of 0 -> 1; _ -> 0
-    , \_ _ z -> case z of 0 -> 0; _ -> 1
-    , \_ _ _ -> -1
-    ]
-  , [ \x y _ -> case (x,y) of (0,0) -> 1; _ -> 0
-    , \x y _ -> case (x,y) of (_,0) -> 0; (0,_) -> 1; _ -> 0
-    , \x _ z -> case (x,z) of (0,0) -> 1; _ -> 0
-    , \x _ z -> case (x,z) of (_,0) -> 0; (0,_) -> 1; _ -> 0
-    , \x _ _ -> case x of 0 -> -1; _ -> 0
-    , \x _ _ -> case x of 1 -> 1; _ -> 0
-    , \x _ _ -> case x of 1 -> 0; _ -> 1
-    , \x y _ -> case (x,y) of (0,_) -> 0; (_,0) -> 1; _ -> 0
-    , \x y _ -> case (x,y) of (0,_) -> 0; (_,0) -> 0; _ -> 1
-    , \x _ z -> case (x,z) of (0,_) -> 0; (_,0) -> 1; _ -> 0
-    , \x _ z -> case (x,z) of (0,_) -> 0; (_,0) -> 0; _ -> 1
-    , \x _ _ -> case x of 0 -> 0; _ -> -1
-    , \_ y z -> case (y,z) of (0,0) -> 1; _ -> 0
-    , \_ y z -> case (y,z) of (_,0) -> 0; (0,_) -> 1; _ -> 0
-    , \_ y _ -> case y of 0 -> -1; _ -> 0
-    , \_ y _ -> case y of 1 -> 1; _ -> 0
-    , \_ y _ -> case y of 1 -> 0; _ -> 1
-    , \_ y z -> case (y,z) of (0,_) -> 0; (_,0) -> 1; _ -> 0
-    , \_ y z -> case (y,z) of (0,_) -> 0; (_,0) -> 0; _ -> 1
-    , \_ y _ -> case y of 0 -> 0; _ -> -1
-    , \_ _ z -> case z of 0 -> -1; _ -> 0
-    , \_ _ z -> case z of 1 -> 1; _ -> 0
-    , \_ _ z -> case z of 1 -> 0; _ -> 1
-    , \_ _ z -> case z of 0 -> 0; _ -> -1
-    , \_ _ _ -> 2
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-4cases-Int-Int-Int.out b/test/diff/tiers-4cases-Int-Int-Int.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-Int-Int-Int.out
+++ /dev/null
@@ -1,151 +0,0 @@
-map length (tiers :: [[ Int->Int->Int ]])  =  [1,1,5,13,35,81,...]
-
-length (list :: [ Int->Int->Int ])  =  Infinity
-
-allUnique (list :: [ Int->Int->Int ])  =  True
-
-ratioRepetitions (list :: [ Int->Int->Int ])  =  0 % 1
-
-tiers :: [Int->Int->Int]  =
-  [ [\_ _ -> 0]
-  , [\_ _ -> 1]
-  , [ \x _ -> case x of 0 -> 1; _ -> 0
-    , \x _ -> case x of 0 -> 0; _ -> 1
-    , \_ y -> case y of 0 -> 1; _ -> 0
-    , \_ y -> case y of 0 -> 0; _ -> 1
-    , \_ _ -> -1
-    ]
-  , [ \x y -> case (x,y) of (0,0) -> 1; _ -> 0
-    , \x y -> case (x,y) of (_,0) -> 0; (0,_) -> 1; _ -> 0
-    , \x _ -> case x of 0 -> -1; _ -> 0
-    , \x _ -> case x of 1 -> 1; _ -> 0
-    , \x _ -> case x of 1 -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; _ -> 1
-    , \x _ -> case x of 0 -> 0; _ -> -1
-    , \_ y -> case y of 0 -> -1; _ -> 0
-    , \_ y -> case y of 1 -> 1; _ -> 0
-    , \_ y -> case y of 1 -> 0; _ -> 1
-    , \_ y -> case y of 0 -> 0; _ -> -1
-    , \_ _ -> 2
-    ]
-  , [ \x y -> case (x,y) of (0,0) -> -1; _ -> 0
-    , \x y -> case (x,y) of (0,1) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,0) -> 1; (0,1) -> 0; (1,0) -> 0; (0,-1) -> 1; ...
-    , \x y -> case (x,y) of (_,0) -> 0; (0,_) -> -1; _ -> 0
-    , \x _ -> case x of 0 -> 2; _ -> 0
-    , \x y -> case (x,y) of (1,0) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (1,_) -> 1; _ -> 0
-    , \x _ -> case x of 1 -> -1; _ -> 0
-    , \x _ -> case x of -1 -> 1; _ -> 0
-    , \x y -> case (x,y) of (_,0) -> 1; (0,_) -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,0) -> 0; _ -> 1
-    , \x _ -> case x of 0 -> -1; _ -> 1
-    , \x _ -> case x of 0 -> 0; 1 -> 0; _ -> 1
-    , \x _ -> case x of -1 -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,0) -> 1; (0,1) -> 0; (1,0) -> 0; (0,-1) -> 0; ...
-    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 0; _ -> 1
-    , \x y -> case (x,y) of (_,0) -> 0; (0,_) -> 1; (1,_) -> 0; _ -> 1
-    , \x _ -> case x of 0 -> 1; _ -> -1
-    , \x _ -> case x of 1 -> 0; _ -> -1
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> -1; _ -> 0
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (_,1) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 1; (_,1) -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; _ -> -1
-    , \x _ -> case x of 0 -> 0; _ -> 2
-    , \_ y -> case y of 0 -> 2; _ -> 0
-    , \_ y -> case y of 1 -> -1; _ -> 0
-    , \_ y -> case y of -1 -> 1; _ -> 0
-    , \_ y -> case y of 0 -> -1; _ -> 1
-    , \_ y -> case y of 0 -> 0; 1 -> 0; _ -> 1
-    , \_ y -> case y of -1 -> 0; _ -> 1
-    , \_ y -> case y of 0 -> 1; _ -> -1
-    , \_ y -> case y of 1 -> 0; _ -> -1
-    , \_ y -> case y of 0 -> 0; _ -> 2
-    , \_ _ -> -2
-    ]
-  , [ \x y -> case (x,y) of (0,0) -> 2; _ -> 0
-    , \x y -> case (x,y) of (0,1) -> -1; _ -> 0
-    , \x y -> case (x,y) of (0,-1) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,0) -> -1; (0,_) -> 1; _ -> 0
-    , \x y -> case (x,y) of (_,0) -> 0; (_,1) -> 0; (0,_) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,0) -> 1; (0,1) -> 1; (1,0) -> 0; (0,-1) -> 0; ...
-    , \x y -> case (x,y) of (0,0) -> 1; (0,_) -> -1; _ -> 0
-    , \x y -> case (x,y) of (0,0) -> -1; (0,1) -> 0; (1,0) -> 0; (0,-1) -> -1; ...
-    , \x y -> case (x,y) of (_,0) -> 0; (0,_) -> 2; _ -> 0
-    , \x _ -> case x of 0 -> -2; _ -> 0
-    , \x y -> case (x,y) of (1,0) -> -1; _ -> 0
-    , \x y -> case (x,y) of (1,1) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,0) -> 0; (0,1) -> 0; (1,0) -> 1; (0,-1) -> 0; ...
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (1,_) -> -1; _ -> 0
-    , \x _ -> case x of 1 -> 2; _ -> 0
-    , \x _ -> case x of 0 -> 1; 1 -> 1; _ -> 0
-    , \x y -> case (x,y) of (-1,0) -> 1; _ -> 0
-    , \x y -> case (x,y) of (-1,1) -> 1; (-1,-1) -> 1; _ -> 0
-    , \x _ -> case x of -1 -> -1; _ -> 0
-    , \x _ -> case x of 2 -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,0) -> -1; (0,_) -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,0) -> 0; (0,1) -> 1; (1,0) -> 1; (0,-1) -> 0; ...
-    , \x y -> case (x,y) of (0,1) -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,0) -> 0; (0,_) -> -1; _ -> 1
-    , \x _ -> case x of 0 -> 2; _ -> 1
-    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 1; (1,_) -> 0; _ -> 1
-    , \x y -> case (x,y) of (1,0) -> 0; _ -> 1
-    , \x _ -> case x of 1 -> -1; _ -> 1
-    , \x _ -> case x of 0 -> 0; 1 -> 1; -1 -> 0; _ -> 1
-    , \x _ -> case x of 2 -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,0) -> 0; (0,_) -> 1; (_,0) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,_) -> -1; (_,0) -> 1; _ -> 0
-    , \x y -> case (x,y) of (_,0) -> 1; (0,_) -> 0; (1,_) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,_) -> 0; (1,_) -> 0; (_,0) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,0) -> 1; (0,1) -> 0; (1,0) -> 1; (0,-1) -> 0; ...
-    , \x y -> case (x,y) of (0,0) -> 1; (0,_) -> 0; (_,0) -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,_) -> -1; (_,0) -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,0) -> 0; (0,1) -> 1; (1,0) -> 1; (0,-1) -> 1; ...
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (1,_) -> 0; _ -> 1
-    , \x y -> case (x,y) of (_,0) -> 0; (-1,_) -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,0) -> 1; (0,_) -> 0; _ -> -1
-    , \x y -> case (x,y) of (0,0) -> 0; (0,_) -> 1; _ -> -1
-    , \x _ -> case x of 1 -> 1; _ -> -1
-    , \x _ -> case x of 0 -> 0; 1 -> 0; _ -> -1
-    , \x _ -> case x of -1 -> 0; _ -> -1
-    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> -1; _ -> 0
-    , \x y -> case (x,y) of (0,0) -> -1; (0,1) -> 0; (1,0) -> 0; (0,-1) -> 0; ...
-    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 0; (_,1) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,1) -> 1; (-1,1) -> 1; (2,1) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 1; (_,1) -> 0; _ -> 1
-    , \x y -> case (x,y) of (_,1) -> 0; (1,_) -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 0; _ -> -1
-    , \x y -> case (x,y) of (_,0) -> 0; (0,_) -> -1; (1,_) -> 0; _ -> -1
-    , \x _ -> case x of 0 -> 1; _ -> 2
-    , \x _ -> case x of 1 -> 0; _ -> 2
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 2; _ -> 0
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (_,1) -> -1; _ -> 0
-    , \x y -> case (x,y) of (1,-1) -> 1; (-1,-1) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> -1; _ -> 1
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (_,1) -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,_) -> 0; (_,-1) -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 1; _ -> -1
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> -1; (_,1) -> 0; _ -> -1
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; _ -> 2
-    , \x _ -> case x of 0 -> 0; _ -> -2
-    , \_ y -> case y of 0 -> -2; _ -> 0
-    , \_ y -> case y of 1 -> 2; _ -> 0
-    , \_ y -> case y of 0 -> 1; 1 -> 1; _ -> 0
-    , \_ y -> case y of -1 -> -1; _ -> 0
-    , \_ y -> case y of 2 -> 1; _ -> 0
-    , \_ y -> case y of 0 -> 2; _ -> 1
-    , \_ y -> case y of 1 -> -1; _ -> 1
-    , \_ y -> case y of 0 -> 0; -1 -> 0; _ -> 1
-    , \_ y -> case y of 2 -> 0; _ -> 1
-    , \_ y -> case y of 1 -> 1; _ -> -1
-    , \_ y -> case y of 0 -> 0; 1 -> 0; _ -> -1
-    , \_ y -> case y of -1 -> 0; _ -> -1
-    , \_ y -> case y of 0 -> 1; _ -> 2
-    , \_ y -> case y of 1 -> 0; _ -> 2
-    , \_ y -> case y of 0 -> 0; _ -> -2
-    , \_ _ -> 3
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-4cases-Int-Int.out b/test/diff/tiers-4cases-Int-Int.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-Int-Int.out
+++ /dev/null
@@ -1,212 +0,0 @@
-map length (tiers :: [[ Int->Int ]])  =  [1,1,3,5,10,16,30,48,80,...]
-
-length (list :: [ Int->Int ])  =  Infinity
-
-allUnique (list :: [ Int->Int ])  =  True
-
-ratioRepetitions (list :: [ Int->Int ])  =  0 % 1
-
-tiers :: [Int->Int]  =
-  [ [\_ -> 0]
-  , [\_ -> 1]
-  , [ \x -> case x of 0 -> 1; _ -> 0
-    , \x -> case x of 0 -> 0; _ -> 1
-    , \_ -> -1
-    ]
-  , [ \x -> case x of 0 -> -1; _ -> 0
-    , \x -> case x of 1 -> 1; _ -> 0
-    , \x -> case x of 1 -> 0; _ -> 1
-    , \x -> case x of 0 -> 0; _ -> -1
-    , \_ -> 2
-    ]
-  , [ \x -> case x of 0 -> 2; _ -> 0
-    , \x -> case x of 1 -> -1; _ -> 0
-    , \x -> case x of -1 -> 1; _ -> 0
-    , \x -> case x of 0 -> -1; _ -> 1
-    , \x -> case x of 0 -> 0; 1 -> 0; _ -> 1
-    , \x -> case x of -1 -> 0; _ -> 1
-    , \x -> case x of 0 -> 1; _ -> -1
-    , \x -> case x of 1 -> 0; _ -> -1
-    , \x -> case x of 0 -> 0; _ -> 2
-    , \_ -> -2
-    ]
-  , [ \x -> case x of 0 -> -2; _ -> 0
-    , \x -> case x of 1 -> 2; _ -> 0
-    , \x -> case x of 0 -> 1; 1 -> 1; _ -> 0
-    , \x -> case x of -1 -> -1; _ -> 0
-    , \x -> case x of 2 -> 1; _ -> 0
-    , \x -> case x of 0 -> 2; _ -> 1
-    , \x -> case x of 1 -> -1; _ -> 1
-    , \x -> case x of 0 -> 0; -1 -> 0; _ -> 1
-    , \x -> case x of 2 -> 0; _ -> 1
-    , \x -> case x of 1 -> 1; _ -> -1
-    , \x -> case x of 0 -> 0; 1 -> 0; _ -> -1
-    , \x -> case x of -1 -> 0; _ -> -1
-    , \x -> case x of 0 -> 1; _ -> 2
-    , \x -> case x of 1 -> 0; _ -> 2
-    , \x -> case x of 0 -> 0; _ -> -2
-    , \_ -> 3
-    ]
-  , [ \x -> case x of 0 -> 3; _ -> 0
-    , \x -> case x of 1 -> -2; _ -> 0
-    , \x -> case x of 0 -> 1; 1 -> -1; _ -> 0
-    , \x -> case x of 0 -> -1; 1 -> 1; _ -> 0
-    , \x -> case x of -1 -> 2; _ -> 0
-    , \x -> case x of 0 -> 1; -1 -> 1; _ -> 0
-    , \x -> case x of 2 -> -1; _ -> 0
-    , \x -> case x of -2 -> 1; _ -> 0
-    , \x -> case x of 0 -> -2; _ -> 1
-    , \x -> case x of 1 -> 2; _ -> 1
-    , \x -> case x of 0 -> 0; 1 -> -1; _ -> 1
-    , \x -> case x of 0 -> -1; 1 -> 0; _ -> 1
-    , \x -> case x of -1 -> -1; _ -> 1
-    , \x -> case x of 0 -> 0; 2 -> 0; _ -> 1
-    , \x -> case x of 1 -> 0; -1 -> 0; _ -> 1
-    , \x -> case x of -2 -> 0; _ -> 1
-    , \x -> case x of 0 -> 2; _ -> -1
-    , \x -> case x of 0 -> 0; 1 -> 1; _ -> -1
-    , \x -> case x of 0 -> 1; 1 -> 0; _ -> -1
-    , \x -> case x of -1 -> 1; _ -> -1
-    , \x -> case x of 0 -> 0; -1 -> 0; _ -> -1
-    , \x -> case x of 2 -> 0; _ -> -1
-    , \x -> case x of 0 -> -1; _ -> 2
-    , \x -> case x of 1 -> 1; _ -> 2
-    , \x -> case x of 0 -> 0; 1 -> 0; _ -> 2
-    , \x -> case x of -1 -> 0; _ -> 2
-    , \x -> case x of 0 -> 1; _ -> -2
-    , \x -> case x of 1 -> 0; _ -> -2
-    , \x -> case x of 0 -> 0; _ -> 3
-    , \_ -> -3
-    ]
-  , [ \x -> case x of 0 -> -3; _ -> 0
-    , \x -> case x of 1 -> 3; _ -> 0
-    , \x -> case x of 0 -> 1; 1 -> 2; _ -> 0
-    , \x -> case x of 0 -> -1; 1 -> -1; _ -> 0
-    , \x -> case x of 0 -> 2; 1 -> 1; _ -> 0
-    , \x -> case x of -1 -> -2; _ -> 0
-    , \x -> case x of 0 -> 1; -1 -> -1; _ -> 0
-    , \x -> case x of 0 -> -1; -1 -> 1; _ -> 0
-    , \x -> case x of 2 -> 2; _ -> 0
-    , \x -> case x of 0 -> 1; 2 -> 1; _ -> 0
-    , \x -> case x of 1 -> 1; -1 -> 1; _ -> 0
-    , \x -> case x of -2 -> -1; _ -> 0
-    , \x -> case x of 3 -> 1; _ -> 0
-    , \x -> case x of 0 -> 3; _ -> 1
-    , \x -> case x of 1 -> -2; _ -> 1
-    , \x -> case x of 0 -> 0; 1 -> 2; _ -> 1
-    , \x -> case x of 0 -> 2; 1 -> 0; _ -> 1
-    , \x -> case x of -1 -> 2; _ -> 1
-    , \x -> case x of 0 -> 0; -1 -> -1; _ -> 1
-    , \x -> case x of 0 -> -1; -1 -> 0; _ -> 1
-    , \x -> case x of 2 -> -1; _ -> 1
-    , \x -> case x of 0 -> 0; 1 -> 0; -1 -> 0; _ -> 1
-    , \x -> case x of 0 -> 0; -2 -> 0; _ -> 1
-    , \x -> case x of 1 -> 0; 2 -> 0; _ -> 1
-    , \x -> case x of 3 -> 0; _ -> 1
-    , \x -> case x of 0 -> -2; _ -> -1
-    , \x -> case x of 1 -> 2; _ -> -1
-    , \x -> case x of 0 -> 1; 1 -> 1; _ -> -1
-    , \x -> case x of 0 -> 0; -1 -> 1; _ -> -1
-    , \x -> case x of 0 -> 1; -1 -> 0; _ -> -1
-    , \x -> case x of 2 -> 1; _ -> -1
-    , \x -> case x of 0 -> 0; 2 -> 0; _ -> -1
-    , \x -> case x of 1 -> 0; -1 -> 0; _ -> -1
-    , \x -> case x of -2 -> 0; _ -> -1
-    , \x -> case x of 1 -> -1; _ -> 2
-    , \x -> case x of 0 -> 0; 1 -> 1; _ -> 2
-    , \x -> case x of 0 -> 1; 1 -> 0; _ -> 2
-    , \x -> case x of -1 -> 1; _ -> 2
-    , \x -> case x of 0 -> 0; -1 -> 0; _ -> 2
-    , \x -> case x of 2 -> 0; _ -> 2
-    , \x -> case x of 0 -> -1; _ -> -2
-    , \x -> case x of 1 -> 1; _ -> -2
-    , \x -> case x of 0 -> 0; 1 -> 0; _ -> -2
-    , \x -> case x of -1 -> 0; _ -> -2
-    , \x -> case x of 0 -> 1; _ -> 3
-    , \x -> case x of 1 -> 0; _ -> 3
-    , \x -> case x of 0 -> 0; _ -> -3
-    , \_ -> 4
-    ]
-  , [ \x -> case x of 0 -> 4; _ -> 0
-    , \x -> case x of 1 -> -3; _ -> 0
-    , \x -> case x of 0 -> 1; 1 -> -2; _ -> 0
-    , \x -> case x of 0 -> -1; 1 -> 2; _ -> 0
-    , \x -> case x of 0 -> 2; 1 -> -1; _ -> 0
-    , \x -> case x of 0 -> -2; 1 -> 1; _ -> 0
-    , \x -> case x of -1 -> 3; _ -> 0
-    , \x -> case x of 0 -> 1; -1 -> 2; _ -> 0
-    , \x -> case x of 0 -> -1; -1 -> -1; _ -> 0
-    , \x -> case x of 0 -> 2; -1 -> 1; _ -> 0
-    , \x -> case x of 2 -> -2; _ -> 0
-    , \x -> case x of 0 -> 1; 2 -> -1; _ -> 0
-    , \x -> case x of 0 -> -1; 2 -> 1; _ -> 0
-    , \x -> case x of 1 -> 1; -1 -> -1; _ -> 0
-    , \x -> case x of 1 -> -1; -1 -> 1; _ -> 0
-    , \x -> case x of -2 -> 2; _ -> 0
-    , \x -> case x of 0 -> 1; -2 -> 1; _ -> 0
-    , \x -> case x of 1 -> 1; 2 -> 1; _ -> 0
-    , \x -> case x of 3 -> -1; _ -> 0
-    , \x -> case x of -3 -> 1; _ -> 0
-    , \x -> case x of 0 -> -3; _ -> 1
-    , \x -> case x of 1 -> 3; _ -> 1
-    , \x -> case x of 0 -> 0; 1 -> -2; _ -> 1
-    , \x -> case x of 0 -> -1; 1 -> -1; _ -> 1
-    , \x -> case x of 0 -> -2; 1 -> 0; _ -> 1
-    , \x -> case x of -1 -> -2; _ -> 1
-    , \x -> case x of 0 -> 0; -1 -> 2; _ -> 1
-    , \x -> case x of 0 -> 2; -1 -> 0; _ -> 1
-    , \x -> case x of 2 -> 2; _ -> 1
-    , \x -> case x of 0 -> 0; 2 -> -1; _ -> 1
-    , \x -> case x of 0 -> -1; 2 -> 0; _ -> 1
-    , \x -> case x of 1 -> 0; -1 -> -1; _ -> 1
-    , \x -> case x of 1 -> -1; -1 -> 0; _ -> 1
-    , \x -> case x of -2 -> -1; _ -> 1
-    , \x -> case x of 0 -> 0; 1 -> 0; 2 -> 0; _ -> 1
-    , \x -> case x of 0 -> 0; 3 -> 0; _ -> 1
-    , \x -> case x of 1 -> 0; -2 -> 0; _ -> 1
-    , \x -> case x of -1 -> 0; 2 -> 0; _ -> 1
-    , \x -> case x of -3 -> 0; _ -> 1
-    , \x -> case x of 0 -> 3; _ -> -1
-    , \x -> case x of 1 -> -2; _ -> -1
-    , \x -> case x of 0 -> 0; 1 -> 2; _ -> -1
-    , \x -> case x of 0 -> 2; 1 -> 0; _ -> -1
-    , \x -> case x of -1 -> 2; _ -> -1
-    , \x -> case x of 0 -> 1; -1 -> 1; _ -> -1
-    , \x -> case x of 0 -> 0; 2 -> 1; _ -> -1
-    , \x -> case x of 0 -> 1; 2 -> 0; _ -> -1
-    , \x -> case x of 1 -> 0; -1 -> 1; _ -> -1
-    , \x -> case x of 1 -> 1; -1 -> 0; _ -> -1
-    , \x -> case x of -2 -> 1; _ -> -1
-    , \x -> case x of 0 -> 0; 1 -> 0; -1 -> 0; _ -> -1
-    , \x -> case x of 0 -> 0; -2 -> 0; _ -> -1
-    , \x -> case x of 1 -> 0; 2 -> 0; _ -> -1
-    , \x -> case x of 3 -> 0; _ -> -1
-    , \x -> case x of 0 -> -2; _ -> 2
-    , \x -> case x of 0 -> 0; 1 -> -1; _ -> 2
-    , \x -> case x of 0 -> 1; 1 -> 1; _ -> 2
-    , \x -> case x of 0 -> -1; 1 -> 0; _ -> 2
-    , \x -> case x of -1 -> -1; _ -> 2
-    , \x -> case x of 0 -> 0; -1 -> 1; _ -> 2
-    , \x -> case x of 0 -> 1; -1 -> 0; _ -> 2
-    , \x -> case x of 2 -> 1; _ -> 2
-    , \x -> case x of 0 -> 0; 2 -> 0; _ -> 2
-    , \x -> case x of 1 -> 0; -1 -> 0; _ -> 2
-    , \x -> case x of -2 -> 0; _ -> 2
-    , \x -> case x of 0 -> 2; _ -> -2
-    , \x -> case x of 1 -> -1; _ -> -2
-    , \x -> case x of 0 -> 0; 1 -> 1; _ -> -2
-    , \x -> case x of 0 -> 1; 1 -> 0; _ -> -2
-    , \x -> case x of -1 -> 1; _ -> -2
-    , \x -> case x of 0 -> 0; -1 -> 0; _ -> -2
-    , \x -> case x of 2 -> 0; _ -> -2
-    , \x -> case x of 0 -> -1; _ -> 3
-    , \x -> case x of 1 -> 1; _ -> 3
-    , \x -> case x of 0 -> 0; 1 -> 0; _ -> 3
-    , \x -> case x of -1 -> 0; _ -> 3
-    , \x -> case x of 0 -> 1; _ -> -3
-    , \x -> case x of 1 -> 0; _ -> -3
-    , \x -> case x of 0 -> 0; _ -> 4
-    , \_ -> -4
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-4cases-Ints-Ints.out b/test/diff/tiers-4cases-Ints-Ints.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-Ints-Ints.out
+++ /dev/null
@@ -1,135 +0,0 @@
-map length (tiers :: [[ [Int]->[Int] ]])  =  [1,1,4,10,29,75,...]
-
-length (list :: [ [Int]->[Int] ])  =  Infinity
-
-allUnique (list :: [ [Int]->[Int] ])  =  True
-
-ratioRepetitions (list :: [ [Int]->[Int] ])  =  0 % 1
-
-tiers :: [[Int]->[Int]]  =
-  [ [\_ -> []]
-  , [\_ -> [0]]
-  , [ \x -> case x of [] -> [0]; _ -> []
-    , \x -> case x of [] -> []; _ -> [0]
-    , \_ -> [0,0]
-    , \_ -> [1]
-    ]
-  , [ \x -> case x of [] -> [0,0]; _ -> []
-    , \x -> case x of [] -> [1]; _ -> []
-    , \x -> case x of [0] -> [0]; _ -> []
-    , \x -> case x of [0] -> []; _ -> [0]
-    , \x -> case x of [] -> []; _ -> [0,0]
-    , \x -> case x of [] -> []; _ -> [1]
-    , \_ -> [0,0,0]
-    , \_ -> [0,1]
-    , \_ -> [1,0]
-    , \_ -> [-1]
-    ]
-  , [ \x -> case x of [] -> [0,0,0]; _ -> []
-    , \x -> case x of [] -> [0,1]; _ -> []
-    , \x -> case x of [] -> [1,0]; _ -> []
-    , \x -> case x of [] -> [-1]; _ -> []
-    , \x -> case x of [0] -> [0,0]; _ -> []
-    , \x -> case x of [0] -> [1]; _ -> []
-    , \x -> case x of [0,0] -> [0]; _ -> []
-    , \x -> case x of [1] -> [0]; _ -> []
-    , \x -> case x of [] -> [0,0]; _ -> [0]
-    , \x -> case x of [] -> [1]; _ -> [0]
-    , \x -> case x of [] -> []; [0] -> []; _ -> [0]
-    , \x -> case x of [0,0] -> []; _ -> [0]
-    , \x -> case x of [1] -> []; _ -> [0]
-    , \x -> case x of [] -> [0]; _ -> [0,0]
-    , \x -> case x of [0] -> []; _ -> [0,0]
-    , \x -> case x of [] -> [0]; _ -> [1]
-    , \x -> case x of [0] -> []; _ -> [1]
-    , \x -> case x of [] -> []; _ -> [0,0,0]
-    , \x -> case x of [] -> []; _ -> [0,1]
-    , \x -> case x of [] -> []; _ -> [1,0]
-    , \x -> case x of [] -> []; _ -> [-1]
-    , \_ -> [0,0,0,0]
-    , \_ -> [0,0,1]
-    , \_ -> [0,1,0]
-    , \_ -> [0,-1]
-    , \_ -> [1,0,0]
-    , \_ -> [1,1]
-    , \_ -> [-1,0]
-    , \_ -> [2]
-    ]
-  , [ \x -> case x of [] -> [0,0,0,0]; _ -> []
-    , \x -> case x of [] -> [0,0,1]; _ -> []
-    , \x -> case x of [] -> [0,1,0]; _ -> []
-    , \x -> case x of [] -> [0,-1]; _ -> []
-    , \x -> case x of [] -> [1,0,0]; _ -> []
-    , \x -> case x of [] -> [1,1]; _ -> []
-    , \x -> case x of [] -> [-1,0]; _ -> []
-    , \x -> case x of [] -> [2]; _ -> []
-    , \x -> case x of [0] -> [0,0,0]; _ -> []
-    , \x -> case x of [0] -> [0,1]; _ -> []
-    , \x -> case x of [0] -> [1,0]; _ -> []
-    , \x -> case x of [0] -> [-1]; _ -> []
-    , \x -> case x of [] -> [0]; [0] -> [0]; _ -> []
-    , \x -> case x of [0,0] -> [0,0]; _ -> []
-    , \x -> case x of [0,0] -> [1]; _ -> []
-    , \x -> case x of [1] -> [0,0]; _ -> []
-    , \x -> case x of [1] -> [1]; _ -> []
-    , \x -> case x of [0,0,0] -> [0]; _ -> []
-    , \x -> case x of [0,1] -> [0]; _ -> []
-    , \x -> case x of [1,0] -> [0]; _ -> []
-    , \x -> case x of [-1] -> [0]; _ -> []
-    , \x -> case x of [] -> [0,0,0]; _ -> [0]
-    , \x -> case x of [] -> [0,1]; _ -> [0]
-    , \x -> case x of [] -> [1,0]; _ -> [0]
-    , \x -> case x of [] -> [-1]; _ -> [0]
-    , \x -> case x of [0] -> [0,0]; _ -> [0]
-    , \x -> case x of [0] -> [1]; _ -> [0]
-    , \x -> case x of [] -> []; [0,0] -> []; _ -> [0]
-    , \x -> case x of [] -> []; [1] -> []; _ -> [0]
-    , \x -> case x of [0,0,0] -> []; _ -> [0]
-    , \x -> case x of [0,1] -> []; _ -> [0]
-    , \x -> case x of [1,0] -> []; _ -> [0]
-    , \x -> case x of [-1] -> []; _ -> [0]
-    , \x -> case x of [] -> [1]; _ -> [0,0]
-    , \x -> case x of [0] -> [0]; _ -> [0,0]
-    , \x -> case x of [] -> []; [0] -> []; _ -> [0,0]
-    , \x -> case x of [0,0] -> []; _ -> [0,0]
-    , \x -> case x of [1] -> []; _ -> [0,0]
-    , \x -> case x of [] -> [0,0]; _ -> [1]
-    , \x -> case x of [0] -> [0]; _ -> [1]
-    , \x -> case x of [] -> []; [0] -> []; _ -> [1]
-    , \x -> case x of [0,0] -> []; _ -> [1]
-    , \x -> case x of [1] -> []; _ -> [1]
-    , \x -> case x of [] -> [0]; _ -> [0,0,0]
-    , \x -> case x of [0] -> []; _ -> [0,0,0]
-    , \x -> case x of [] -> [0]; _ -> [0,1]
-    , \x -> case x of [0] -> []; _ -> [0,1]
-    , \x -> case x of [] -> [0]; _ -> [1,0]
-    , \x -> case x of [0] -> []; _ -> [1,0]
-    , \x -> case x of [] -> [0]; _ -> [-1]
-    , \x -> case x of [0] -> []; _ -> [-1]
-    , \x -> case x of [] -> []; _ -> [0,0,0,0]
-    , \x -> case x of [] -> []; _ -> [0,0,1]
-    , \x -> case x of [] -> []; _ -> [0,1,0]
-    , \x -> case x of [] -> []; _ -> [0,-1]
-    , \x -> case x of [] -> []; _ -> [1,0,0]
-    , \x -> case x of [] -> []; _ -> [1,1]
-    , \x -> case x of [] -> []; _ -> [-1,0]
-    , \x -> case x of [] -> []; _ -> [2]
-    , \_ -> [0,0,0,0,0]
-    , \_ -> [0,0,0,1]
-    , \_ -> [0,0,1,0]
-    , \_ -> [0,0,-1]
-    , \_ -> [0,1,0,0]
-    , \_ -> [0,1,1]
-    , \_ -> [0,-1,0]
-    , \_ -> [0,2]
-    , \_ -> [1,0,0,0]
-    , \_ -> [1,0,1]
-    , \_ -> [1,1,0]
-    , \_ -> [1,-1]
-    , \_ -> [-1,0,0]
-    , \_ -> [-1,1]
-    , \_ -> [2,0]
-    , \_ -> [-2]
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-4cases-MBool-Bool.out b/test/diff/tiers-4cases-MBool-Bool.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-MBool-Bool.out
+++ /dev/null
@@ -1,19 +0,0 @@
-map length (tiers :: [[ Maybe Bool->Bool ]])  =  [8]
-
-length (list :: [ Maybe Bool->Bool ])  =  8
-
-allUnique (list :: [ Maybe Bool->Bool ])  =  True
-
-ratioRepetitions (list :: [ Maybe Bool->Bool ])  =  0 % 1
-
-tiers :: [Maybe Bool->Bool]  =
-  [ [ \_ -> False
-    , \x -> case x of Just True -> True; _ -> False
-    , \x -> case x of Just False -> True; _ -> False
-    , \x -> case x of Nothing -> False; _ -> True
-    , \x -> case x of Nothing -> True; _ -> False
-    , \x -> case x of Just False -> False; _ -> True
-    , \x -> case x of Just True -> False; _ -> True
-    , \_ -> True
-    ]
-  ]
diff --git a/test/diff/tiers-4cases-MBool-MBool.out b/test/diff/tiers-4cases-MBool-MBool.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-MBool-MBool.out
+++ /dev/null
@@ -1,40 +0,0 @@
-map length (tiers :: [[ Maybe Bool->Maybe Bool ]])  =  [1,6,12,8]
-
-length (list :: [ Maybe Bool->Maybe Bool ])  =  Infinity
-
-allUnique (list :: [ Maybe Bool->Maybe Bool ])  =  True
-
-ratioRepetitions (list :: [ Maybe Bool->Maybe Bool ])  =  0 % 1
-
-tiers :: [Maybe Bool->Maybe Bool]  =
-  [ [\_ -> Nothing]
-  , [ \x -> case x of Just True -> Just False; _ -> Nothing
-    , \x -> case x of Just True -> Just True; _ -> Nothing
-    , \x -> case x of Just False -> Just False; _ -> Nothing
-    , \x -> case x of Just False -> Just True; _ -> Nothing
-    , \x -> case x of Nothing -> Just False; _ -> Nothing
-    , \x -> case x of Nothing -> Just True; _ -> Nothing
-    ]
-  , [ \x -> case x of Nothing -> Nothing; _ -> Just False
-    , \x -> case x of Nothing -> Nothing; Just False -> Just False; Just True -> Just True
-    , \x -> case x of Nothing -> Nothing; Just False -> Just True; Just True -> Just False
-    , \x -> case x of Nothing -> Nothing; _ -> Just True
-    , \x -> case x of Just False -> Nothing; _ -> Just False
-    , \x -> case x of Nothing -> Just False; Just False -> Nothing; Just True -> Just True
-    , \x -> case x of Just True -> Nothing; _ -> Just False
-    , \x -> case x of Nothing -> Just False; Just False -> Just True; Just True -> Nothing
-    , \x -> case x of Nothing -> Just True; Just False -> Nothing; Just True -> Just False
-    , \x -> case x of Just False -> Nothing; _ -> Just True
-    , \x -> case x of Nothing -> Just True; Just False -> Just False; Just True -> Nothing
-    , \x -> case x of Just True -> Nothing; _ -> Just True
-    ]
-  , [ \_ -> Just False
-    , \x -> case x of Just True -> Just True; _ -> Just False
-    , \x -> case x of Just False -> Just True; _ -> Just False
-    , \x -> case x of Nothing -> Just False; _ -> Just True
-    , \x -> case x of Nothing -> Just True; _ -> Just False
-    , \x -> case x of Just False -> Just False; _ -> Just True
-    , \x -> case x of Just True -> Just False; _ -> Just True
-    , \_ -> Just True
-    ]
-  ]
diff --git a/test/diff/tiers-4cases-Nat,Nat-Nat.out b/test/diff/tiers-4cases-Nat,Nat-Nat.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-Nat,Nat-Nat.out
+++ /dev/null
@@ -1,79 +0,0 @@
-map length (tiers :: [[ (Nat,Nat)->Nat ]])  =  [1,1,3,7,17,35,...]
-
-length (list :: [ (Nat,Nat)->Nat ])  =  Infinity
-
-allUnique (list :: [ (Nat,Nat)->Nat ])  =  True
-
-ratioRepetitions (list :: [ (Nat,Nat)->Nat ])  =  0 % 1
-
-tiers :: [(Nat,Nat)->Nat]  =
-  [ [\_ -> 0]
-  , [\_ -> 1]
-  , [ \x -> case x of (0,0) -> 1; _ -> 0
-    , \x -> case x of (0,0) -> 0; _ -> 1
-    , \_ -> 2
-    ]
-  , [ \x -> case x of (0,0) -> 2; _ -> 0
-    , \x -> case x of (0,1) -> 1; _ -> 0
-    , \x -> case x of (1,0) -> 1; _ -> 0
-    , \x -> case x of (0,1) -> 0; _ -> 1
-    , \x -> case x of (1,0) -> 0; _ -> 1
-    , \x -> case x of (0,0) -> 0; _ -> 2
-    , \_ -> 3
-    ]
-  , [ \x -> case x of (0,0) -> 3; _ -> 0
-    , \x -> case x of (0,1) -> 2; _ -> 0
-    , \x -> case x of (1,0) -> 2; _ -> 0
-    , \x -> case x of (0,2) -> 1; _ -> 0
-    , \x -> case x of (1,1) -> 1; _ -> 0
-    , \x -> case x of (2,0) -> 1; _ -> 0
-    , \x -> case x of (0,0) -> 2; _ -> 1
-    , \x -> case x of (0,0) -> 0; (0,1) -> 0; _ -> 1
-    , \x -> case x of (0,0) -> 0; (1,0) -> 0; _ -> 1
-    , \x -> case x of (0,2) -> 0; _ -> 1
-    , \x -> case x of (1,1) -> 0; _ -> 1
-    , \x -> case x of (2,0) -> 0; _ -> 1
-    , \x -> case x of (0,0) -> 1; _ -> 2
-    , \x -> case x of (0,1) -> 0; _ -> 2
-    , \x -> case x of (1,0) -> 0; _ -> 2
-    , \x -> case x of (0,0) -> 0; _ -> 3
-    , \_ -> 4
-    ]
-  , [ \x -> case x of (0,0) -> 4; _ -> 0
-    , \x -> case x of (0,1) -> 3; _ -> 0
-    , \x -> case x of (1,0) -> 3; _ -> 0
-    , \x -> case x of (0,0) -> 1; (0,1) -> 1; _ -> 0
-    , \x -> case x of (0,0) -> 1; (1,0) -> 1; _ -> 0
-    , \x -> case x of (0,2) -> 2; _ -> 0
-    , \x -> case x of (1,1) -> 2; _ -> 0
-    , \x -> case x of (2,0) -> 2; _ -> 0
-    , \x -> case x of (0,3) -> 1; _ -> 0
-    , \x -> case x of (1,2) -> 1; _ -> 0
-    , \x -> case x of (2,1) -> 1; _ -> 0
-    , \x -> case x of (3,0) -> 1; _ -> 0
-    , \x -> case x of (0,0) -> 3; _ -> 1
-    , \x -> case x of (0,1) -> 2; _ -> 1
-    , \x -> case x of (1,0) -> 2; _ -> 1
-    , \x -> case x of (0,0) -> 0; (0,2) -> 0; _ -> 1
-    , \x -> case x of (0,0) -> 0; (1,1) -> 0; _ -> 1
-    , \x -> case x of (0,0) -> 0; (2,0) -> 0; _ -> 1
-    , \x -> case x of (0,1) -> 0; (1,0) -> 0; _ -> 1
-    , \x -> case x of (0,3) -> 0; _ -> 1
-    , \x -> case x of (1,2) -> 0; _ -> 1
-    , \x -> case x of (2,1) -> 0; _ -> 1
-    , \x -> case x of (3,0) -> 0; _ -> 1
-    , \x -> case x of (0,1) -> 1; _ -> 2
-    , \x -> case x of (1,0) -> 1; _ -> 2
-    , \x -> case x of (0,0) -> 0; (0,1) -> 0; _ -> 2
-    , \x -> case x of (0,0) -> 0; (1,0) -> 0; _ -> 2
-    , \x -> case x of (0,2) -> 0; _ -> 2
-    , \x -> case x of (1,1) -> 0; _ -> 2
-    , \x -> case x of (2,0) -> 0; _ -> 2
-    , \x -> case x of (0,0) -> 1; _ -> 3
-    , \x -> case x of (0,1) -> 0; _ -> 3
-    , \x -> case x of (1,0) -> 0; _ -> 3
-    , \x -> case x of (0,0) -> 0; _ -> 4
-    , \_ -> 5
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-4cases-Nat-Nat-Nat.out b/test/diff/tiers-4cases-Nat-Nat-Nat.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-Nat-Nat-Nat.out
+++ /dev/null
@@ -1,151 +0,0 @@
-map length (tiers :: [[ Nat->Nat->Nat ]])  =  [1,1,5,13,35,81,...]
-
-length (list :: [ Nat->Nat->Nat ])  =  Infinity
-
-allUnique (list :: [ Nat->Nat->Nat ])  =  True
-
-ratioRepetitions (list :: [ Nat->Nat->Nat ])  =  0 % 1
-
-tiers :: [Nat->Nat->Nat]  =
-  [ [\_ _ -> 0]
-  , [\_ _ -> 1]
-  , [ \x _ -> case x of 0 -> 1; _ -> 0
-    , \x _ -> case x of 0 -> 0; _ -> 1
-    , \_ y -> case y of 0 -> 1; _ -> 0
-    , \_ y -> case y of 0 -> 0; _ -> 1
-    , \_ _ -> 2
-    ]
-  , [ \x y -> case (x,y) of (0,0) -> 1; _ -> 0
-    , \x y -> case (x,y) of (_,0) -> 0; (0,_) -> 1; _ -> 0
-    , \x _ -> case x of 0 -> 2; _ -> 0
-    , \x _ -> case x of 1 -> 1; _ -> 0
-    , \x _ -> case x of 1 -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; _ -> 1
-    , \x _ -> case x of 0 -> 0; _ -> 2
-    , \_ y -> case y of 0 -> 2; _ -> 0
-    , \_ y -> case y of 1 -> 1; _ -> 0
-    , \_ y -> case y of 1 -> 0; _ -> 1
-    , \_ y -> case y of 0 -> 0; _ -> 2
-    , \_ _ -> 3
-    ]
-  , [ \x y -> case (x,y) of (0,0) -> 2; _ -> 0
-    , \x y -> case (x,y) of (0,1) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,0) -> 1; (0,1) -> 0; (1,0) -> 0; (0,2) -> 1; ...
-    , \x y -> case (x,y) of (_,0) -> 0; (0,_) -> 2; _ -> 0
-    , \x _ -> case x of 0 -> 3; _ -> 0
-    , \x y -> case (x,y) of (1,0) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (1,_) -> 1; _ -> 0
-    , \x _ -> case x of 1 -> 2; _ -> 0
-    , \x _ -> case x of 2 -> 1; _ -> 0
-    , \x y -> case (x,y) of (_,0) -> 1; (0,_) -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,0) -> 0; _ -> 1
-    , \x _ -> case x of 0 -> 2; _ -> 1
-    , \x _ -> case x of 0 -> 0; 1 -> 0; _ -> 1
-    , \x _ -> case x of 2 -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,0) -> 1; (0,1) -> 0; (1,0) -> 0; (0,2) -> 0; ...
-    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 0; _ -> 1
-    , \x y -> case (x,y) of (_,0) -> 0; (0,_) -> 1; (1,_) -> 0; _ -> 1
-    , \x _ -> case x of 0 -> 1; _ -> 2
-    , \x _ -> case x of 1 -> 0; _ -> 2
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 2; _ -> 0
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (_,1) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 1; (_,1) -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; _ -> 2
-    , \x _ -> case x of 0 -> 0; _ -> 3
-    , \_ y -> case y of 0 -> 3; _ -> 0
-    , \_ y -> case y of 1 -> 2; _ -> 0
-    , \_ y -> case y of 2 -> 1; _ -> 0
-    , \_ y -> case y of 0 -> 2; _ -> 1
-    , \_ y -> case y of 0 -> 0; 1 -> 0; _ -> 1
-    , \_ y -> case y of 2 -> 0; _ -> 1
-    , \_ y -> case y of 0 -> 1; _ -> 2
-    , \_ y -> case y of 1 -> 0; _ -> 2
-    , \_ y -> case y of 0 -> 0; _ -> 3
-    , \_ _ -> 4
-    ]
-  , [ \x y -> case (x,y) of (0,0) -> 3; _ -> 0
-    , \x y -> case (x,y) of (0,1) -> 2; _ -> 0
-    , \x y -> case (x,y) of (0,2) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,0) -> 2; (0,_) -> 1; _ -> 0
-    , \x y -> case (x,y) of (_,0) -> 0; (_,1) -> 0; (0,_) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,0) -> 1; (0,1) -> 1; (1,0) -> 0; (0,2) -> 0; ...
-    , \x y -> case (x,y) of (0,0) -> 1; (0,_) -> 2; _ -> 0
-    , \x y -> case (x,y) of (0,0) -> 2; (0,1) -> 0; (1,0) -> 0; (0,2) -> 2; ...
-    , \x y -> case (x,y) of (_,0) -> 0; (0,_) -> 3; _ -> 0
-    , \x _ -> case x of 0 -> 4; _ -> 0
-    , \x y -> case (x,y) of (1,0) -> 2; _ -> 0
-    , \x y -> case (x,y) of (1,1) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,0) -> 0; (0,1) -> 0; (1,0) -> 1; (0,2) -> 0; ...
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (1,_) -> 2; _ -> 0
-    , \x _ -> case x of 1 -> 3; _ -> 0
-    , \x _ -> case x of 0 -> 1; 1 -> 1; _ -> 0
-    , \x y -> case (x,y) of (2,0) -> 1; _ -> 0
-    , \x y -> case (x,y) of (2,1) -> 1; (2,2) -> 1; _ -> 0
-    , \x _ -> case x of 2 -> 2; _ -> 0
-    , \x _ -> case x of 3 -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,0) -> 2; (0,_) -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,0) -> 0; (0,1) -> 1; (1,0) -> 1; (0,2) -> 0; ...
-    , \x y -> case (x,y) of (0,1) -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,0) -> 0; (0,_) -> 2; _ -> 1
-    , \x _ -> case x of 0 -> 3; _ -> 1
-    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 1; (1,_) -> 0; _ -> 1
-    , \x y -> case (x,y) of (1,0) -> 0; _ -> 1
-    , \x _ -> case x of 1 -> 2; _ -> 1
-    , \x _ -> case x of 0 -> 0; 1 -> 1; 2 -> 0; _ -> 1
-    , \x _ -> case x of 3 -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,0) -> 0; (0,_) -> 1; (_,0) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,_) -> 2; (_,0) -> 1; _ -> 0
-    , \x y -> case (x,y) of (_,0) -> 1; (0,_) -> 0; (1,_) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,_) -> 0; (1,_) -> 0; (_,0) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,0) -> 1; (0,1) -> 0; (1,0) -> 1; (0,2) -> 0; ...
-    , \x y -> case (x,y) of (0,0) -> 1; (0,_) -> 0; (_,0) -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,_) -> 2; (_,0) -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,0) -> 0; (0,1) -> 1; (1,0) -> 1; (0,2) -> 1; ...
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (1,_) -> 0; _ -> 1
-    , \x y -> case (x,y) of (_,0) -> 0; (2,_) -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,0) -> 1; (0,_) -> 0; _ -> 2
-    , \x y -> case (x,y) of (0,0) -> 0; (0,_) -> 1; _ -> 2
-    , \x _ -> case x of 1 -> 1; _ -> 2
-    , \x _ -> case x of 0 -> 0; 1 -> 0; _ -> 2
-    , \x _ -> case x of 2 -> 0; _ -> 2
-    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 2; _ -> 0
-    , \x y -> case (x,y) of (0,0) -> 2; (0,1) -> 0; (1,0) -> 0; (0,2) -> 0; ...
-    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 0; (_,1) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,1) -> 1; (2,1) -> 1; (3,1) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 1; (_,1) -> 0; _ -> 1
-    , \x y -> case (x,y) of (_,1) -> 0; (1,_) -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,_) -> 1; (_,0) -> 0; _ -> 2
-    , \x y -> case (x,y) of (_,0) -> 0; (0,_) -> 2; (1,_) -> 0; _ -> 2
-    , \x _ -> case x of 0 -> 1; _ -> 3
-    , \x _ -> case x of 1 -> 0; _ -> 3
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 3; _ -> 0
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (_,1) -> 2; _ -> 0
-    , \x y -> case (x,y) of (1,2) -> 1; (2,2) -> 1; _ -> 0
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 2; _ -> 1
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; (_,1) -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,_) -> 0; (_,2) -> 0; _ -> 1
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 1; _ -> 2
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 2; (_,1) -> 0; _ -> 2
-    , \x y -> case (x,y) of (0,_) -> 0; (_,0) -> 0; _ -> 3
-    , \x _ -> case x of 0 -> 0; _ -> 4
-    , \_ y -> case y of 0 -> 4; _ -> 0
-    , \_ y -> case y of 1 -> 3; _ -> 0
-    , \_ y -> case y of 0 -> 1; 1 -> 1; _ -> 0
-    , \_ y -> case y of 2 -> 2; _ -> 0
-    , \_ y -> case y of 3 -> 1; _ -> 0
-    , \_ y -> case y of 0 -> 3; _ -> 1
-    , \_ y -> case y of 1 -> 2; _ -> 1
-    , \_ y -> case y of 0 -> 0; 2 -> 0; _ -> 1
-    , \_ y -> case y of 3 -> 0; _ -> 1
-    , \_ y -> case y of 1 -> 1; _ -> 2
-    , \_ y -> case y of 0 -> 0; 1 -> 0; _ -> 2
-    , \_ y -> case y of 2 -> 0; _ -> 2
-    , \_ y -> case y of 0 -> 1; _ -> 3
-    , \_ y -> case y of 1 -> 0; _ -> 3
-    , \_ y -> case y of 0 -> 0; _ -> 4
-    , \_ _ -> 5
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-4cases-Nat-Nat.out b/test/diff/tiers-4cases-Nat-Nat.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-Nat-Nat.out
+++ /dev/null
@@ -1,212 +0,0 @@
-map length (tiers :: [[ Nat->Nat ]])  =  [1,1,3,5,10,16,30,48,80,...]
-
-length (list :: [ Nat->Nat ])  =  Infinity
-
-allUnique (list :: [ Nat->Nat ])  =  True
-
-ratioRepetitions (list :: [ Nat->Nat ])  =  0 % 1
-
-tiers :: [Nat->Nat]  =
-  [ [\_ -> 0]
-  , [\_ -> 1]
-  , [ \x -> case x of 0 -> 1; _ -> 0
-    , \x -> case x of 0 -> 0; _ -> 1
-    , \_ -> 2
-    ]
-  , [ \x -> case x of 0 -> 2; _ -> 0
-    , \x -> case x of 1 -> 1; _ -> 0
-    , \x -> case x of 1 -> 0; _ -> 1
-    , \x -> case x of 0 -> 0; _ -> 2
-    , \_ -> 3
-    ]
-  , [ \x -> case x of 0 -> 3; _ -> 0
-    , \x -> case x of 1 -> 2; _ -> 0
-    , \x -> case x of 2 -> 1; _ -> 0
-    , \x -> case x of 0 -> 2; _ -> 1
-    , \x -> case x of 0 -> 0; 1 -> 0; _ -> 1
-    , \x -> case x of 2 -> 0; _ -> 1
-    , \x -> case x of 0 -> 1; _ -> 2
-    , \x -> case x of 1 -> 0; _ -> 2
-    , \x -> case x of 0 -> 0; _ -> 3
-    , \_ -> 4
-    ]
-  , [ \x -> case x of 0 -> 4; _ -> 0
-    , \x -> case x of 1 -> 3; _ -> 0
-    , \x -> case x of 0 -> 1; 1 -> 1; _ -> 0
-    , \x -> case x of 2 -> 2; _ -> 0
-    , \x -> case x of 3 -> 1; _ -> 0
-    , \x -> case x of 0 -> 3; _ -> 1
-    , \x -> case x of 1 -> 2; _ -> 1
-    , \x -> case x of 0 -> 0; 2 -> 0; _ -> 1
-    , \x -> case x of 3 -> 0; _ -> 1
-    , \x -> case x of 1 -> 1; _ -> 2
-    , \x -> case x of 0 -> 0; 1 -> 0; _ -> 2
-    , \x -> case x of 2 -> 0; _ -> 2
-    , \x -> case x of 0 -> 1; _ -> 3
-    , \x -> case x of 1 -> 0; _ -> 3
-    , \x -> case x of 0 -> 0; _ -> 4
-    , \_ -> 5
-    ]
-  , [ \x -> case x of 0 -> 5; _ -> 0
-    , \x -> case x of 1 -> 4; _ -> 0
-    , \x -> case x of 0 -> 1; 1 -> 2; _ -> 0
-    , \x -> case x of 0 -> 2; 1 -> 1; _ -> 0
-    , \x -> case x of 2 -> 3; _ -> 0
-    , \x -> case x of 0 -> 1; 2 -> 1; _ -> 0
-    , \x -> case x of 3 -> 2; _ -> 0
-    , \x -> case x of 4 -> 1; _ -> 0
-    , \x -> case x of 0 -> 4; _ -> 1
-    , \x -> case x of 1 -> 3; _ -> 1
-    , \x -> case x of 0 -> 0; 1 -> 2; _ -> 1
-    , \x -> case x of 0 -> 2; 1 -> 0; _ -> 1
-    , \x -> case x of 2 -> 2; _ -> 1
-    , \x -> case x of 0 -> 0; 3 -> 0; _ -> 1
-    , \x -> case x of 1 -> 0; 2 -> 0; _ -> 1
-    , \x -> case x of 4 -> 0; _ -> 1
-    , \x -> case x of 0 -> 3; _ -> 2
-    , \x -> case x of 0 -> 0; 1 -> 1; _ -> 2
-    , \x -> case x of 0 -> 1; 1 -> 0; _ -> 2
-    , \x -> case x of 2 -> 1; _ -> 2
-    , \x -> case x of 0 -> 0; 2 -> 0; _ -> 2
-    , \x -> case x of 3 -> 0; _ -> 2
-    , \x -> case x of 0 -> 2; _ -> 3
-    , \x -> case x of 1 -> 1; _ -> 3
-    , \x -> case x of 0 -> 0; 1 -> 0; _ -> 3
-    , \x -> case x of 2 -> 0; _ -> 3
-    , \x -> case x of 0 -> 1; _ -> 4
-    , \x -> case x of 1 -> 0; _ -> 4
-    , \x -> case x of 0 -> 0; _ -> 5
-    , \_ -> 6
-    ]
-  , [ \x -> case x of 0 -> 6; _ -> 0
-    , \x -> case x of 1 -> 5; _ -> 0
-    , \x -> case x of 0 -> 1; 1 -> 3; _ -> 0
-    , \x -> case x of 0 -> 2; 1 -> 2; _ -> 0
-    , \x -> case x of 0 -> 3; 1 -> 1; _ -> 0
-    , \x -> case x of 2 -> 4; _ -> 0
-    , \x -> case x of 0 -> 1; 2 -> 2; _ -> 0
-    , \x -> case x of 0 -> 2; 2 -> 1; _ -> 0
-    , \x -> case x of 3 -> 3; _ -> 0
-    , \x -> case x of 0 -> 1; 3 -> 1; _ -> 0
-    , \x -> case x of 1 -> 1; 2 -> 1; _ -> 0
-    , \x -> case x of 4 -> 2; _ -> 0
-    , \x -> case x of 5 -> 1; _ -> 0
-    , \x -> case x of 0 -> 5; _ -> 1
-    , \x -> case x of 1 -> 4; _ -> 1
-    , \x -> case x of 0 -> 0; 1 -> 3; _ -> 1
-    , \x -> case x of 0 -> 3; 1 -> 0; _ -> 1
-    , \x -> case x of 2 -> 3; _ -> 1
-    , \x -> case x of 0 -> 0; 2 -> 2; _ -> 1
-    , \x -> case x of 0 -> 2; 2 -> 0; _ -> 1
-    , \x -> case x of 3 -> 2; _ -> 1
-    , \x -> case x of 0 -> 0; 1 -> 0; 2 -> 0; _ -> 1
-    , \x -> case x of 0 -> 0; 4 -> 0; _ -> 1
-    , \x -> case x of 1 -> 0; 3 -> 0; _ -> 1
-    , \x -> case x of 5 -> 0; _ -> 1
-    , \x -> case x of 0 -> 4; _ -> 2
-    , \x -> case x of 1 -> 3; _ -> 2
-    , \x -> case x of 0 -> 1; 1 -> 1; _ -> 2
-    , \x -> case x of 0 -> 0; 2 -> 1; _ -> 2
-    , \x -> case x of 0 -> 1; 2 -> 0; _ -> 2
-    , \x -> case x of 3 -> 1; _ -> 2
-    , \x -> case x of 0 -> 0; 3 -> 0; _ -> 2
-    , \x -> case x of 1 -> 0; 2 -> 0; _ -> 2
-    , \x -> case x of 4 -> 0; _ -> 2
-    , \x -> case x of 1 -> 2; _ -> 3
-    , \x -> case x of 0 -> 0; 1 -> 1; _ -> 3
-    , \x -> case x of 0 -> 1; 1 -> 0; _ -> 3
-    , \x -> case x of 2 -> 1; _ -> 3
-    , \x -> case x of 0 -> 0; 2 -> 0; _ -> 3
-    , \x -> case x of 3 -> 0; _ -> 3
-    , \x -> case x of 0 -> 2; _ -> 4
-    , \x -> case x of 1 -> 1; _ -> 4
-    , \x -> case x of 0 -> 0; 1 -> 0; _ -> 4
-    , \x -> case x of 2 -> 0; _ -> 4
-    , \x -> case x of 0 -> 1; _ -> 5
-    , \x -> case x of 1 -> 0; _ -> 5
-    , \x -> case x of 0 -> 0; _ -> 6
-    , \_ -> 7
-    ]
-  , [ \x -> case x of 0 -> 7; _ -> 0
-    , \x -> case x of 1 -> 6; _ -> 0
-    , \x -> case x of 0 -> 1; 1 -> 4; _ -> 0
-    , \x -> case x of 0 -> 2; 1 -> 3; _ -> 0
-    , \x -> case x of 0 -> 3; 1 -> 2; _ -> 0
-    , \x -> case x of 0 -> 4; 1 -> 1; _ -> 0
-    , \x -> case x of 2 -> 5; _ -> 0
-    , \x -> case x of 0 -> 1; 2 -> 3; _ -> 0
-    , \x -> case x of 0 -> 2; 2 -> 2; _ -> 0
-    , \x -> case x of 0 -> 3; 2 -> 1; _ -> 0
-    , \x -> case x of 3 -> 4; _ -> 0
-    , \x -> case x of 0 -> 1; 3 -> 2; _ -> 0
-    , \x -> case x of 0 -> 2; 3 -> 1; _ -> 0
-    , \x -> case x of 1 -> 1; 2 -> 2; _ -> 0
-    , \x -> case x of 1 -> 2; 2 -> 1; _ -> 0
-    , \x -> case x of 4 -> 3; _ -> 0
-    , \x -> case x of 0 -> 1; 4 -> 1; _ -> 0
-    , \x -> case x of 1 -> 1; 3 -> 1; _ -> 0
-    , \x -> case x of 5 -> 2; _ -> 0
-    , \x -> case x of 6 -> 1; _ -> 0
-    , \x -> case x of 0 -> 6; _ -> 1
-    , \x -> case x of 1 -> 5; _ -> 1
-    , \x -> case x of 0 -> 0; 1 -> 4; _ -> 1
-    , \x -> case x of 0 -> 2; 1 -> 2; _ -> 1
-    , \x -> case x of 0 -> 4; 1 -> 0; _ -> 1
-    , \x -> case x of 2 -> 4; _ -> 1
-    , \x -> case x of 0 -> 0; 2 -> 3; _ -> 1
-    , \x -> case x of 0 -> 3; 2 -> 0; _ -> 1
-    , \x -> case x of 3 -> 3; _ -> 1
-    , \x -> case x of 0 -> 0; 3 -> 2; _ -> 1
-    , \x -> case x of 0 -> 2; 3 -> 0; _ -> 1
-    , \x -> case x of 1 -> 0; 2 -> 2; _ -> 1
-    , \x -> case x of 1 -> 2; 2 -> 0; _ -> 1
-    , \x -> case x of 4 -> 2; _ -> 1
-    , \x -> case x of 0 -> 0; 1 -> 0; 3 -> 0; _ -> 1
-    , \x -> case x of 0 -> 0; 5 -> 0; _ -> 1
-    , \x -> case x of 1 -> 0; 4 -> 0; _ -> 1
-    , \x -> case x of 2 -> 0; 3 -> 0; _ -> 1
-    , \x -> case x of 6 -> 0; _ -> 1
-    , \x -> case x of 0 -> 5; _ -> 2
-    , \x -> case x of 1 -> 4; _ -> 2
-    , \x -> case x of 0 -> 0; 1 -> 3; _ -> 2
-    , \x -> case x of 0 -> 3; 1 -> 0; _ -> 2
-    , \x -> case x of 2 -> 3; _ -> 2
-    , \x -> case x of 0 -> 1; 2 -> 1; _ -> 2
-    , \x -> case x of 0 -> 0; 3 -> 1; _ -> 2
-    , \x -> case x of 0 -> 1; 3 -> 0; _ -> 2
-    , \x -> case x of 1 -> 0; 2 -> 1; _ -> 2
-    , \x -> case x of 1 -> 1; 2 -> 0; _ -> 2
-    , \x -> case x of 4 -> 1; _ -> 2
-    , \x -> case x of 0 -> 0; 1 -> 0; 2 -> 0; _ -> 2
-    , \x -> case x of 0 -> 0; 4 -> 0; _ -> 2
-    , \x -> case x of 1 -> 0; 3 -> 0; _ -> 2
-    , \x -> case x of 5 -> 0; _ -> 2
-    , \x -> case x of 0 -> 4; _ -> 3
-    , \x -> case x of 0 -> 0; 1 -> 2; _ -> 3
-    , \x -> case x of 0 -> 1; 1 -> 1; _ -> 3
-    , \x -> case x of 0 -> 2; 1 -> 0; _ -> 3
-    , \x -> case x of 2 -> 2; _ -> 3
-    , \x -> case x of 0 -> 0; 2 -> 1; _ -> 3
-    , \x -> case x of 0 -> 1; 2 -> 0; _ -> 3
-    , \x -> case x of 3 -> 1; _ -> 3
-    , \x -> case x of 0 -> 0; 3 -> 0; _ -> 3
-    , \x -> case x of 1 -> 0; 2 -> 0; _ -> 3
-    , \x -> case x of 4 -> 0; _ -> 3
-    , \x -> case x of 0 -> 3; _ -> 4
-    , \x -> case x of 1 -> 2; _ -> 4
-    , \x -> case x of 0 -> 0; 1 -> 1; _ -> 4
-    , \x -> case x of 0 -> 1; 1 -> 0; _ -> 4
-    , \x -> case x of 2 -> 1; _ -> 4
-    , \x -> case x of 0 -> 0; 2 -> 0; _ -> 4
-    , \x -> case x of 3 -> 0; _ -> 4
-    , \x -> case x of 0 -> 2; _ -> 5
-    , \x -> case x of 1 -> 1; _ -> 5
-    , \x -> case x of 0 -> 0; 1 -> 0; _ -> 5
-    , \x -> case x of 2 -> 0; _ -> 5
-    , \x -> case x of 0 -> 1; _ -> 6
-    , \x -> case x of 1 -> 0; _ -> 6
-    , \x -> case x of 0 -> 0; _ -> 7
-    , \_ -> 8
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-4cases-Nat-U.out b/test/diff/tiers-4cases-Nat-U.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-Nat-U.out
+++ /dev/null
@@ -1,17 +0,0 @@
-map length (tiers :: [[ Nat->() ]])  =  [1,0,0,0,0,0,...]
-
-length (list :: [ Nat->() ])  =  1
-
-allUnique (list :: [ Nat->() ])  =  True
-
-ratioRepetitions (list :: [ Nat->() ])  =  0 % 1
-
-tiers :: [Nat->()]  =
-  [ [\_ -> ()]
-  , []
-  , []
-  , []
-  , []
-  , []
-  , ...
-  ]
diff --git a/test/diff/tiers-4cases-Nat2-Nat2.out b/test/diff/tiers-4cases-Nat2-Nat2.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-Nat2-Nat2.out
+++ /dev/null
@@ -1,15 +0,0 @@
-map length (tiers :: [[ Nat2->Nat2 ]])  =  [1,2,1]
-
-length (list :: [ Nat2->Nat2 ])  =  4
-
-allUnique (list :: [ Nat2->Nat2 ])  =  True
-
-ratioRepetitions (list :: [ Nat2->Nat2 ])  =  0 % 1
-
-tiers :: [Nat2->Nat2]  =
-  [ [\_ -> 0]
-  , [ \x -> case x of 0 -> 0; 1 -> 1
-    , \x -> case x of 0 -> 1; 1 -> 0
-    ]
-  , [\_ -> 1]
-  ]
diff --git a/test/diff/tiers-4cases-Nat2-Nat3.out b/test/diff/tiers-4cases-Nat2-Nat3.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-Nat2-Nat3.out
+++ /dev/null
@@ -1,22 +0,0 @@
-map length (tiers :: [[ Nat2->Nat3 ]])  =  [1,2,3,2,1]
-
-length (list :: [ Nat2->Nat3 ])  =  9
-
-allUnique (list :: [ Nat2->Nat3 ])  =  True
-
-ratioRepetitions (list :: [ Nat2->Nat3 ])  =  0 % 1
-
-tiers :: [Nat2->Nat3]  =
-  [ [\_ -> 0]
-  , [ \x -> case x of 0 -> 0; 1 -> 1
-    , \x -> case x of 0 -> 1; 1 -> 0
-    ]
-  , [ \x -> case x of 0 -> 0; 1 -> 2
-    , \_ -> 1
-    , \x -> case x of 0 -> 2; 1 -> 0
-    ]
-  , [ \x -> case x of 0 -> 1; 1 -> 2
-    , \x -> case x of 0 -> 2; 1 -> 1
-    ]
-  , [\_ -> 2]
-  ]
diff --git a/test/diff/tiers-4cases-Nat3-Nat2.out b/test/diff/tiers-4cases-Nat3-Nat2.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-Nat3-Nat2.out
+++ /dev/null
@@ -1,20 +0,0 @@
-map length (tiers :: [[ Nat3->Nat2 ]])  =  [1,3,3,1]
-
-length (list :: [ Nat3->Nat2 ])  =  8
-
-allUnique (list :: [ Nat3->Nat2 ])  =  True
-
-ratioRepetitions (list :: [ Nat3->Nat2 ])  =  0 % 1
-
-tiers :: [Nat3->Nat2]  =
-  [ [\_ -> 0]
-  , [ \x -> case x of 2 -> 1; _ -> 0
-    , \x -> case x of 1 -> 1; _ -> 0
-    , \x -> case x of 0 -> 1; _ -> 0
-    ]
-  , [ \x -> case x of 0 -> 0; _ -> 1
-    , \x -> case x of 1 -> 0; _ -> 1
-    , \x -> case x of 2 -> 0; _ -> 1
-    ]
-  , [\_ -> 1]
-  ]
diff --git a/test/diff/tiers-4cases-Nat3-Nat3.out b/test/diff/tiers-4cases-Nat3-Nat3.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-Nat3-Nat3.out
+++ /dev/null
@@ -1,42 +0,0 @@
-map length (tiers :: [[ Nat3->Nat3 ]])  =  [1,3,6,7,6,3,1]
-
-length (list :: [ Nat3->Nat3 ])  =  Infinity
-
-allUnique (list :: [ Nat3->Nat3 ])  =  True
-
-ratioRepetitions (list :: [ Nat3->Nat3 ])  =  0 % 1
-
-tiers :: [Nat3->Nat3]  =
-  [ [\_ -> 0]
-  , [ \x -> case x of 2 -> 1; _ -> 0
-    , \x -> case x of 1 -> 1; _ -> 0
-    , \x -> case x of 0 -> 1; _ -> 0
-    ]
-  , [ \x -> case x of 2 -> 2; _ -> 0
-    , \x -> case x of 0 -> 0; _ -> 1
-    , \x -> case x of 1 -> 2; _ -> 0
-    , \x -> case x of 1 -> 0; _ -> 1
-    , \x -> case x of 2 -> 0; _ -> 1
-    , \x -> case x of 0 -> 2; _ -> 0
-    ]
-  , [ \x -> case x of 0 -> 0; 1 -> 1; 2 -> 2
-    , \x -> case x of 0 -> 0; 1 -> 2; 2 -> 1
-    , \x -> case x of 0 -> 1; 1 -> 0; 2 -> 2
-    , \_ -> 1
-    , \x -> case x of 0 -> 1; 1 -> 2; 2 -> 0
-    , \x -> case x of 0 -> 2; 1 -> 0; 2 -> 1
-    , \x -> case x of 0 -> 2; 1 -> 1; 2 -> 0
-    ]
-  , [ \x -> case x of 0 -> 0; _ -> 2
-    , \x -> case x of 2 -> 2; _ -> 1
-    , \x -> case x of 1 -> 2; _ -> 1
-    , \x -> case x of 1 -> 0; _ -> 2
-    , \x -> case x of 0 -> 2; _ -> 1
-    , \x -> case x of 2 -> 0; _ -> 2
-    ]
-  , [ \x -> case x of 0 -> 1; _ -> 2
-    , \x -> case x of 1 -> 1; _ -> 2
-    , \x -> case x of 2 -> 1; _ -> 2
-    ]
-  , [\_ -> 2]
-  ]
diff --git a/test/diff/tiers-4cases-Nats-Nats.out b/test/diff/tiers-4cases-Nats-Nats.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-Nats-Nats.out
+++ /dev/null
@@ -1,135 +0,0 @@
-map length (tiers :: [[ [Nat]->[Nat] ]])  =  [1,1,4,10,29,75,...]
-
-length (list :: [ [Nat]->[Nat] ])  =  Infinity
-
-allUnique (list :: [ [Nat]->[Nat] ])  =  True
-
-ratioRepetitions (list :: [ [Nat]->[Nat] ])  =  0 % 1
-
-tiers :: [[Nat]->[Nat]]  =
-  [ [\_ -> []]
-  , [\_ -> [0]]
-  , [ \x -> case x of [] -> [0]; _ -> []
-    , \x -> case x of [] -> []; _ -> [0]
-    , \_ -> [0,0]
-    , \_ -> [1]
-    ]
-  , [ \x -> case x of [] -> [0,0]; _ -> []
-    , \x -> case x of [] -> [1]; _ -> []
-    , \x -> case x of [0] -> [0]; _ -> []
-    , \x -> case x of [0] -> []; _ -> [0]
-    , \x -> case x of [] -> []; _ -> [0,0]
-    , \x -> case x of [] -> []; _ -> [1]
-    , \_ -> [0,0,0]
-    , \_ -> [0,1]
-    , \_ -> [1,0]
-    , \_ -> [2]
-    ]
-  , [ \x -> case x of [] -> [0,0,0]; _ -> []
-    , \x -> case x of [] -> [0,1]; _ -> []
-    , \x -> case x of [] -> [1,0]; _ -> []
-    , \x -> case x of [] -> [2]; _ -> []
-    , \x -> case x of [0] -> [0,0]; _ -> []
-    , \x -> case x of [0] -> [1]; _ -> []
-    , \x -> case x of [0,0] -> [0]; _ -> []
-    , \x -> case x of [1] -> [0]; _ -> []
-    , \x -> case x of [] -> [0,0]; _ -> [0]
-    , \x -> case x of [] -> [1]; _ -> [0]
-    , \x -> case x of [] -> []; [0] -> []; _ -> [0]
-    , \x -> case x of [0,0] -> []; _ -> [0]
-    , \x -> case x of [1] -> []; _ -> [0]
-    , \x -> case x of [] -> [0]; _ -> [0,0]
-    , \x -> case x of [0] -> []; _ -> [0,0]
-    , \x -> case x of [] -> [0]; _ -> [1]
-    , \x -> case x of [0] -> []; _ -> [1]
-    , \x -> case x of [] -> []; _ -> [0,0,0]
-    , \x -> case x of [] -> []; _ -> [0,1]
-    , \x -> case x of [] -> []; _ -> [1,0]
-    , \x -> case x of [] -> []; _ -> [2]
-    , \_ -> [0,0,0,0]
-    , \_ -> [0,0,1]
-    , \_ -> [0,1,0]
-    , \_ -> [0,2]
-    , \_ -> [1,0,0]
-    , \_ -> [1,1]
-    , \_ -> [2,0]
-    , \_ -> [3]
-    ]
-  , [ \x -> case x of [] -> [0,0,0,0]; _ -> []
-    , \x -> case x of [] -> [0,0,1]; _ -> []
-    , \x -> case x of [] -> [0,1,0]; _ -> []
-    , \x -> case x of [] -> [0,2]; _ -> []
-    , \x -> case x of [] -> [1,0,0]; _ -> []
-    , \x -> case x of [] -> [1,1]; _ -> []
-    , \x -> case x of [] -> [2,0]; _ -> []
-    , \x -> case x of [] -> [3]; _ -> []
-    , \x -> case x of [0] -> [0,0,0]; _ -> []
-    , \x -> case x of [0] -> [0,1]; _ -> []
-    , \x -> case x of [0] -> [1,0]; _ -> []
-    , \x -> case x of [0] -> [2]; _ -> []
-    , \x -> case x of [] -> [0]; [0] -> [0]; _ -> []
-    , \x -> case x of [0,0] -> [0,0]; _ -> []
-    , \x -> case x of [0,0] -> [1]; _ -> []
-    , \x -> case x of [1] -> [0,0]; _ -> []
-    , \x -> case x of [1] -> [1]; _ -> []
-    , \x -> case x of [0,0,0] -> [0]; _ -> []
-    , \x -> case x of [0,1] -> [0]; _ -> []
-    , \x -> case x of [1,0] -> [0]; _ -> []
-    , \x -> case x of [2] -> [0]; _ -> []
-    , \x -> case x of [] -> [0,0,0]; _ -> [0]
-    , \x -> case x of [] -> [0,1]; _ -> [0]
-    , \x -> case x of [] -> [1,0]; _ -> [0]
-    , \x -> case x of [] -> [2]; _ -> [0]
-    , \x -> case x of [0] -> [0,0]; _ -> [0]
-    , \x -> case x of [0] -> [1]; _ -> [0]
-    , \x -> case x of [] -> []; [0,0] -> []; _ -> [0]
-    , \x -> case x of [] -> []; [1] -> []; _ -> [0]
-    , \x -> case x of [0,0,0] -> []; _ -> [0]
-    , \x -> case x of [0,1] -> []; _ -> [0]
-    , \x -> case x of [1,0] -> []; _ -> [0]
-    , \x -> case x of [2] -> []; _ -> [0]
-    , \x -> case x of [] -> [1]; _ -> [0,0]
-    , \x -> case x of [0] -> [0]; _ -> [0,0]
-    , \x -> case x of [] -> []; [0] -> []; _ -> [0,0]
-    , \x -> case x of [0,0] -> []; _ -> [0,0]
-    , \x -> case x of [1] -> []; _ -> [0,0]
-    , \x -> case x of [] -> [0,0]; _ -> [1]
-    , \x -> case x of [0] -> [0]; _ -> [1]
-    , \x -> case x of [] -> []; [0] -> []; _ -> [1]
-    , \x -> case x of [0,0] -> []; _ -> [1]
-    , \x -> case x of [1] -> []; _ -> [1]
-    , \x -> case x of [] -> [0]; _ -> [0,0,0]
-    , \x -> case x of [0] -> []; _ -> [0,0,0]
-    , \x -> case x of [] -> [0]; _ -> [0,1]
-    , \x -> case x of [0] -> []; _ -> [0,1]
-    , \x -> case x of [] -> [0]; _ -> [1,0]
-    , \x -> case x of [0] -> []; _ -> [1,0]
-    , \x -> case x of [] -> [0]; _ -> [2]
-    , \x -> case x of [0] -> []; _ -> [2]
-    , \x -> case x of [] -> []; _ -> [0,0,0,0]
-    , \x -> case x of [] -> []; _ -> [0,0,1]
-    , \x -> case x of [] -> []; _ -> [0,1,0]
-    , \x -> case x of [] -> []; _ -> [0,2]
-    , \x -> case x of [] -> []; _ -> [1,0,0]
-    , \x -> case x of [] -> []; _ -> [1,1]
-    , \x -> case x of [] -> []; _ -> [2,0]
-    , \x -> case x of [] -> []; _ -> [3]
-    , \_ -> [0,0,0,0,0]
-    , \_ -> [0,0,0,1]
-    , \_ -> [0,0,1,0]
-    , \_ -> [0,0,2]
-    , \_ -> [0,1,0,0]
-    , \_ -> [0,1,1]
-    , \_ -> [0,2,0]
-    , \_ -> [0,3]
-    , \_ -> [1,0,0,0]
-    , \_ -> [1,0,1]
-    , \_ -> [1,1,0]
-    , \_ -> [1,2]
-    , \_ -> [2,0,0]
-    , \_ -> [2,1]
-    , \_ -> [3,0]
-    , \_ -> [4]
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-4cases-U-Bool.out b/test/diff/tiers-4cases-U-Bool.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-U-Bool.out
+++ /dev/null
@@ -1,13 +0,0 @@
-map length (tiers :: [[ ()->Bool ]])  =  [2]
-
-length (list :: [ ()->Bool ])  =  2
-
-allUnique (list :: [ ()->Bool ])  =  True
-
-ratioRepetitions (list :: [ ()->Bool ])  =  0 % 1
-
-tiers :: [()->Bool]  =
-  [ [ \_ -> False
-    , \_ -> True
-    ]
-  ]
diff --git a/test/diff/tiers-4cases-U-Nat.out b/test/diff/tiers-4cases-U-Nat.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-U-Nat.out
+++ /dev/null
@@ -1,17 +0,0 @@
-map length (tiers :: [[ ()->Nat ]])  =  [1,1,1,1,1,1,...]
-
-length (list :: [ ()->Nat ])  =  Infinity
-
-allUnique (list :: [ ()->Nat ])  =  True
-
-ratioRepetitions (list :: [ ()->Nat ])  =  0 % 1
-
-tiers :: [()->Nat]  =
-  [ [\_ -> 0]
-  , [\_ -> 1]
-  , [\_ -> 2]
-  , [\_ -> 3]
-  , [\_ -> 4]
-  , [\_ -> 5]
-  , ...
-  ]
diff --git a/test/diff/tiers-4cases-U-U.out b/test/diff/tiers-4cases-U-U.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-U-U.out
+++ /dev/null
@@ -1,10 +0,0 @@
-map length (tiers :: [[ ()->() ]])  =  [1]
-
-length (list :: [ ()->() ])  =  1
-
-allUnique (list :: [ ()->() ])  =  True
-
-ratioRepetitions (list :: [ ()->() ])  =  0 % 1
-
-tiers :: [()->()]  =
-  [[\_ -> ()]]
diff --git a/test/diff/tiers-4cases-Us-Us.out b/test/diff/tiers-4cases-Us-Us.out
deleted file mode 100644
--- a/test/diff/tiers-4cases-Us-Us.out
+++ /dev/null
@@ -1,51 +0,0 @@
-map length (tiers :: [[ [()]->[()] ]])  =  [1,1,3,5,10,16,...]
-
-length (list :: [ [()]->[()] ])  =  Infinity
-
-allUnique (list :: [ [()]->[()] ])  =  True
-
-ratioRepetitions (list :: [ [()]->[()] ])  =  0 % 1
-
-tiers :: [[()]->[()]]  =
-  [ [\_ -> []]
-  , [\_ -> [()]]
-  , [ \x -> case x of [] -> [()]; _ -> []
-    , \x -> case x of [] -> []; _ -> [()]
-    , \_ -> [(),()]
-    ]
-  , [ \x -> case x of [] -> [(),()]; _ -> []
-    , \x -> case x of [()] -> [()]; _ -> []
-    , \x -> case x of [()] -> []; _ -> [()]
-    , \x -> case x of [] -> []; _ -> [(),()]
-    , \_ -> [(),(),()]
-    ]
-  , [ \x -> case x of [] -> [(),(),()]; _ -> []
-    , \x -> case x of [()] -> [(),()]; _ -> []
-    , \x -> case x of [(),()] -> [()]; _ -> []
-    , \x -> case x of [] -> [(),()]; _ -> [()]
-    , \x -> case x of [] -> []; [()] -> []; _ -> [()]
-    , \x -> case x of [(),()] -> []; _ -> [()]
-    , \x -> case x of [] -> [()]; _ -> [(),()]
-    , \x -> case x of [()] -> []; _ -> [(),()]
-    , \x -> case x of [] -> []; _ -> [(),(),()]
-    , \_ -> [(),(),(),()]
-    ]
-  , [ \x -> case x of [] -> [(),(),(),()]; _ -> []
-    , \x -> case x of [()] -> [(),(),()]; _ -> []
-    , \x -> case x of [] -> [()]; [()] -> [()]; _ -> []
-    , \x -> case x of [(),()] -> [(),()]; _ -> []
-    , \x -> case x of [(),(),()] -> [()]; _ -> []
-    , \x -> case x of [] -> [(),(),()]; _ -> [()]
-    , \x -> case x of [()] -> [(),()]; _ -> [()]
-    , \x -> case x of [] -> []; [(),()] -> []; _ -> [()]
-    , \x -> case x of [(),(),()] -> []; _ -> [()]
-    , \x -> case x of [()] -> [()]; _ -> [(),()]
-    , \x -> case x of [] -> []; [()] -> []; _ -> [(),()]
-    , \x -> case x of [(),()] -> []; _ -> [(),()]
-    , \x -> case x of [] -> [()]; _ -> [(),(),()]
-    , \x -> case x of [()] -> []; _ -> [(),(),()]
-    , \x -> case x of [] -> []; _ -> [(),(),(),()]
-    , \_ -> [(),(),(),(),()]
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-BagBool.out b/test/diff/tiers-BagBool.out
deleted file mode 100644
--- a/test/diff/tiers-BagBool.out
+++ /dev/null
@@ -1,100 +0,0 @@
-map length (tiers :: [[ Bag Bool ]])  =  [1,2,3,4,5,6,7,8,9,10,11,12,...]
-
-length (list :: [ Bag Bool ])  =  Infinity
-
-allUnique (list :: [ Bag Bool ])  =  True
-
-ratioRepetitions (list :: [ Bag Bool ])  =  0 % 1
-
-tiers :: [Bag Bool]  =
-  [ [Bag []]
-  , [ Bag [False]
-    , Bag [True]
-    ]
-  , [ Bag [False,False]
-    , Bag [False,True]
-    , Bag [True,True]
-    ]
-  , [ Bag [False,False,False]
-    , Bag [False,False,True]
-    , Bag [False,True,True]
-    , Bag [True,True,True]
-    ]
-  , [ Bag [False,False,False,False]
-    , Bag [False,False,False,True]
-    , Bag [False,False,True,True]
-    , Bag [False,True,True,True]
-    , Bag [True,True,True,True]
-    ]
-  , [ Bag [False,False,False,False,False]
-    , Bag [False,False,False,False,True]
-    , Bag [False,False,False,True,True]
-    , Bag [False,False,True,True,True]
-    , Bag [False,True,True,True,True]
-    , Bag [True,True,True,True,True]
-    ]
-  , [ Bag [False,False,False,False,False,False]
-    , Bag [False,False,False,False,False,True]
-    , Bag [False,False,False,False,True,True]
-    , Bag [False,False,False,True,True,True]
-    , Bag [False,False,True,True,True,True]
-    , Bag [False,True,True,True,True,True]
-    , Bag [True,True,True,True,True,True]
-    ]
-  , [ Bag [False,False,False,False,False,False,False]
-    , Bag [False,False,False,False,False,False,True]
-    , Bag [False,False,False,False,False,True,True]
-    , Bag [False,False,False,False,True,True,True]
-    , Bag [False,False,False,True,True,True,True]
-    , Bag [False,False,True,True,True,True,True]
-    , Bag [False,True,True,True,True,True,True]
-    , Bag [True,True,True,True,True,True,True]
-    ]
-  , [ Bag [False,False,False,False,False,False,False,False]
-    , Bag [False,False,False,False,False,False,False,True]
-    , Bag [False,False,False,False,False,False,True,True]
-    , Bag [False,False,False,False,False,True,True,True]
-    , Bag [False,False,False,False,True,True,True,True]
-    , Bag [False,False,False,True,True,True,True,True]
-    , Bag [False,False,True,True,True,True,True,True]
-    , Bag [False,True,True,True,True,True,True,True]
-    , Bag [True,True,True,True,True,True,True,True]
-    ]
-  , [ Bag [False,False,False,False,False,False,False,False,False]
-    , Bag [False,False,False,False,False,False,False,False,True]
-    , Bag [False,False,False,False,False,False,False,True,True]
-    , Bag [False,False,False,False,False,False,True,True,True]
-    , Bag [False,False,False,False,False,True,True,True,True]
-    , Bag [False,False,False,False,True,True,True,True,True]
-    , Bag [False,False,False,True,True,True,True,True,True]
-    , Bag [False,False,True,True,True,True,True,True,True]
-    , Bag [False,True,True,True,True,True,True,True,True]
-    , Bag [True,True,True,True,True,True,True,True,True]
-    ]
-  , [ Bag [False,False,False,False,False,False,False,False,False,False]
-    , Bag [False,False,False,False,False,False,False,False,False,True]
-    , Bag [False,False,False,False,False,False,False,False,True,True]
-    , Bag [False,False,False,False,False,False,False,True,True,True]
-    , Bag [False,False,False,False,False,False,True,True,True,True]
-    , Bag [False,False,False,False,False,True,True,True,True,True]
-    , Bag [False,False,False,False,True,True,True,True,True,True]
-    , Bag [False,False,False,True,True,True,True,True,True,True]
-    , Bag [False,False,True,True,True,True,True,True,True,True]
-    , Bag [False,True,True,True,True,True,True,True,True,True]
-    , Bag [True,True,True,True,True,True,True,True,True,True]
-    ]
-  , [ Bag [False,False,False,False,False,False,False,False,False,False,False]
-    , Bag [False,False,False,False,False,False,False,False,False,False,True]
-    , Bag [False,False,False,False,False,False,False,False,False,True,True]
-    , Bag [False,False,False,False,False,False,False,False,True,True,True]
-    , Bag [False,False,False,False,False,False,False,True,True,True,True]
-    , Bag [False,False,False,False,False,False,True,True,True,True,True]
-    , Bag [False,False,False,False,False,True,True,True,True,True,True]
-    , Bag [False,False,False,False,True,True,True,True,True,True,True]
-    , Bag [False,False,False,True,True,True,True,True,True,True,True]
-    , Bag [False,False,True,True,True,True,True,True,True,True,True]
-    , Bag [False,True,True,True,True,True,True,True,True,True,True]
-    , Bag [True,True,True,True,True,True,True,True,True,True,True]
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-BagNat.out b/test/diff/tiers-BagNat.out
deleted file mode 100644
--- a/test/diff/tiers-BagNat.out
+++ /dev/null
@@ -1,216 +0,0 @@
-map length (tiers :: [[ Bag Nat ]])  =  [1,1,2,3,5,7,11,15,22,30,42,56,...]
-
-length (list :: [ Bag Nat ])  =  Infinity
-
-allUnique (list :: [ Bag Nat ])  =  True
-
-ratioRepetitions (list :: [ Bag Nat ])  =  0 % 1
-
-tiers :: [Bag Nat]  =
-  [ [Bag []]
-  , [Bag [0]]
-  , [ Bag [0,0]
-    , Bag [1]
-    ]
-  , [ Bag [0,0,0]
-    , Bag [0,1]
-    , Bag [2]
-    ]
-  , [ Bag [0,0,0,0]
-    , Bag [0,0,1]
-    , Bag [0,2]
-    , Bag [1,1]
-    , Bag [3]
-    ]
-  , [ Bag [0,0,0,0,0]
-    , Bag [0,0,0,1]
-    , Bag [0,0,2]
-    , Bag [0,1,1]
-    , Bag [0,3]
-    , Bag [1,2]
-    , Bag [4]
-    ]
-  , [ Bag [0,0,0,0,0,0]
-    , Bag [0,0,0,0,1]
-    , Bag [0,0,0,2]
-    , Bag [0,0,1,1]
-    , Bag [0,0,3]
-    , Bag [0,1,2]
-    , Bag [0,4]
-    , Bag [1,1,1]
-    , Bag [1,3]
-    , Bag [2,2]
-    , Bag [5]
-    ]
-  , [ Bag [0,0,0,0,0,0,0]
-    , Bag [0,0,0,0,0,1]
-    , Bag [0,0,0,0,2]
-    , Bag [0,0,0,1,1]
-    , Bag [0,0,0,3]
-    , Bag [0,0,1,2]
-    , Bag [0,0,4]
-    , Bag [0,1,1,1]
-    , Bag [0,1,3]
-    , Bag [0,2,2]
-    , Bag [0,5]
-    , Bag [1,1,2]
-    , Bag [1,4]
-    , Bag [2,3]
-    , Bag [6]
-    ]
-  , [ Bag [0,0,0,0,0,0,0,0]
-    , Bag [0,0,0,0,0,0,1]
-    , Bag [0,0,0,0,0,2]
-    , Bag [0,0,0,0,1,1]
-    , Bag [0,0,0,0,3]
-    , Bag [0,0,0,1,2]
-    , Bag [0,0,0,4]
-    , Bag [0,0,1,1,1]
-    , Bag [0,0,1,3]
-    , Bag [0,0,2,2]
-    , Bag [0,0,5]
-    , Bag [0,1,1,2]
-    , Bag [0,1,4]
-    , Bag [0,2,3]
-    , Bag [0,6]
-    , Bag [1,1,1,1]
-    , Bag [1,1,3]
-    , Bag [1,2,2]
-    , Bag [1,5]
-    , Bag [2,4]
-    , Bag [3,3]
-    , Bag [7]
-    ]
-  , [ Bag [0,0,0,0,0,0,0,0,0]
-    , Bag [0,0,0,0,0,0,0,1]
-    , Bag [0,0,0,0,0,0,2]
-    , Bag [0,0,0,0,0,1,1]
-    , Bag [0,0,0,0,0,3]
-    , Bag [0,0,0,0,1,2]
-    , Bag [0,0,0,0,4]
-    , Bag [0,0,0,1,1,1]
-    , Bag [0,0,0,1,3]
-    , Bag [0,0,0,2,2]
-    , Bag [0,0,0,5]
-    , Bag [0,0,1,1,2]
-    , Bag [0,0,1,4]
-    , Bag [0,0,2,3]
-    , Bag [0,0,6]
-    , Bag [0,1,1,1,1]
-    , Bag [0,1,1,3]
-    , Bag [0,1,2,2]
-    , Bag [0,1,5]
-    , Bag [0,2,4]
-    , Bag [0,3,3]
-    , Bag [0,7]
-    , Bag [1,1,1,2]
-    , Bag [1,1,4]
-    , Bag [1,2,3]
-    , Bag [1,6]
-    , Bag [2,2,2]
-    , Bag [2,5]
-    , Bag [3,4]
-    , Bag [8]
-    ]
-  , [ Bag [0,0,0,0,0,0,0,0,0,0]
-    , Bag [0,0,0,0,0,0,0,0,1]
-    , Bag [0,0,0,0,0,0,0,2]
-    , Bag [0,0,0,0,0,0,1,1]
-    , Bag [0,0,0,0,0,0,3]
-    , Bag [0,0,0,0,0,1,2]
-    , Bag [0,0,0,0,0,4]
-    , Bag [0,0,0,0,1,1,1]
-    , Bag [0,0,0,0,1,3]
-    , Bag [0,0,0,0,2,2]
-    , Bag [0,0,0,0,5]
-    , Bag [0,0,0,1,1,2]
-    , Bag [0,0,0,1,4]
-    , Bag [0,0,0,2,3]
-    , Bag [0,0,0,6]
-    , Bag [0,0,1,1,1,1]
-    , Bag [0,0,1,1,3]
-    , Bag [0,0,1,2,2]
-    , Bag [0,0,1,5]
-    , Bag [0,0,2,4]
-    , Bag [0,0,3,3]
-    , Bag [0,0,7]
-    , Bag [0,1,1,1,2]
-    , Bag [0,1,1,4]
-    , Bag [0,1,2,3]
-    , Bag [0,1,6]
-    , Bag [0,2,2,2]
-    , Bag [0,2,5]
-    , Bag [0,3,4]
-    , Bag [0,8]
-    , Bag [1,1,1,1,1]
-    , Bag [1,1,1,3]
-    , Bag [1,1,2,2]
-    , Bag [1,1,5]
-    , Bag [1,2,4]
-    , Bag [1,3,3]
-    , Bag [1,7]
-    , Bag [2,2,3]
-    , Bag [2,6]
-    , Bag [3,5]
-    , Bag [4,4]
-    , Bag [9]
-    ]
-  , [ Bag [0,0,0,0,0,0,0,0,0,0,0]
-    , Bag [0,0,0,0,0,0,0,0,0,1]
-    , Bag [0,0,0,0,0,0,0,0,2]
-    , Bag [0,0,0,0,0,0,0,1,1]
-    , Bag [0,0,0,0,0,0,0,3]
-    , Bag [0,0,0,0,0,0,1,2]
-    , Bag [0,0,0,0,0,0,4]
-    , Bag [0,0,0,0,0,1,1,1]
-    , Bag [0,0,0,0,0,1,3]
-    , Bag [0,0,0,0,0,2,2]
-    , Bag [0,0,0,0,0,5]
-    , Bag [0,0,0,0,1,1,2]
-    , Bag [0,0,0,0,1,4]
-    , Bag [0,0,0,0,2,3]
-    , Bag [0,0,0,0,6]
-    , Bag [0,0,0,1,1,1,1]
-    , Bag [0,0,0,1,1,3]
-    , Bag [0,0,0,1,2,2]
-    , Bag [0,0,0,1,5]
-    , Bag [0,0,0,2,4]
-    , Bag [0,0,0,3,3]
-    , Bag [0,0,0,7]
-    , Bag [0,0,1,1,1,2]
-    , Bag [0,0,1,1,4]
-    , Bag [0,0,1,2,3]
-    , Bag [0,0,1,6]
-    , Bag [0,0,2,2,2]
-    , Bag [0,0,2,5]
-    , Bag [0,0,3,4]
-    , Bag [0,0,8]
-    , Bag [0,1,1,1,1,1]
-    , Bag [0,1,1,1,3]
-    , Bag [0,1,1,2,2]
-    , Bag [0,1,1,5]
-    , Bag [0,1,2,4]
-    , Bag [0,1,3,3]
-    , Bag [0,1,7]
-    , Bag [0,2,2,3]
-    , Bag [0,2,6]
-    , Bag [0,3,5]
-    , Bag [0,4,4]
-    , Bag [0,9]
-    , Bag [1,1,1,1,2]
-    , Bag [1,1,1,4]
-    , Bag [1,1,2,3]
-    , Bag [1,1,6]
-    , Bag [1,2,2,2]
-    , Bag [1,2,5]
-    , Bag [1,3,4]
-    , Bag [1,8]
-    , Bag [2,2,4]
-    , Bag [2,3,3]
-    , Bag [2,7]
-    , Bag [3,6]
-    , Bag [4,5]
-    , Bag [10]
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-BagNat2.out b/test/diff/tiers-BagNat2.out
deleted file mode 100644
--- a/test/diff/tiers-BagNat2.out
+++ /dev/null
@@ -1,63 +0,0 @@
-map length (tiers :: [[ Bag Nat2 ]])  =  [1,1,2,2,3,3,4,4,5,5,6,6,...]
-
-length (list :: [ Bag Nat2 ])  =  Infinity
-
-allUnique (list :: [ Bag Nat2 ])  =  True
-
-ratioRepetitions (list :: [ Bag Nat2 ])  =  0 % 1
-
-tiers :: [Bag Nat2]  =
-  [ [Bag []]
-  , [Bag [0]]
-  , [ Bag [0,0]
-    , Bag [1]
-    ]
-  , [ Bag [0,0,0]
-    , Bag [0,1]
-    ]
-  , [ Bag [0,0,0,0]
-    , Bag [0,0,1]
-    , Bag [1,1]
-    ]
-  , [ Bag [0,0,0,0,0]
-    , Bag [0,0,0,1]
-    , Bag [0,1,1]
-    ]
-  , [ Bag [0,0,0,0,0,0]
-    , Bag [0,0,0,0,1]
-    , Bag [0,0,1,1]
-    , Bag [1,1,1]
-    ]
-  , [ Bag [0,0,0,0,0,0,0]
-    , Bag [0,0,0,0,0,1]
-    , Bag [0,0,0,1,1]
-    , Bag [0,1,1,1]
-    ]
-  , [ Bag [0,0,0,0,0,0,0,0]
-    , Bag [0,0,0,0,0,0,1]
-    , Bag [0,0,0,0,1,1]
-    , Bag [0,0,1,1,1]
-    , Bag [1,1,1,1]
-    ]
-  , [ Bag [0,0,0,0,0,0,0,0,0]
-    , Bag [0,0,0,0,0,0,0,1]
-    , Bag [0,0,0,0,0,1,1]
-    , Bag [0,0,0,1,1,1]
-    , Bag [0,1,1,1,1]
-    ]
-  , [ Bag [0,0,0,0,0,0,0,0,0,0]
-    , Bag [0,0,0,0,0,0,0,0,1]
-    , Bag [0,0,0,0,0,0,1,1]
-    , Bag [0,0,0,0,1,1,1]
-    , Bag [0,0,1,1,1,1]
-    , Bag [1,1,1,1,1]
-    ]
-  , [ Bag [0,0,0,0,0,0,0,0,0,0,0]
-    , Bag [0,0,0,0,0,0,0,0,0,1]
-    , Bag [0,0,0,0,0,0,0,1,1]
-    , Bag [0,0,0,0,0,1,1,1]
-    , Bag [0,0,0,1,1,1,1]
-    , Bag [0,1,1,1,1,1]
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-BagNat3.out b/test/diff/tiers-BagNat3.out
deleted file mode 100644
--- a/test/diff/tiers-BagNat3.out
+++ /dev/null
@@ -1,104 +0,0 @@
-map length (tiers :: [[ Bag Nat3 ]])  =  [1,1,2,3,4,5,7,8,10,12,14,16,...]
-
-length (list :: [ Bag Nat3 ])  =  Infinity
-
-allUnique (list :: [ Bag Nat3 ])  =  True
-
-ratioRepetitions (list :: [ Bag Nat3 ])  =  0 % 1
-
-tiers :: [Bag Nat3]  =
-  [ [Bag []]
-  , [Bag [0]]
-  , [ Bag [0,0]
-    , Bag [1]
-    ]
-  , [ Bag [0,0,0]
-    , Bag [0,1]
-    , Bag [2]
-    ]
-  , [ Bag [0,0,0,0]
-    , Bag [0,0,1]
-    , Bag [0,2]
-    , Bag [1,1]
-    ]
-  , [ Bag [0,0,0,0,0]
-    , Bag [0,0,0,1]
-    , Bag [0,0,2]
-    , Bag [0,1,1]
-    , Bag [1,2]
-    ]
-  , [ Bag [0,0,0,0,0,0]
-    , Bag [0,0,0,0,1]
-    , Bag [0,0,0,2]
-    , Bag [0,0,1,1]
-    , Bag [0,1,2]
-    , Bag [1,1,1]
-    , Bag [2,2]
-    ]
-  , [ Bag [0,0,0,0,0,0,0]
-    , Bag [0,0,0,0,0,1]
-    , Bag [0,0,0,0,2]
-    , Bag [0,0,0,1,1]
-    , Bag [0,0,1,2]
-    , Bag [0,1,1,1]
-    , Bag [0,2,2]
-    , Bag [1,1,2]
-    ]
-  , [ Bag [0,0,0,0,0,0,0,0]
-    , Bag [0,0,0,0,0,0,1]
-    , Bag [0,0,0,0,0,2]
-    , Bag [0,0,0,0,1,1]
-    , Bag [0,0,0,1,2]
-    , Bag [0,0,1,1,1]
-    , Bag [0,0,2,2]
-    , Bag [0,1,1,2]
-    , Bag [1,1,1,1]
-    , Bag [1,2,2]
-    ]
-  , [ Bag [0,0,0,0,0,0,0,0,0]
-    , Bag [0,0,0,0,0,0,0,1]
-    , Bag [0,0,0,0,0,0,2]
-    , Bag [0,0,0,0,0,1,1]
-    , Bag [0,0,0,0,1,2]
-    , Bag [0,0,0,1,1,1]
-    , Bag [0,0,0,2,2]
-    , Bag [0,0,1,1,2]
-    , Bag [0,1,1,1,1]
-    , Bag [0,1,2,2]
-    , Bag [1,1,1,2]
-    , Bag [2,2,2]
-    ]
-  , [ Bag [0,0,0,0,0,0,0,0,0,0]
-    , Bag [0,0,0,0,0,0,0,0,1]
-    , Bag [0,0,0,0,0,0,0,2]
-    , Bag [0,0,0,0,0,0,1,1]
-    , Bag [0,0,0,0,0,1,2]
-    , Bag [0,0,0,0,1,1,1]
-    , Bag [0,0,0,0,2,2]
-    , Bag [0,0,0,1,1,2]
-    , Bag [0,0,1,1,1,1]
-    , Bag [0,0,1,2,2]
-    , Bag [0,1,1,1,2]
-    , Bag [0,2,2,2]
-    , Bag [1,1,1,1,1]
-    , Bag [1,1,2,2]
-    ]
-  , [ Bag [0,0,0,0,0,0,0,0,0,0,0]
-    , Bag [0,0,0,0,0,0,0,0,0,1]
-    , Bag [0,0,0,0,0,0,0,0,2]
-    , Bag [0,0,0,0,0,0,0,1,1]
-    , Bag [0,0,0,0,0,0,1,2]
-    , Bag [0,0,0,0,0,1,1,1]
-    , Bag [0,0,0,0,0,2,2]
-    , Bag [0,0,0,0,1,1,2]
-    , Bag [0,0,0,1,1,1,1]
-    , Bag [0,0,0,1,2,2]
-    , Bag [0,0,1,1,1,2]
-    , Bag [0,0,2,2,2]
-    , Bag [0,1,1,1,1,1]
-    , Bag [0,1,1,2,2]
-    , Bag [1,1,1,1,2]
-    , Bag [1,2,2,2]
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-BagU.out b/test/diff/tiers-BagU.out
deleted file mode 100644
--- a/test/diff/tiers-BagU.out
+++ /dev/null
@@ -1,23 +0,0 @@
-map length (tiers :: [[ Bag () ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,...]
-
-length (list :: [ Bag () ])  =  Infinity
-
-allUnique (list :: [ Bag () ])  =  True
-
-ratioRepetitions (list :: [ Bag () ])  =  0 % 1
-
-tiers :: [Bag ()]  =
-  [ [Bag []]
-  , [Bag [()]]
-  , [Bag [(),()]]
-  , [Bag [(),(),()]]
-  , [Bag [(),(),(),()]]
-  , [Bag [(),(),(),(),()]]
-  , [Bag [(),(),(),(),(),()]]
-  , [Bag [(),(),(),(),(),(),()]]
-  , [Bag [(),(),(),(),(),(),(),()]]
-  , [Bag [(),(),(),(),(),(),(),(),()]]
-  , [Bag [(),(),(),(),(),(),(),(),(),()]]
-  , [Bag [(),(),(),(),(),(),(),(),(),(),()]]
-  , ...
-  ]
diff --git a/test/diff/tiers-Bool.out b/test/diff/tiers-Bool.out
deleted file mode 100644
--- a/test/diff/tiers-Bool.out
+++ /dev/null
@@ -1,13 +0,0 @@
-map length (tiers :: [[ Bool ]])  =  [2]
-
-length (list :: [ Bool ])  =  2
-
-allUnique (list :: [ Bool ])  =  True
-
-ratioRepetitions (list :: [ Bool ])  =  0 % 1
-
-tiers :: [Bool]  =
-  [ [ False
-    , True
-    ]
-  ]
diff --git a/test/diff/tiers-Bools.out b/test/diff/tiers-Bools.out
deleted file mode 100644
--- a/test/diff/tiers-Bools.out
+++ /dev/null
@@ -1,79 +0,0 @@
-map length (tiers :: [[ [Bool] ]])  =  [1,2,4,8,16,32,...]
-
-length (list :: [ [Bool] ])  =  Infinity
-
-allUnique (list :: [ [Bool] ])  =  True
-
-ratioRepetitions (list :: [ [Bool] ])  =  0 % 1
-
-tiers :: [[Bool]]  =
-  [ [[]]
-  , [ [False]
-    , [True]
-    ]
-  , [ [False,False]
-    , [False,True]
-    , [True,False]
-    , [True,True]
-    ]
-  , [ [False,False,False]
-    , [False,False,True]
-    , [False,True,False]
-    , [False,True,True]
-    , [True,False,False]
-    , [True,False,True]
-    , [True,True,False]
-    , [True,True,True]
-    ]
-  , [ [False,False,False,False]
-    , [False,False,False,True]
-    , [False,False,True,False]
-    , [False,False,True,True]
-    , [False,True,False,False]
-    , [False,True,False,True]
-    , [False,True,True,False]
-    , [False,True,True,True]
-    , [True,False,False,False]
-    , [True,False,False,True]
-    , [True,False,True,False]
-    , [True,False,True,True]
-    , [True,True,False,False]
-    , [True,True,False,True]
-    , [True,True,True,False]
-    , [True,True,True,True]
-    ]
-  , [ [False,False,False,False,False]
-    , [False,False,False,False,True]
-    , [False,False,False,True,False]
-    , [False,False,False,True,True]
-    , [False,False,True,False,False]
-    , [False,False,True,False,True]
-    , [False,False,True,True,False]
-    , [False,False,True,True,True]
-    , [False,True,False,False,False]
-    , [False,True,False,False,True]
-    , [False,True,False,True,False]
-    , [False,True,False,True,True]
-    , [False,True,True,False,False]
-    , [False,True,True,False,True]
-    , [False,True,True,True,False]
-    , [False,True,True,True,True]
-    , [True,False,False,False,False]
-    , [True,False,False,False,True]
-    , [True,False,False,True,False]
-    , [True,False,False,True,True]
-    , [True,False,True,False,False]
-    , [True,False,True,False,True]
-    , [True,False,True,True,False]
-    , [True,False,True,True,True]
-    , [True,True,False,False,False]
-    , [True,True,False,False,True]
-    , [True,True,False,True,False]
-    , [True,True,False,True,True]
-    , [True,True,True,False,False]
-    , [True,True,True,False,True]
-    , [True,True,True,True,False]
-    , [True,True,True,True,True]
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-Char.out b/test/diff/tiers-Char.out
deleted file mode 100644
--- a/test/diff/tiers-Char.out
+++ /dev/null
@@ -1,23 +0,0 @@
-map length (tiers :: [[ Char ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,...]
-
-length (list :: [ Char ])  =  Infinity
-
-allUnique (list :: [ Char ])  =  True
-
-ratioRepetitions (list :: [ Char ])  =  0 % 1
-
-tiers :: [Char]  =
-  [ ['a']
-  , [' ']
-  , ['b']
-  , ['A']
-  , ['c']
-  , ['\n']
-  , ['d']
-  , ['0']
-  , ['e']
-  , ['B']
-  , ['f']
-  , ['!']
-  , ...
-  ]
diff --git a/test/diff/tiers-ComplexDouble.out b/test/diff/tiers-ComplexDouble.out
deleted file mode 100644
--- a/test/diff/tiers-ComplexDouble.out
+++ /dev/null
@@ -1,88 +0,0 @@
-map length (tiers :: [[ Complex Double ]])  =  [0,1,2,3,4,5,6,7,8,9,10,11,...]
-
-length (list :: [ Complex Double ])  =  Infinity
-
-allUnique (list :: [ Complex Double ])  =  True
-
-ratioRepetitions (list :: [ Complex Double ])  =  0 % 1
-
-tiers :: [Complex Double]  =
-  [ []
-  , [0.0 :+ 0.0]
-  , [ 0.0 :+ 1.0
-    , 1.0 :+ 0.0
-    ]
-  , [ 0.0 :+ (-1.0)
-    , 1.0 :+ 1.0
-    , (-1.0) :+ 0.0
-    ]
-  , [ 0.0 :+ 0.5
-    , 1.0 :+ (-1.0)
-    , (-1.0) :+ 1.0
-    , 0.5 :+ 0.0
-    ]
-  , [ 0.0 :+ (-0.5)
-    , 1.0 :+ 0.5
-    , (-1.0) :+ (-1.0)
-    , 0.5 :+ 1.0
-    , (-0.5) :+ 0.0
-    ]
-  , [ 0.0 :+ 2.0
-    , 1.0 :+ (-0.5)
-    , (-1.0) :+ 0.5
-    , 0.5 :+ (-1.0)
-    , (-0.5) :+ 1.0
-    , 2.0 :+ 0.0
-    ]
-  , [ 0.0 :+ Infinity
-    , 1.0 :+ 2.0
-    , (-1.0) :+ (-0.5)
-    , 0.5 :+ 0.5
-    , (-0.5) :+ (-1.0)
-    , 2.0 :+ 1.0
-    , Infinity :+ 0.0
-    ]
-  , [ 0.0 :+ (-Infinity)
-    , 1.0 :+ Infinity
-    , (-1.0) :+ 2.0
-    , 0.5 :+ (-0.5)
-    , (-0.5) :+ 0.5
-    , 2.0 :+ (-1.0)
-    , Infinity :+ 1.0
-    , (-Infinity) :+ 0.0
-    ]
-  , [ 0.0 :+ (-2.0)
-    , 1.0 :+ (-Infinity)
-    , (-1.0) :+ Infinity
-    , 0.5 :+ 2.0
-    , (-0.5) :+ (-0.5)
-    , 2.0 :+ 0.5
-    , Infinity :+ (-1.0)
-    , (-Infinity) :+ 1.0
-    , (-2.0) :+ 0.0
-    ]
-  , [ 0.0 :+ 0.3333333333333333
-    , 1.0 :+ (-2.0)
-    , (-1.0) :+ (-Infinity)
-    , 0.5 :+ Infinity
-    , (-0.5) :+ 2.0
-    , 2.0 :+ (-0.5)
-    , Infinity :+ 0.5
-    , (-Infinity) :+ (-1.0)
-    , (-2.0) :+ 1.0
-    , 0.3333333333333333 :+ 0.0
-    ]
-  , [ 0.0 :+ (-0.3333333333333333)
-    , 1.0 :+ 0.3333333333333333
-    , (-1.0) :+ (-2.0)
-    , 0.5 :+ (-Infinity)
-    , (-0.5) :+ Infinity
-    , 2.0 :+ 2.0
-    , Infinity :+ (-0.5)
-    , (-Infinity) :+ 0.5
-    , (-2.0) :+ (-1.0)
-    , 0.3333333333333333 :+ 1.0
-    , (-0.3333333333333333) :+ 0.0
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-Double.out b/test/diff/tiers-Double.out
deleted file mode 100644
--- a/test/diff/tiers-Double.out
+++ /dev/null
@@ -1,23 +0,0 @@
-map length (tiers :: [[ Double ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,...]
-
-length (list :: [ Double ])  =  Infinity
-
-allUnique (list :: [ Double ])  =  True
-
-ratioRepetitions (list :: [ Double ])  =  0 % 1
-
-tiers :: [Double]  =
-  [ [0.0]
-  , [1.0]
-  , [-1.0]
-  , [0.5]
-  , [-0.5]
-  , [2.0]
-  , [Infinity]
-  , [-Infinity]
-  , [-2.0]
-  , [0.3333333333333333]
-  , [-0.3333333333333333]
-  , [1.5]
-  , ...
-  ]
diff --git a/test/diff/tiers-Float.out b/test/diff/tiers-Float.out
deleted file mode 100644
--- a/test/diff/tiers-Float.out
+++ /dev/null
@@ -1,23 +0,0 @@
-map length (tiers :: [[ Float ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,...]
-
-length (list :: [ Float ])  =  Infinity
-
-allUnique (list :: [ Float ])  =  True
-
-ratioRepetitions (list :: [ Float ])  =  0 % 1
-
-tiers :: [Float]  =
-  [ [0.0]
-  , [1.0]
-  , [-1.0]
-  , [0.5]
-  , [-0.5]
-  , [2.0]
-  , [Infinity]
-  , [-Infinity]
-  , [-2.0]
-  , [0.33333334]
-  , [-0.33333334]
-  , [1.5]
-  , ...
-  ]
diff --git a/test/diff/tiers-Int,Int,Int.out b/test/diff/tiers-Int,Int,Int.out
deleted file mode 100644
--- a/test/diff/tiers-Int,Int,Int.out
+++ /dev/null
@@ -1,72 +0,0 @@
-map length (tiers :: [[ (Int,Int,Int) ]])  =  [1,3,6,10,15,21,...]
-
-length (list :: [ (Int,Int,Int) ])  =  Infinity
-
-allUnique (list :: [ (Int,Int,Int) ])  =  True
-
-ratioRepetitions (list :: [ (Int,Int,Int) ])  =  0 % 1
-
-tiers :: [(Int,Int,Int)]  =
-  [ [(0,0,0)]
-  , [ (0,0,1)
-    , (0,1,0)
-    , (1,0,0)
-    ]
-  , [ (0,0,-1)
-    , (0,1,1)
-    , (0,-1,0)
-    , (1,0,1)
-    , (1,1,0)
-    , (-1,0,0)
-    ]
-  , [ (0,0,2)
-    , (0,1,-1)
-    , (0,-1,1)
-    , (0,2,0)
-    , (1,0,-1)
-    , (1,1,1)
-    , (1,-1,0)
-    , (-1,0,1)
-    , (-1,1,0)
-    , (2,0,0)
-    ]
-  , [ (0,0,-2)
-    , (0,1,2)
-    , (0,-1,-1)
-    , (0,2,1)
-    , (0,-2,0)
-    , (1,0,2)
-    , (1,1,-1)
-    , (1,-1,1)
-    , (1,2,0)
-    , (-1,0,-1)
-    , (-1,1,1)
-    , (-1,-1,0)
-    , (2,0,1)
-    , (2,1,0)
-    , (-2,0,0)
-    ]
-  , [ (0,0,3)
-    , (0,1,-2)
-    , (0,-1,2)
-    , (0,2,-1)
-    , (0,-2,1)
-    , (0,3,0)
-    , (1,0,-2)
-    , (1,1,2)
-    , (1,-1,-1)
-    , (1,2,1)
-    , (1,-2,0)
-    , (-1,0,2)
-    , (-1,1,-1)
-    , (-1,-1,1)
-    , (-1,2,0)
-    , (2,0,-1)
-    , (2,1,1)
-    , (2,-1,0)
-    , (-2,0,1)
-    , (-2,1,0)
-    , (3,0,0)
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-Int,Int.out b/test/diff/tiers-Int,Int.out
deleted file mode 100644
--- a/test/diff/tiers-Int,Int.out
+++ /dev/null
@@ -1,100 +0,0 @@
-map length (tiers :: [[ (Int,Int) ]])  =  [1,2,3,4,5,6,7,8,9,10,11,12,...]
-
-length (list :: [ (Int,Int) ])  =  Infinity
-
-allUnique (list :: [ (Int,Int) ])  =  True
-
-ratioRepetitions (list :: [ (Int,Int) ])  =  0 % 1
-
-tiers :: [(Int,Int)]  =
-  [ [(0,0)]
-  , [ (0,1)
-    , (1,0)
-    ]
-  , [ (0,-1)
-    , (1,1)
-    , (-1,0)
-    ]
-  , [ (0,2)
-    , (1,-1)
-    , (-1,1)
-    , (2,0)
-    ]
-  , [ (0,-2)
-    , (1,2)
-    , (-1,-1)
-    , (2,1)
-    , (-2,0)
-    ]
-  , [ (0,3)
-    , (1,-2)
-    , (-1,2)
-    , (2,-1)
-    , (-2,1)
-    , (3,0)
-    ]
-  , [ (0,-3)
-    , (1,3)
-    , (-1,-2)
-    , (2,2)
-    , (-2,-1)
-    , (3,1)
-    , (-3,0)
-    ]
-  , [ (0,4)
-    , (1,-3)
-    , (-1,3)
-    , (2,-2)
-    , (-2,2)
-    , (3,-1)
-    , (-3,1)
-    , (4,0)
-    ]
-  , [ (0,-4)
-    , (1,4)
-    , (-1,-3)
-    , (2,3)
-    , (-2,-2)
-    , (3,2)
-    , (-3,-1)
-    , (4,1)
-    , (-4,0)
-    ]
-  , [ (0,5)
-    , (1,-4)
-    , (-1,4)
-    , (2,-3)
-    , (-2,3)
-    , (3,-2)
-    , (-3,2)
-    , (4,-1)
-    , (-4,1)
-    , (5,0)
-    ]
-  , [ (0,-5)
-    , (1,5)
-    , (-1,-4)
-    , (2,4)
-    , (-2,-3)
-    , (3,3)
-    , (-3,-2)
-    , (4,2)
-    , (-4,-1)
-    , (5,1)
-    , (-5,0)
-    ]
-  , [ (0,6)
-    , (1,-5)
-    , (-1,5)
-    , (2,-4)
-    , (-2,4)
-    , (3,-3)
-    , (-3,3)
-    , (4,-2)
-    , (-4,2)
-    , (5,-1)
-    , (-5,1)
-    , (6,0)
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-Int.out b/test/diff/tiers-Int.out
deleted file mode 100644
--- a/test/diff/tiers-Int.out
+++ /dev/null
@@ -1,23 +0,0 @@
-map length (tiers :: [[ Int ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,...]
-
-length (list :: [ Int ])  =  Infinity
-
-allUnique (list :: [ Int ])  =  True
-
-ratioRepetitions (list :: [ Int ])  =  0 % 1
-
-tiers :: [Int]  =
-  [ [0]
-  , [1]
-  , [-1]
-  , [2]
-  , [-2]
-  , [3]
-  , [-3]
-  , [4]
-  , [-4]
-  , [5]
-  , [-5]
-  , [6]
-  , ...
-  ]
diff --git a/test/diff/tiers-Int2.out b/test/diff/tiers-Int2.out
deleted file mode 100644
--- a/test/diff/tiers-Int2.out
+++ /dev/null
@@ -1,14 +0,0 @@
-map length (tiers :: [[ Int2 ]])  =  [1,1,1,1]
-
-length (list :: [ Int2 ])  =  4
-
-allUnique (list :: [ Int2 ])  =  True
-
-ratioRepetitions (list :: [ Int2 ])  =  0 % 1
-
-tiers :: [Int2]  =
-  [ [0]
-  , [1]
-  , [-1]
-  , [-2]
-  ]
diff --git a/test/diff/tiers-Int3.out b/test/diff/tiers-Int3.out
deleted file mode 100644
--- a/test/diff/tiers-Int3.out
+++ /dev/null
@@ -1,18 +0,0 @@
-map length (tiers :: [[ Int3 ]])  =  [1,1,1,1,1,1,1,1]
-
-length (list :: [ Int3 ])  =  8
-
-allUnique (list :: [ Int3 ])  =  True
-
-ratioRepetitions (list :: [ Int3 ])  =  0 % 1
-
-tiers :: [Int3]  =
-  [ [0]
-  , [1]
-  , [-1]
-  , [2]
-  , [-2]
-  , [3]
-  , [-3]
-  , [-4]
-  ]
diff --git a/test/diff/tiers-Int4.out b/test/diff/tiers-Int4.out
deleted file mode 100644
--- a/test/diff/tiers-Int4.out
+++ /dev/null
@@ -1,26 +0,0 @@
-map length (tiers :: [[ Int4 ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
-
-length (list :: [ Int4 ])  =  Infinity
-
-allUnique (list :: [ Int4 ])  =  True
-
-ratioRepetitions (list :: [ Int4 ])  =  0 % 1
-
-tiers :: [Int4]  =
-  [ [0]
-  , [1]
-  , [-1]
-  , [2]
-  , [-2]
-  , [3]
-  , [-3]
-  , [4]
-  , [-4]
-  , [5]
-  , [-5]
-  , [6]
-  , [-6]
-  , [7]
-  , [-7]
-  , [-8]
-  ]
diff --git a/test/diff/tiers-Int8.out b/test/diff/tiers-Int8.out
deleted file mode 100644
--- a/test/diff/tiers-Int8.out
+++ /dev/null
@@ -1,266 +0,0 @@
-map length (tiers :: [[ Int8 ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
-
-length (list :: [ Int8 ])  =  Infinity
-
-allUnique (list :: [ Int8 ])  =  True
-
-ratioRepetitions (list :: [ Int8 ])  =  0 % 1
-
-tiers :: [Int8]  =
-  [ [0]
-  , [1]
-  , [-1]
-  , [2]
-  , [-2]
-  , [3]
-  , [-3]
-  , [4]
-  , [-4]
-  , [5]
-  , [-5]
-  , [6]
-  , [-6]
-  , [7]
-  , [-7]
-  , [8]
-  , [-8]
-  , [9]
-  , [-9]
-  , [10]
-  , [-10]
-  , [11]
-  , [-11]
-  , [12]
-  , [-12]
-  , [13]
-  , [-13]
-  , [14]
-  , [-14]
-  , [15]
-  , [-15]
-  , [16]
-  , [-16]
-  , [17]
-  , [-17]
-  , [18]
-  , [-18]
-  , [19]
-  , [-19]
-  , [20]
-  , [-20]
-  , [21]
-  , [-21]
-  , [22]
-  , [-22]
-  , [23]
-  , [-23]
-  , [24]
-  , [-24]
-  , [25]
-  , [-25]
-  , [26]
-  , [-26]
-  , [27]
-  , [-27]
-  , [28]
-  , [-28]
-  , [29]
-  , [-29]
-  , [30]
-  , [-30]
-  , [31]
-  , [-31]
-  , [32]
-  , [-32]
-  , [33]
-  , [-33]
-  , [34]
-  , [-34]
-  , [35]
-  , [-35]
-  , [36]
-  , [-36]
-  , [37]
-  , [-37]
-  , [38]
-  , [-38]
-  , [39]
-  , [-39]
-  , [40]
-  , [-40]
-  , [41]
-  , [-41]
-  , [42]
-  , [-42]
-  , [43]
-  , [-43]
-  , [44]
-  , [-44]
-  , [45]
-  , [-45]
-  , [46]
-  , [-46]
-  , [47]
-  , [-47]
-  , [48]
-  , [-48]
-  , [49]
-  , [-49]
-  , [50]
-  , [-50]
-  , [51]
-  , [-51]
-  , [52]
-  , [-52]
-  , [53]
-  , [-53]
-  , [54]
-  , [-54]
-  , [55]
-  , [-55]
-  , [56]
-  , [-56]
-  , [57]
-  , [-57]
-  , [58]
-  , [-58]
-  , [59]
-  , [-59]
-  , [60]
-  , [-60]
-  , [61]
-  , [-61]
-  , [62]
-  , [-62]
-  , [63]
-  , [-63]
-  , [64]
-  , [-64]
-  , [65]
-  , [-65]
-  , [66]
-  , [-66]
-  , [67]
-  , [-67]
-  , [68]
-  , [-68]
-  , [69]
-  , [-69]
-  , [70]
-  , [-70]
-  , [71]
-  , [-71]
-  , [72]
-  , [-72]
-  , [73]
-  , [-73]
-  , [74]
-  , [-74]
-  , [75]
-  , [-75]
-  , [76]
-  , [-76]
-  , [77]
-  , [-77]
-  , [78]
-  , [-78]
-  , [79]
-  , [-79]
-  , [80]
-  , [-80]
-  , [81]
-  , [-81]
-  , [82]
-  , [-82]
-  , [83]
-  , [-83]
-  , [84]
-  , [-84]
-  , [85]
-  , [-85]
-  , [86]
-  , [-86]
-  , [87]
-  , [-87]
-  , [88]
-  , [-88]
-  , [89]
-  , [-89]
-  , [90]
-  , [-90]
-  , [91]
-  , [-91]
-  , [92]
-  , [-92]
-  , [93]
-  , [-93]
-  , [94]
-  , [-94]
-  , [95]
-  , [-95]
-  , [96]
-  , [-96]
-  , [97]
-  , [-97]
-  , [98]
-  , [-98]
-  , [99]
-  , [-99]
-  , [100]
-  , [-100]
-  , [101]
-  , [-101]
-  , [102]
-  , [-102]
-  , [103]
-  , [-103]
-  , [104]
-  , [-104]
-  , [105]
-  , [-105]
-  , [106]
-  , [-106]
-  , [107]
-  , [-107]
-  , [108]
-  , [-108]
-  , [109]
-  , [-109]
-  , [110]
-  , [-110]
-  , [111]
-  , [-111]
-  , [112]
-  , [-112]
-  , [113]
-  , [-113]
-  , [114]
-  , [-114]
-  , [115]
-  , [-115]
-  , [116]
-  , [-116]
-  , [117]
-  , [-117]
-  , [118]
-  , [-118]
-  , [119]
-  , [-119]
-  , [120]
-  , [-120]
-  , [121]
-  , [-121]
-  , [122]
-  , [-122]
-  , [123]
-  , [-123]
-  , [124]
-  , [-124]
-  , [125]
-  , [-125]
-  , [126]
-  , [-126]
-  , [127]
-  , [-127]
-  , [-128]
-  ]
diff --git a/test/diff/tiers-Integer.out b/test/diff/tiers-Integer.out
deleted file mode 100644
--- a/test/diff/tiers-Integer.out
+++ /dev/null
@@ -1,23 +0,0 @@
-map length (tiers :: [[ Integer ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,...]
-
-length (list :: [ Integer ])  =  Infinity
-
-allUnique (list :: [ Integer ])  =  True
-
-ratioRepetitions (list :: [ Integer ])  =  0 % 1
-
-tiers :: [Integer]  =
-  [ [0]
-  , [1]
-  , [-1]
-  , [2]
-  , [-2]
-  , [3]
-  , [-3]
-  , [4]
-  , [-4]
-  , [5]
-  , [-5]
-  , [6]
-  , ...
-  ]
diff --git a/test/diff/tiers-Ints.out b/test/diff/tiers-Ints.out
deleted file mode 100644
--- a/test/diff/tiers-Ints.out
+++ /dev/null
@@ -1,47 +0,0 @@
-map length (tiers :: [[ [Int] ]])  =  [1,1,2,4,8,16,...]
-
-length (list :: [ [Int] ])  =  Infinity
-
-allUnique (list :: [ [Int] ])  =  True
-
-ratioRepetitions (list :: [ [Int] ])  =  0 % 1
-
-tiers :: [[Int]]  =
-  [ [[]]
-  , [[0]]
-  , [ [0,0]
-    , [1]
-    ]
-  , [ [0,0,0]
-    , [0,1]
-    , [1,0]
-    , [-1]
-    ]
-  , [ [0,0,0,0]
-    , [0,0,1]
-    , [0,1,0]
-    , [0,-1]
-    , [1,0,0]
-    , [1,1]
-    , [-1,0]
-    , [2]
-    ]
-  , [ [0,0,0,0,0]
-    , [0,0,0,1]
-    , [0,0,1,0]
-    , [0,0,-1]
-    , [0,1,0,0]
-    , [0,1,1]
-    , [0,-1,0]
-    , [0,2]
-    , [1,0,0,0]
-    , [1,0,1]
-    , [1,1,0]
-    , [1,-1]
-    , [-1,0,0]
-    , [-1,1]
-    , [2,0]
-    , [-2]
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-MapBoolBool.out b/test/diff/tiers-MapBoolBool.out
deleted file mode 100644
--- a/test/diff/tiers-MapBoolBool.out
+++ /dev/null
@@ -1,21 +0,0 @@
-map length (tiers :: [[ Map Bool Bool ]])  =  [1,4,4]
-
-length (list :: [ Map Bool Bool ])  =  9
-
-allUnique (list :: [ Map Bool Bool ])  =  True
-
-ratioRepetitions (list :: [ Map Bool Bool ])  =  0 % 1
-
-tiers :: [Map Bool Bool]  =
-  [ [Map []]
-  , [ Map [(False,False)]
-    , Map [(False,True)]
-    , Map [(True,False)]
-    , Map [(True,True)]
-    ]
-  , [ Map [(False,False),(True,False)]
-    , Map [(False,False),(True,True)]
-    , Map [(False,True),(True,False)]
-    , Map [(False,True),(True,True)]
-    ]
-  ]
diff --git a/test/diff/tiers-MapNat2Nat2.out b/test/diff/tiers-MapNat2Nat2.out
deleted file mode 100644
--- a/test/diff/tiers-MapNat2Nat2.out
+++ /dev/null
@@ -1,22 +0,0 @@
-map length (tiers :: [[ Map Nat2 Nat2 ]])  =  [1,1,2,2,2,1]
-
-length (list :: [ Map Nat2 Nat2 ])  =  9
-
-allUnique (list :: [ Map Nat2 Nat2 ])  =  True
-
-ratioRepetitions (list :: [ Map Nat2 Nat2 ])  =  0 % 1
-
-tiers :: [Map Nat2 Nat2]  =
-  [ [Map []]
-  , [Map [(0,0)]]
-  , [ Map [(0,1)]
-    , Map [(1,0)]
-    ]
-  , [ Map [(1,1)]
-    , Map [(0,0),(1,0)]
-    ]
-  , [ Map [(0,0),(1,1)]
-    , Map [(0,1),(1,0)]
-    ]
-  , [Map [(0,1),(1,1)]]
-  ]
diff --git a/test/diff/tiers-MapNat3Nat3.out b/test/diff/tiers-MapNat3Nat3.out
deleted file mode 100644
--- a/test/diff/tiers-MapNat3Nat3.out
+++ /dev/null
@@ -1,84 +0,0 @@
-map length (tiers :: [[ Map Nat3 Nat3 ]])  =  [1,1,2,4,5,7,8,9,9,8,6,3,...]
-
-length (list :: [ Map Nat3 Nat3 ])  =  Infinity
-
-allUnique (list :: [ Map Nat3 Nat3 ])  =  True
-
-ratioRepetitions (list :: [ Map Nat3 Nat3 ])  =  0 % 1
-
-tiers :: [Map Nat3 Nat3]  =
-  [ [Map []]
-  , [Map [(0,0)]]
-  , [ Map [(0,1)]
-    , Map [(1,0)]
-    ]
-  , [ Map [(0,2)]
-    , Map [(1,1)]
-    , Map [(0,0),(1,0)]
-    , Map [(2,0)]
-    ]
-  , [ Map [(1,2)]
-    , Map [(0,0),(1,1)]
-    , Map [(0,1),(1,0)]
-    , Map [(2,1)]
-    , Map [(0,0),(2,0)]
-    ]
-  , [ Map [(0,0),(1,2)]
-    , Map [(0,1),(1,1)]
-    , Map [(0,2),(1,0)]
-    , Map [(2,2)]
-    , Map [(0,0),(2,1)]
-    , Map [(0,1),(2,0)]
-    , Map [(1,0),(2,0)]
-    ]
-  , [ Map [(0,1),(1,2)]
-    , Map [(0,2),(1,1)]
-    , Map [(0,0),(2,2)]
-    , Map [(0,1),(2,1)]
-    , Map [(0,2),(2,0)]
-    , Map [(1,0),(2,1)]
-    , Map [(1,1),(2,0)]
-    , Map [(0,0),(1,0),(2,0)]
-    ]
-  , [ Map [(0,2),(1,2)]
-    , Map [(0,1),(2,2)]
-    , Map [(0,2),(2,1)]
-    , Map [(1,0),(2,2)]
-    , Map [(1,1),(2,1)]
-    , Map [(1,2),(2,0)]
-    , Map [(0,0),(1,0),(2,1)]
-    , Map [(0,0),(1,1),(2,0)]
-    , Map [(0,1),(1,0),(2,0)]
-    ]
-  , [ Map [(0,2),(2,2)]
-    , Map [(1,1),(2,2)]
-    , Map [(1,2),(2,1)]
-    , Map [(0,0),(1,0),(2,2)]
-    , Map [(0,0),(1,1),(2,1)]
-    , Map [(0,0),(1,2),(2,0)]
-    , Map [(0,1),(1,0),(2,1)]
-    , Map [(0,1),(1,1),(2,0)]
-    , Map [(0,2),(1,0),(2,0)]
-    ]
-  , [ Map [(1,2),(2,2)]
-    , Map [(0,0),(1,1),(2,2)]
-    , Map [(0,0),(1,2),(2,1)]
-    , Map [(0,1),(1,0),(2,2)]
-    , Map [(0,1),(1,1),(2,1)]
-    , Map [(0,1),(1,2),(2,0)]
-    , Map [(0,2),(1,0),(2,1)]
-    , Map [(0,2),(1,1),(2,0)]
-    ]
-  , [ Map [(0,0),(1,2),(2,2)]
-    , Map [(0,1),(1,1),(2,2)]
-    , Map [(0,1),(1,2),(2,1)]
-    , Map [(0,2),(1,0),(2,2)]
-    , Map [(0,2),(1,1),(2,1)]
-    , Map [(0,2),(1,2),(2,0)]
-    ]
-  , [ Map [(0,1),(1,2),(2,2)]
-    , Map [(0,2),(1,1),(2,2)]
-    , Map [(0,2),(1,2),(2,1)]
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-MapNatNat.out b/test/diff/tiers-MapNatNat.out
deleted file mode 100644
--- a/test/diff/tiers-MapNatNat.out
+++ /dev/null
@@ -1,571 +0,0 @@
-map length (tiers :: [[ Map Nat Nat ]])  =  [1,1,2,4,7,12,20,33,53,84,131,202,...]
-
-length (list :: [ Map Nat Nat ])  =  Infinity
-
-allUnique (list :: [ Map Nat Nat ])  =  True
-
-ratioRepetitions (list :: [ Map Nat Nat ])  =  0 % 1
-
-tiers :: [Map Nat Nat]  =
-  [ [Map []]
-  , [Map [(0,0)]]
-  , [ Map [(0,1)]
-    , Map [(1,0)]
-    ]
-  , [ Map [(0,2)]
-    , Map [(1,1)]
-    , Map [(0,0),(1,0)]
-    , Map [(2,0)]
-    ]
-  , [ Map [(0,3)]
-    , Map [(1,2)]
-    , Map [(0,0),(1,1)]
-    , Map [(0,1),(1,0)]
-    , Map [(2,1)]
-    , Map [(0,0),(2,0)]
-    , Map [(3,0)]
-    ]
-  , [ Map [(0,4)]
-    , Map [(1,3)]
-    , Map [(0,0),(1,2)]
-    , Map [(0,1),(1,1)]
-    , Map [(0,2),(1,0)]
-    , Map [(2,2)]
-    , Map [(0,0),(2,1)]
-    , Map [(0,1),(2,0)]
-    , Map [(3,1)]
-    , Map [(0,0),(3,0)]
-    , Map [(1,0),(2,0)]
-    , Map [(4,0)]
-    ]
-  , [ Map [(0,5)]
-    , Map [(1,4)]
-    , Map [(0,0),(1,3)]
-    , Map [(0,1),(1,2)]
-    , Map [(0,2),(1,1)]
-    , Map [(0,3),(1,0)]
-    , Map [(2,3)]
-    , Map [(0,0),(2,2)]
-    , Map [(0,1),(2,1)]
-    , Map [(0,2),(2,0)]
-    , Map [(3,2)]
-    , Map [(0,0),(3,1)]
-    , Map [(0,1),(3,0)]
-    , Map [(1,0),(2,1)]
-    , Map [(1,1),(2,0)]
-    , Map [(4,1)]
-    , Map [(0,0),(1,0),(2,0)]
-    , Map [(0,0),(4,0)]
-    , Map [(1,0),(3,0)]
-    , Map [(5,0)]
-    ]
-  , [ Map [(0,6)]
-    , Map [(1,5)]
-    , Map [(0,0),(1,4)]
-    , Map [(0,1),(1,3)]
-    , Map [(0,2),(1,2)]
-    , Map [(0,3),(1,1)]
-    , Map [(0,4),(1,0)]
-    , Map [(2,4)]
-    , Map [(0,0),(2,3)]
-    , Map [(0,1),(2,2)]
-    , Map [(0,2),(2,1)]
-    , Map [(0,3),(2,0)]
-    , Map [(3,3)]
-    , Map [(0,0),(3,2)]
-    , Map [(0,1),(3,1)]
-    , Map [(0,2),(3,0)]
-    , Map [(1,0),(2,2)]
-    , Map [(1,1),(2,1)]
-    , Map [(1,2),(2,0)]
-    , Map [(4,2)]
-    , Map [(0,0),(1,0),(2,1)]
-    , Map [(0,0),(1,1),(2,0)]
-    , Map [(0,1),(1,0),(2,0)]
-    , Map [(0,0),(4,1)]
-    , Map [(0,1),(4,0)]
-    , Map [(1,0),(3,1)]
-    , Map [(1,1),(3,0)]
-    , Map [(5,1)]
-    , Map [(0,0),(1,0),(3,0)]
-    , Map [(0,0),(5,0)]
-    , Map [(1,0),(4,0)]
-    , Map [(2,0),(3,0)]
-    , Map [(6,0)]
-    ]
-  , [ Map [(0,7)]
-    , Map [(1,6)]
-    , Map [(0,0),(1,5)]
-    , Map [(0,1),(1,4)]
-    , Map [(0,2),(1,3)]
-    , Map [(0,3),(1,2)]
-    , Map [(0,4),(1,1)]
-    , Map [(0,5),(1,0)]
-    , Map [(2,5)]
-    , Map [(0,0),(2,4)]
-    , Map [(0,1),(2,3)]
-    , Map [(0,2),(2,2)]
-    , Map [(0,3),(2,1)]
-    , Map [(0,4),(2,0)]
-    , Map [(3,4)]
-    , Map [(0,0),(3,3)]
-    , Map [(0,1),(3,2)]
-    , Map [(0,2),(3,1)]
-    , Map [(0,3),(3,0)]
-    , Map [(1,0),(2,3)]
-    , Map [(1,1),(2,2)]
-    , Map [(1,2),(2,1)]
-    , Map [(1,3),(2,0)]
-    , Map [(4,3)]
-    , Map [(0,0),(1,0),(2,2)]
-    , Map [(0,0),(1,1),(2,1)]
-    , Map [(0,0),(1,2),(2,0)]
-    , Map [(0,1),(1,0),(2,1)]
-    , Map [(0,1),(1,1),(2,0)]
-    , Map [(0,2),(1,0),(2,0)]
-    , Map [(0,0),(4,2)]
-    , Map [(0,1),(4,1)]
-    , Map [(0,2),(4,0)]
-    , Map [(1,0),(3,2)]
-    , Map [(1,1),(3,1)]
-    , Map [(1,2),(3,0)]
-    , Map [(5,2)]
-    , Map [(0,0),(1,0),(3,1)]
-    , Map [(0,0),(1,1),(3,0)]
-    , Map [(0,1),(1,0),(3,0)]
-    , Map [(0,0),(5,1)]
-    , Map [(0,1),(5,0)]
-    , Map [(1,0),(4,1)]
-    , Map [(1,1),(4,0)]
-    , Map [(2,0),(3,1)]
-    , Map [(2,1),(3,0)]
-    , Map [(6,1)]
-    , Map [(0,0),(1,0),(4,0)]
-    , Map [(0,0),(2,0),(3,0)]
-    , Map [(0,0),(6,0)]
-    , Map [(1,0),(5,0)]
-    , Map [(2,0),(4,0)]
-    , Map [(7,0)]
-    ]
-  , [ Map [(0,8)]
-    , Map [(1,7)]
-    , Map [(0,0),(1,6)]
-    , Map [(0,1),(1,5)]
-    , Map [(0,2),(1,4)]
-    , Map [(0,3),(1,3)]
-    , Map [(0,4),(1,2)]
-    , Map [(0,5),(1,1)]
-    , Map [(0,6),(1,0)]
-    , Map [(2,6)]
-    , Map [(0,0),(2,5)]
-    , Map [(0,1),(2,4)]
-    , Map [(0,2),(2,3)]
-    , Map [(0,3),(2,2)]
-    , Map [(0,4),(2,1)]
-    , Map [(0,5),(2,0)]
-    , Map [(3,5)]
-    , Map [(0,0),(3,4)]
-    , Map [(0,1),(3,3)]
-    , Map [(0,2),(3,2)]
-    , Map [(0,3),(3,1)]
-    , Map [(0,4),(3,0)]
-    , Map [(1,0),(2,4)]
-    , Map [(1,1),(2,3)]
-    , Map [(1,2),(2,2)]
-    , Map [(1,3),(2,1)]
-    , Map [(1,4),(2,0)]
-    , Map [(4,4)]
-    , Map [(0,0),(1,0),(2,3)]
-    , Map [(0,0),(1,1),(2,2)]
-    , Map [(0,0),(1,2),(2,1)]
-    , Map [(0,0),(1,3),(2,0)]
-    , Map [(0,1),(1,0),(2,2)]
-    , Map [(0,1),(1,1),(2,1)]
-    , Map [(0,1),(1,2),(2,0)]
-    , Map [(0,2),(1,0),(2,1)]
-    , Map [(0,2),(1,1),(2,0)]
-    , Map [(0,3),(1,0),(2,0)]
-    , Map [(0,0),(4,3)]
-    , Map [(0,1),(4,2)]
-    , Map [(0,2),(4,1)]
-    , Map [(0,3),(4,0)]
-    , Map [(1,0),(3,3)]
-    , Map [(1,1),(3,2)]
-    , Map [(1,2),(3,1)]
-    , Map [(1,3),(3,0)]
-    , Map [(5,3)]
-    , Map [(0,0),(1,0),(3,2)]
-    , Map [(0,0),(1,1),(3,1)]
-    , Map [(0,0),(1,2),(3,0)]
-    , Map [(0,1),(1,0),(3,1)]
-    , Map [(0,1),(1,1),(3,0)]
-    , Map [(0,2),(1,0),(3,0)]
-    , Map [(0,0),(5,2)]
-    , Map [(0,1),(5,1)]
-    , Map [(0,2),(5,0)]
-    , Map [(1,0),(4,2)]
-    , Map [(1,1),(4,1)]
-    , Map [(1,2),(4,0)]
-    , Map [(2,0),(3,2)]
-    , Map [(2,1),(3,1)]
-    , Map [(2,2),(3,0)]
-    , Map [(6,2)]
-    , Map [(0,0),(1,0),(4,1)]
-    , Map [(0,0),(1,1),(4,0)]
-    , Map [(0,1),(1,0),(4,0)]
-    , Map [(0,0),(2,0),(3,1)]
-    , Map [(0,0),(2,1),(3,0)]
-    , Map [(0,1),(2,0),(3,0)]
-    , Map [(0,0),(6,1)]
-    , Map [(0,1),(6,0)]
-    , Map [(1,0),(5,1)]
-    , Map [(1,1),(5,0)]
-    , Map [(2,0),(4,1)]
-    , Map [(2,1),(4,0)]
-    , Map [(7,1)]
-    , Map [(0,0),(1,0),(5,0)]
-    , Map [(0,0),(2,0),(4,0)]
-    , Map [(0,0),(7,0)]
-    , Map [(1,0),(2,0),(3,0)]
-    , Map [(1,0),(6,0)]
-    , Map [(2,0),(5,0)]
-    , Map [(3,0),(4,0)]
-    , Map [(8,0)]
-    ]
-  , [ Map [(0,9)]
-    , Map [(1,8)]
-    , Map [(0,0),(1,7)]
-    , Map [(0,1),(1,6)]
-    , Map [(0,2),(1,5)]
-    , Map [(0,3),(1,4)]
-    , Map [(0,4),(1,3)]
-    , Map [(0,5),(1,2)]
-    , Map [(0,6),(1,1)]
-    , Map [(0,7),(1,0)]
-    , Map [(2,7)]
-    , Map [(0,0),(2,6)]
-    , Map [(0,1),(2,5)]
-    , Map [(0,2),(2,4)]
-    , Map [(0,3),(2,3)]
-    , Map [(0,4),(2,2)]
-    , Map [(0,5),(2,1)]
-    , Map [(0,6),(2,0)]
-    , Map [(3,6)]
-    , Map [(0,0),(3,5)]
-    , Map [(0,1),(3,4)]
-    , Map [(0,2),(3,3)]
-    , Map [(0,3),(3,2)]
-    , Map [(0,4),(3,1)]
-    , Map [(0,5),(3,0)]
-    , Map [(1,0),(2,5)]
-    , Map [(1,1),(2,4)]
-    , Map [(1,2),(2,3)]
-    , Map [(1,3),(2,2)]
-    , Map [(1,4),(2,1)]
-    , Map [(1,5),(2,0)]
-    , Map [(4,5)]
-    , Map [(0,0),(1,0),(2,4)]
-    , Map [(0,0),(1,1),(2,3)]
-    , Map [(0,0),(1,2),(2,2)]
-    , Map [(0,0),(1,3),(2,1)]
-    , Map [(0,0),(1,4),(2,0)]
-    , Map [(0,1),(1,0),(2,3)]
-    , Map [(0,1),(1,1),(2,2)]
-    , Map [(0,1),(1,2),(2,1)]
-    , Map [(0,1),(1,3),(2,0)]
-    , Map [(0,2),(1,0),(2,2)]
-    , Map [(0,2),(1,1),(2,1)]
-    , Map [(0,2),(1,2),(2,0)]
-    , Map [(0,3),(1,0),(2,1)]
-    , Map [(0,3),(1,1),(2,0)]
-    , Map [(0,4),(1,0),(2,0)]
-    , Map [(0,0),(4,4)]
-    , Map [(0,1),(4,3)]
-    , Map [(0,2),(4,2)]
-    , Map [(0,3),(4,1)]
-    , Map [(0,4),(4,0)]
-    , Map [(1,0),(3,4)]
-    , Map [(1,1),(3,3)]
-    , Map [(1,2),(3,2)]
-    , Map [(1,3),(3,1)]
-    , Map [(1,4),(3,0)]
-    , Map [(5,4)]
-    , Map [(0,0),(1,0),(3,3)]
-    , Map [(0,0),(1,1),(3,2)]
-    , Map [(0,0),(1,2),(3,1)]
-    , Map [(0,0),(1,3),(3,0)]
-    , Map [(0,1),(1,0),(3,2)]
-    , Map [(0,1),(1,1),(3,1)]
-    , Map [(0,1),(1,2),(3,0)]
-    , Map [(0,2),(1,0),(3,1)]
-    , Map [(0,2),(1,1),(3,0)]
-    , Map [(0,3),(1,0),(3,0)]
-    , Map [(0,0),(5,3)]
-    , Map [(0,1),(5,2)]
-    , Map [(0,2),(5,1)]
-    , Map [(0,3),(5,0)]
-    , Map [(1,0),(4,3)]
-    , Map [(1,1),(4,2)]
-    , Map [(1,2),(4,1)]
-    , Map [(1,3),(4,0)]
-    , Map [(2,0),(3,3)]
-    , Map [(2,1),(3,2)]
-    , Map [(2,2),(3,1)]
-    , Map [(2,3),(3,0)]
-    , Map [(6,3)]
-    , Map [(0,0),(1,0),(4,2)]
-    , Map [(0,0),(1,1),(4,1)]
-    , Map [(0,0),(1,2),(4,0)]
-    , Map [(0,1),(1,0),(4,1)]
-    , Map [(0,1),(1,1),(4,0)]
-    , Map [(0,2),(1,0),(4,0)]
-    , Map [(0,0),(2,0),(3,2)]
-    , Map [(0,0),(2,1),(3,1)]
-    , Map [(0,0),(2,2),(3,0)]
-    , Map [(0,1),(2,0),(3,1)]
-    , Map [(0,1),(2,1),(3,0)]
-    , Map [(0,2),(2,0),(3,0)]
-    , Map [(0,0),(6,2)]
-    , Map [(0,1),(6,1)]
-    , Map [(0,2),(6,0)]
-    , Map [(1,0),(5,2)]
-    , Map [(1,1),(5,1)]
-    , Map [(1,2),(5,0)]
-    , Map [(2,0),(4,2)]
-    , Map [(2,1),(4,1)]
-    , Map [(2,2),(4,0)]
-    , Map [(7,2)]
-    , Map [(0,0),(1,0),(5,1)]
-    , Map [(0,0),(1,1),(5,0)]
-    , Map [(0,1),(1,0),(5,0)]
-    , Map [(0,0),(2,0),(4,1)]
-    , Map [(0,0),(2,1),(4,0)]
-    , Map [(0,1),(2,0),(4,0)]
-    , Map [(0,0),(7,1)]
-    , Map [(0,1),(7,0)]
-    , Map [(1,0),(2,0),(3,1)]
-    , Map [(1,0),(2,1),(3,0)]
-    , Map [(1,1),(2,0),(3,0)]
-    , Map [(1,0),(6,1)]
-    , Map [(1,1),(6,0)]
-    , Map [(2,0),(5,1)]
-    , Map [(2,1),(5,0)]
-    , Map [(3,0),(4,1)]
-    , Map [(3,1),(4,0)]
-    , Map [(8,1)]
-    , Map [(0,0),(1,0),(2,0),(3,0)]
-    , Map [(0,0),(1,0),(6,0)]
-    , Map [(0,0),(2,0),(5,0)]
-    , Map [(0,0),(3,0),(4,0)]
-    , Map [(0,0),(8,0)]
-    , Map [(1,0),(2,0),(4,0)]
-    , Map [(1,0),(7,0)]
-    , Map [(2,0),(6,0)]
-    , Map [(3,0),(5,0)]
-    , Map [(9,0)]
-    ]
-  , [ Map [(0,10)]
-    , Map [(1,9)]
-    , Map [(0,0),(1,8)]
-    , Map [(0,1),(1,7)]
-    , Map [(0,2),(1,6)]
-    , Map [(0,3),(1,5)]
-    , Map [(0,4),(1,4)]
-    , Map [(0,5),(1,3)]
-    , Map [(0,6),(1,2)]
-    , Map [(0,7),(1,1)]
-    , Map [(0,8),(1,0)]
-    , Map [(2,8)]
-    , Map [(0,0),(2,7)]
-    , Map [(0,1),(2,6)]
-    , Map [(0,2),(2,5)]
-    , Map [(0,3),(2,4)]
-    , Map [(0,4),(2,3)]
-    , Map [(0,5),(2,2)]
-    , Map [(0,6),(2,1)]
-    , Map [(0,7),(2,0)]
-    , Map [(3,7)]
-    , Map [(0,0),(3,6)]
-    , Map [(0,1),(3,5)]
-    , Map [(0,2),(3,4)]
-    , Map [(0,3),(3,3)]
-    , Map [(0,4),(3,2)]
-    , Map [(0,5),(3,1)]
-    , Map [(0,6),(3,0)]
-    , Map [(1,0),(2,6)]
-    , Map [(1,1),(2,5)]
-    , Map [(1,2),(2,4)]
-    , Map [(1,3),(2,3)]
-    , Map [(1,4),(2,2)]
-    , Map [(1,5),(2,1)]
-    , Map [(1,6),(2,0)]
-    , Map [(4,6)]
-    , Map [(0,0),(1,0),(2,5)]
-    , Map [(0,0),(1,1),(2,4)]
-    , Map [(0,0),(1,2),(2,3)]
-    , Map [(0,0),(1,3),(2,2)]
-    , Map [(0,0),(1,4),(2,1)]
-    , Map [(0,0),(1,5),(2,0)]
-    , Map [(0,1),(1,0),(2,4)]
-    , Map [(0,1),(1,1),(2,3)]
-    , Map [(0,1),(1,2),(2,2)]
-    , Map [(0,1),(1,3),(2,1)]
-    , Map [(0,1),(1,4),(2,0)]
-    , Map [(0,2),(1,0),(2,3)]
-    , Map [(0,2),(1,1),(2,2)]
-    , Map [(0,2),(1,2),(2,1)]
-    , Map [(0,2),(1,3),(2,0)]
-    , Map [(0,3),(1,0),(2,2)]
-    , Map [(0,3),(1,1),(2,1)]
-    , Map [(0,3),(1,2),(2,0)]
-    , Map [(0,4),(1,0),(2,1)]
-    , Map [(0,4),(1,1),(2,0)]
-    , Map [(0,5),(1,0),(2,0)]
-    , Map [(0,0),(4,5)]
-    , Map [(0,1),(4,4)]
-    , Map [(0,2),(4,3)]
-    , Map [(0,3),(4,2)]
-    , Map [(0,4),(4,1)]
-    , Map [(0,5),(4,0)]
-    , Map [(1,0),(3,5)]
-    , Map [(1,1),(3,4)]
-    , Map [(1,2),(3,3)]
-    , Map [(1,3),(3,2)]
-    , Map [(1,4),(3,1)]
-    , Map [(1,5),(3,0)]
-    , Map [(5,5)]
-    , Map [(0,0),(1,0),(3,4)]
-    , Map [(0,0),(1,1),(3,3)]
-    , Map [(0,0),(1,2),(3,2)]
-    , Map [(0,0),(1,3),(3,1)]
-    , Map [(0,0),(1,4),(3,0)]
-    , Map [(0,1),(1,0),(3,3)]
-    , Map [(0,1),(1,1),(3,2)]
-    , Map [(0,1),(1,2),(3,1)]
-    , Map [(0,1),(1,3),(3,0)]
-    , Map [(0,2),(1,0),(3,2)]
-    , Map [(0,2),(1,1),(3,1)]
-    , Map [(0,2),(1,2),(3,0)]
-    , Map [(0,3),(1,0),(3,1)]
-    , Map [(0,3),(1,1),(3,0)]
-    , Map [(0,4),(1,0),(3,0)]
-    , Map [(0,0),(5,4)]
-    , Map [(0,1),(5,3)]
-    , Map [(0,2),(5,2)]
-    , Map [(0,3),(5,1)]
-    , Map [(0,4),(5,0)]
-    , Map [(1,0),(4,4)]
-    , Map [(1,1),(4,3)]
-    , Map [(1,2),(4,2)]
-    , Map [(1,3),(4,1)]
-    , Map [(1,4),(4,0)]
-    , Map [(2,0),(3,4)]
-    , Map [(2,1),(3,3)]
-    , Map [(2,2),(3,2)]
-    , Map [(2,3),(3,1)]
-    , Map [(2,4),(3,0)]
-    , Map [(6,4)]
-    , Map [(0,0),(1,0),(4,3)]
-    , Map [(0,0),(1,1),(4,2)]
-    , Map [(0,0),(1,2),(4,1)]
-    , Map [(0,0),(1,3),(4,0)]
-    , Map [(0,1),(1,0),(4,2)]
-    , Map [(0,1),(1,1),(4,1)]
-    , Map [(0,1),(1,2),(4,0)]
-    , Map [(0,2),(1,0),(4,1)]
-    , Map [(0,2),(1,1),(4,0)]
-    , Map [(0,3),(1,0),(4,0)]
-    , Map [(0,0),(2,0),(3,3)]
-    , Map [(0,0),(2,1),(3,2)]
-    , Map [(0,0),(2,2),(3,1)]
-    , Map [(0,0),(2,3),(3,0)]
-    , Map [(0,1),(2,0),(3,2)]
-    , Map [(0,1),(2,1),(3,1)]
-    , Map [(0,1),(2,2),(3,0)]
-    , Map [(0,2),(2,0),(3,1)]
-    , Map [(0,2),(2,1),(3,0)]
-    , Map [(0,3),(2,0),(3,0)]
-    , Map [(0,0),(6,3)]
-    , Map [(0,1),(6,2)]
-    , Map [(0,2),(6,1)]
-    , Map [(0,3),(6,0)]
-    , Map [(1,0),(5,3)]
-    , Map [(1,1),(5,2)]
-    , Map [(1,2),(5,1)]
-    , Map [(1,3),(5,0)]
-    , Map [(2,0),(4,3)]
-    , Map [(2,1),(4,2)]
-    , Map [(2,2),(4,1)]
-    , Map [(2,3),(4,0)]
-    , Map [(7,3)]
-    , Map [(0,0),(1,0),(5,2)]
-    , Map [(0,0),(1,1),(5,1)]
-    , Map [(0,0),(1,2),(5,0)]
-    , Map [(0,1),(1,0),(5,1)]
-    , Map [(0,1),(1,1),(5,0)]
-    , Map [(0,2),(1,0),(5,0)]
-    , Map [(0,0),(2,0),(4,2)]
-    , Map [(0,0),(2,1),(4,1)]
-    , Map [(0,0),(2,2),(4,0)]
-    , Map [(0,1),(2,0),(4,1)]
-    , Map [(0,1),(2,1),(4,0)]
-    , Map [(0,2),(2,0),(4,0)]
-    , Map [(0,0),(7,2)]
-    , Map [(0,1),(7,1)]
-    , Map [(0,2),(7,0)]
-    , Map [(1,0),(2,0),(3,2)]
-    , Map [(1,0),(2,1),(3,1)]
-    , Map [(1,0),(2,2),(3,0)]
-    , Map [(1,1),(2,0),(3,1)]
-    , Map [(1,1),(2,1),(3,0)]
-    , Map [(1,2),(2,0),(3,0)]
-    , Map [(1,0),(6,2)]
-    , Map [(1,1),(6,1)]
-    , Map [(1,2),(6,0)]
-    , Map [(2,0),(5,2)]
-    , Map [(2,1),(5,1)]
-    , Map [(2,2),(5,0)]
-    , Map [(3,0),(4,2)]
-    , Map [(3,1),(4,1)]
-    , Map [(3,2),(4,0)]
-    , Map [(8,2)]
-    , Map [(0,0),(1,0),(2,0),(3,1)]
-    , Map [(0,0),(1,0),(2,1),(3,0)]
-    , Map [(0,0),(1,1),(2,0),(3,0)]
-    , Map [(0,1),(1,0),(2,0),(3,0)]
-    , Map [(0,0),(1,0),(6,1)]
-    , Map [(0,0),(1,1),(6,0)]
-    , Map [(0,1),(1,0),(6,0)]
-    , Map [(0,0),(2,0),(5,1)]
-    , Map [(0,0),(2,1),(5,0)]
-    , Map [(0,1),(2,0),(5,0)]
-    , Map [(0,0),(3,0),(4,1)]
-    , Map [(0,0),(3,1),(4,0)]
-    , Map [(0,1),(3,0),(4,0)]
-    , Map [(0,0),(8,1)]
-    , Map [(0,1),(8,0)]
-    , Map [(1,0),(2,0),(4,1)]
-    , Map [(1,0),(2,1),(4,0)]
-    , Map [(1,1),(2,0),(4,0)]
-    , Map [(1,0),(7,1)]
-    , Map [(1,1),(7,0)]
-    , Map [(2,0),(6,1)]
-    , Map [(2,1),(6,0)]
-    , Map [(3,0),(5,1)]
-    , Map [(3,1),(5,0)]
-    , Map [(9,1)]
-    , Map [(0,0),(1,0),(2,0),(4,0)]
-    , Map [(0,0),(1,0),(7,0)]
-    , Map [(0,0),(2,0),(6,0)]
-    , Map [(0,0),(3,0),(5,0)]
-    , Map [(0,0),(9,0)]
-    , Map [(1,0),(2,0),(5,0)]
-    , Map [(1,0),(3,0),(4,0)]
-    , Map [(1,0),(8,0)]
-    , Map [(2,0),(7,0)]
-    , Map [(3,0),(6,0)]
-    , Map [(4,0),(5,0)]
-    , Map [(10,0)]
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-MapUU.out b/test/diff/tiers-MapUU.out
deleted file mode 100644
--- a/test/diff/tiers-MapUU.out
+++ /dev/null
@@ -1,12 +0,0 @@
-map length (tiers :: [[ Map () () ]])  =  [1,1]
-
-length (list :: [ Map () () ])  =  2
-
-allUnique (list :: [ Map () () ])  =  True
-
-ratioRepetitions (list :: [ Map () () ])  =  0 % 1
-
-tiers :: [Map () ()]  =
-  [ [Map []]
-  , [Map [((),())]]
-  ]
diff --git a/test/diff/tiers-Nat,Nat,Nat.out b/test/diff/tiers-Nat,Nat,Nat.out
deleted file mode 100644
--- a/test/diff/tiers-Nat,Nat,Nat.out
+++ /dev/null
@@ -1,72 +0,0 @@
-map length (tiers :: [[ (Nat,Nat,Nat) ]])  =  [1,3,6,10,15,21,...]
-
-length (list :: [ (Nat,Nat,Nat) ])  =  Infinity
-
-allUnique (list :: [ (Nat,Nat,Nat) ])  =  True
-
-ratioRepetitions (list :: [ (Nat,Nat,Nat) ])  =  0 % 1
-
-tiers :: [(Nat,Nat,Nat)]  =
-  [ [(0,0,0)]
-  , [ (0,0,1)
-    , (0,1,0)
-    , (1,0,0)
-    ]
-  , [ (0,0,2)
-    , (0,1,1)
-    , (0,2,0)
-    , (1,0,1)
-    , (1,1,0)
-    , (2,0,0)
-    ]
-  , [ (0,0,3)
-    , (0,1,2)
-    , (0,2,1)
-    , (0,3,0)
-    , (1,0,2)
-    , (1,1,1)
-    , (1,2,0)
-    , (2,0,1)
-    , (2,1,0)
-    , (3,0,0)
-    ]
-  , [ (0,0,4)
-    , (0,1,3)
-    , (0,2,2)
-    , (0,3,1)
-    , (0,4,0)
-    , (1,0,3)
-    , (1,1,2)
-    , (1,2,1)
-    , (1,3,0)
-    , (2,0,2)
-    , (2,1,1)
-    , (2,2,0)
-    , (3,0,1)
-    , (3,1,0)
-    , (4,0,0)
-    ]
-  , [ (0,0,5)
-    , (0,1,4)
-    , (0,2,3)
-    , (0,3,2)
-    , (0,4,1)
-    , (0,5,0)
-    , (1,0,4)
-    , (1,1,3)
-    , (1,2,2)
-    , (1,3,1)
-    , (1,4,0)
-    , (2,0,3)
-    , (2,1,2)
-    , (2,2,1)
-    , (2,3,0)
-    , (3,0,2)
-    , (3,1,1)
-    , (3,2,0)
-    , (4,0,1)
-    , (4,1,0)
-    , (5,0,0)
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-Nat,Nat.out b/test/diff/tiers-Nat,Nat.out
deleted file mode 100644
--- a/test/diff/tiers-Nat,Nat.out
+++ /dev/null
@@ -1,100 +0,0 @@
-map length (tiers :: [[ (Nat,Nat) ]])  =  [1,2,3,4,5,6,7,8,9,10,11,12,...]
-
-length (list :: [ (Nat,Nat) ])  =  Infinity
-
-allUnique (list :: [ (Nat,Nat) ])  =  True
-
-ratioRepetitions (list :: [ (Nat,Nat) ])  =  0 % 1
-
-tiers :: [(Nat,Nat)]  =
-  [ [(0,0)]
-  , [ (0,1)
-    , (1,0)
-    ]
-  , [ (0,2)
-    , (1,1)
-    , (2,0)
-    ]
-  , [ (0,3)
-    , (1,2)
-    , (2,1)
-    , (3,0)
-    ]
-  , [ (0,4)
-    , (1,3)
-    , (2,2)
-    , (3,1)
-    , (4,0)
-    ]
-  , [ (0,5)
-    , (1,4)
-    , (2,3)
-    , (3,2)
-    , (4,1)
-    , (5,0)
-    ]
-  , [ (0,6)
-    , (1,5)
-    , (2,4)
-    , (3,3)
-    , (4,2)
-    , (5,1)
-    , (6,0)
-    ]
-  , [ (0,7)
-    , (1,6)
-    , (2,5)
-    , (3,4)
-    , (4,3)
-    , (5,2)
-    , (6,1)
-    , (7,0)
-    ]
-  , [ (0,8)
-    , (1,7)
-    , (2,6)
-    , (3,5)
-    , (4,4)
-    , (5,3)
-    , (6,2)
-    , (7,1)
-    , (8,0)
-    ]
-  , [ (0,9)
-    , (1,8)
-    , (2,7)
-    , (3,6)
-    , (4,5)
-    , (5,4)
-    , (6,3)
-    , (7,2)
-    , (8,1)
-    , (9,0)
-    ]
-  , [ (0,10)
-    , (1,9)
-    , (2,8)
-    , (3,7)
-    , (4,6)
-    , (5,5)
-    , (6,4)
-    , (7,3)
-    , (8,2)
-    , (9,1)
-    , (10,0)
-    ]
-  , [ (0,11)
-    , (1,10)
-    , (2,9)
-    , (3,8)
-    , (4,7)
-    , (5,6)
-    , (6,5)
-    , (7,4)
-    , (8,3)
-    , (9,2)
-    , (10,1)
-    , (11,0)
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-Nat.out b/test/diff/tiers-Nat.out
deleted file mode 100644
--- a/test/diff/tiers-Nat.out
+++ /dev/null
@@ -1,23 +0,0 @@
-map length (tiers :: [[ Nat ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,...]
-
-length (list :: [ Nat ])  =  Infinity
-
-allUnique (list :: [ Nat ])  =  True
-
-ratioRepetitions (list :: [ Nat ])  =  0 % 1
-
-tiers :: [Nat]  =
-  [ [0]
-  , [1]
-  , [2]
-  , [3]
-  , [4]
-  , [5]
-  , [6]
-  , [7]
-  , [8]
-  , [9]
-  , [10]
-  , [11]
-  , ...
-  ]
diff --git a/test/diff/tiers-Nat2.out b/test/diff/tiers-Nat2.out
deleted file mode 100644
--- a/test/diff/tiers-Nat2.out
+++ /dev/null
@@ -1,12 +0,0 @@
-map length (tiers :: [[ Nat2 ]])  =  [1,1]
-
-length (list :: [ Nat2 ])  =  2
-
-allUnique (list :: [ Nat2 ])  =  True
-
-ratioRepetitions (list :: [ Nat2 ])  =  0 % 1
-
-tiers :: [Nat2]  =
-  [ [0]
-  , [1]
-  ]
diff --git a/test/diff/tiers-Nat3.out b/test/diff/tiers-Nat3.out
deleted file mode 100644
--- a/test/diff/tiers-Nat3.out
+++ /dev/null
@@ -1,13 +0,0 @@
-map length (tiers :: [[ Nat3 ]])  =  [1,1,1]
-
-length (list :: [ Nat3 ])  =  3
-
-allUnique (list :: [ Nat3 ])  =  True
-
-ratioRepetitions (list :: [ Nat3 ])  =  0 % 1
-
-tiers :: [Nat3]  =
-  [ [0]
-  , [1]
-  , [2]
-  ]
diff --git a/test/diff/tiers-Nat4.out b/test/diff/tiers-Nat4.out
deleted file mode 100644
--- a/test/diff/tiers-Nat4.out
+++ /dev/null
@@ -1,14 +0,0 @@
-map length (tiers :: [[ Nat4 ]])  =  [1,1,1,1]
-
-length (list :: [ Nat4 ])  =  4
-
-allUnique (list :: [ Nat4 ])  =  True
-
-ratioRepetitions (list :: [ Nat4 ])  =  0 % 1
-
-tiers :: [Nat4]  =
-  [ [0]
-  , [1]
-  , [2]
-  , [3]
-  ]
diff --git a/test/diff/tiers-Nats.out b/test/diff/tiers-Nats.out
deleted file mode 100644
--- a/test/diff/tiers-Nats.out
+++ /dev/null
@@ -1,47 +0,0 @@
-map length (tiers :: [[ [Nat] ]])  =  [1,1,2,4,8,16,...]
-
-length (list :: [ [Nat] ])  =  Infinity
-
-allUnique (list :: [ [Nat] ])  =  True
-
-ratioRepetitions (list :: [ [Nat] ])  =  0 % 1
-
-tiers :: [[Nat]]  =
-  [ [[]]
-  , [[0]]
-  , [ [0,0]
-    , [1]
-    ]
-  , [ [0,0,0]
-    , [0,1]
-    , [1,0]
-    , [2]
-    ]
-  , [ [0,0,0,0]
-    , [0,0,1]
-    , [0,1,0]
-    , [0,2]
-    , [1,0,0]
-    , [1,1]
-    , [2,0]
-    , [3]
-    ]
-  , [ [0,0,0,0,0]
-    , [0,0,0,1]
-    , [0,0,1,0]
-    , [0,0,2]
-    , [0,1,0,0]
-    , [0,1,1]
-    , [0,2,0]
-    , [0,3]
-    , [1,0,0,0]
-    , [1,0,1]
-    , [1,1,0]
-    , [1,2]
-    , [2,0,0]
-    , [2,1]
-    , [3,0]
-    , [4]
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-NoDupBool.out b/test/diff/tiers-NoDupBool.out
deleted file mode 100644
--- a/test/diff/tiers-NoDupBool.out
+++ /dev/null
@@ -1,17 +0,0 @@
-map length (tiers :: [[ NoDup Bool ]])  =  [1,2,2]
-
-length (list :: [ NoDup Bool ])  =  5
-
-allUnique (list :: [ NoDup Bool ])  =  True
-
-ratioRepetitions (list :: [ NoDup Bool ])  =  0 % 1
-
-tiers :: [NoDup Bool]  =
-  [ [NoDup []]
-  , [ NoDup [False]
-    , NoDup [True]
-    ]
-  , [ NoDup [False,True]
-    , NoDup [True,False]
-    ]
-  ]
diff --git a/test/diff/tiers-NoDupNat.out b/test/diff/tiers-NoDupNat.out
deleted file mode 100644
--- a/test/diff/tiers-NoDupNat.out
+++ /dev/null
@@ -1,226 +0,0 @@
-map length (tiers :: [[ NoDup Nat ]])  =  [1,1,1,3,3,5,11,13,19,27,57,65,...]
-
-length (list :: [ NoDup Nat ])  =  Infinity
-
-allUnique (list :: [ NoDup Nat ])  =  True
-
-ratioRepetitions (list :: [ NoDup Nat ])  =  0 % 1
-
-tiers :: [NoDup Nat]  =
-  [ [NoDup []]
-  , [NoDup [0]]
-  , [NoDup [1]]
-  , [ NoDup [0,1]
-    , NoDup [1,0]
-    , NoDup [2]
-    ]
-  , [ NoDup [0,2]
-    , NoDup [2,0]
-    , NoDup [3]
-    ]
-  , [ NoDup [0,3]
-    , NoDup [1,2]
-    , NoDup [2,1]
-    , NoDup [3,0]
-    , NoDup [4]
-    ]
-  , [ NoDup [0,1,2]
-    , NoDup [0,2,1]
-    , NoDup [0,4]
-    , NoDup [1,0,2]
-    , NoDup [1,2,0]
-    , NoDup [1,3]
-    , NoDup [2,0,1]
-    , NoDup [2,1,0]
-    , NoDup [3,1]
-    , NoDup [4,0]
-    , NoDup [5]
-    ]
-  , [ NoDup [0,1,3]
-    , NoDup [0,3,1]
-    , NoDup [0,5]
-    , NoDup [1,0,3]
-    , NoDup [1,3,0]
-    , NoDup [1,4]
-    , NoDup [2,3]
-    , NoDup [3,0,1]
-    , NoDup [3,1,0]
-    , NoDup [3,2]
-    , NoDup [4,1]
-    , NoDup [5,0]
-    , NoDup [6]
-    ]
-  , [ NoDup [0,1,4]
-    , NoDup [0,2,3]
-    , NoDup [0,3,2]
-    , NoDup [0,4,1]
-    , NoDup [0,6]
-    , NoDup [1,0,4]
-    , NoDup [1,4,0]
-    , NoDup [1,5]
-    , NoDup [2,0,3]
-    , NoDup [2,3,0]
-    , NoDup [2,4]
-    , NoDup [3,0,2]
-    , NoDup [3,2,0]
-    , NoDup [4,0,1]
-    , NoDup [4,1,0]
-    , NoDup [4,2]
-    , NoDup [5,1]
-    , NoDup [6,0]
-    , NoDup [7]
-    ]
-  , [ NoDup [0,1,5]
-    , NoDup [0,2,4]
-    , NoDup [0,4,2]
-    , NoDup [0,5,1]
-    , NoDup [0,7]
-    , NoDup [1,0,5]
-    , NoDup [1,2,3]
-    , NoDup [1,3,2]
-    , NoDup [1,5,0]
-    , NoDup [1,6]
-    , NoDup [2,0,4]
-    , NoDup [2,1,3]
-    , NoDup [2,3,1]
-    , NoDup [2,4,0]
-    , NoDup [2,5]
-    , NoDup [3,1,2]
-    , NoDup [3,2,1]
-    , NoDup [3,4]
-    , NoDup [4,0,2]
-    , NoDup [4,2,0]
-    , NoDup [4,3]
-    , NoDup [5,0,1]
-    , NoDup [5,1,0]
-    , NoDup [5,2]
-    , NoDup [6,1]
-    , NoDup [7,0]
-    , NoDup [8]
-    ]
-  , [ NoDup [0,1,2,3]
-    , NoDup [0,1,3,2]
-    , NoDup [0,1,6]
-    , NoDup [0,2,1,3]
-    , NoDup [0,2,3,1]
-    , NoDup [0,2,5]
-    , NoDup [0,3,1,2]
-    , NoDup [0,3,2,1]
-    , NoDup [0,3,4]
-    , NoDup [0,4,3]
-    , NoDup [0,5,2]
-    , NoDup [0,6,1]
-    , NoDup [0,8]
-    , NoDup [1,0,2,3]
-    , NoDup [1,0,3,2]
-    , NoDup [1,0,6]
-    , NoDup [1,2,0,3]
-    , NoDup [1,2,3,0]
-    , NoDup [1,2,4]
-    , NoDup [1,3,0,2]
-    , NoDup [1,3,2,0]
-    , NoDup [1,4,2]
-    , NoDup [1,6,0]
-    , NoDup [1,7]
-    , NoDup [2,0,1,3]
-    , NoDup [2,0,3,1]
-    , NoDup [2,0,5]
-    , NoDup [2,1,0,3]
-    , NoDup [2,1,3,0]
-    , NoDup [2,1,4]
-    , NoDup [2,3,0,1]
-    , NoDup [2,3,1,0]
-    , NoDup [2,4,1]
-    , NoDup [2,5,0]
-    , NoDup [2,6]
-    , NoDup [3,0,1,2]
-    , NoDup [3,0,2,1]
-    , NoDup [3,0,4]
-    , NoDup [3,1,0,2]
-    , NoDup [3,1,2,0]
-    , NoDup [3,2,0,1]
-    , NoDup [3,2,1,0]
-    , NoDup [3,4,0]
-    , NoDup [3,5]
-    , NoDup [4,0,3]
-    , NoDup [4,1,2]
-    , NoDup [4,2,1]
-    , NoDup [4,3,0]
-    , NoDup [5,0,2]
-    , NoDup [5,2,0]
-    , NoDup [5,3]
-    , NoDup [6,0,1]
-    , NoDup [6,1,0]
-    , NoDup [6,2]
-    , NoDup [7,1]
-    , NoDup [8,0]
-    , NoDup [9]
-    ]
-  , [ NoDup [0,1,2,4]
-    , NoDup [0,1,4,2]
-    , NoDup [0,1,7]
-    , NoDup [0,2,1,4]
-    , NoDup [0,2,4,1]
-    , NoDup [0,2,6]
-    , NoDup [0,3,5]
-    , NoDup [0,4,1,2]
-    , NoDup [0,4,2,1]
-    , NoDup [0,5,3]
-    , NoDup [0,6,2]
-    , NoDup [0,7,1]
-    , NoDup [0,9]
-    , NoDup [1,0,2,4]
-    , NoDup [1,0,4,2]
-    , NoDup [1,0,7]
-    , NoDup [1,2,0,4]
-    , NoDup [1,2,4,0]
-    , NoDup [1,2,5]
-    , NoDup [1,3,4]
-    , NoDup [1,4,0,2]
-    , NoDup [1,4,2,0]
-    , NoDup [1,4,3]
-    , NoDup [1,5,2]
-    , NoDup [1,7,0]
-    , NoDup [1,8]
-    , NoDup [2,0,1,4]
-    , NoDup [2,0,4,1]
-    , NoDup [2,0,6]
-    , NoDup [2,1,0,4]
-    , NoDup [2,1,4,0]
-    , NoDup [2,1,5]
-    , NoDup [2,4,0,1]
-    , NoDup [2,4,1,0]
-    , NoDup [2,5,1]
-    , NoDup [2,6,0]
-    , NoDup [2,7]
-    , NoDup [3,0,5]
-    , NoDup [3,1,4]
-    , NoDup [3,4,1]
-    , NoDup [3,5,0]
-    , NoDup [3,6]
-    , NoDup [4,0,1,2]
-    , NoDup [4,0,2,1]
-    , NoDup [4,1,0,2]
-    , NoDup [4,1,2,0]
-    , NoDup [4,1,3]
-    , NoDup [4,2,0,1]
-    , NoDup [4,2,1,0]
-    , NoDup [4,3,1]
-    , NoDup [4,5]
-    , NoDup [5,0,3]
-    , NoDup [5,1,2]
-    , NoDup [5,2,1]
-    , NoDup [5,3,0]
-    , NoDup [5,4]
-    , NoDup [6,0,2]
-    , NoDup [6,2,0]
-    , NoDup [6,3]
-    , NoDup [7,0,1]
-    , NoDup [7,1,0]
-    , NoDup [7,2]
-    , NoDup [8,1]
-    , NoDup [9,0]
-    , NoDup [10]
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-NoDupNat2.out b/test/diff/tiers-NoDupNat2.out
deleted file mode 100644
--- a/test/diff/tiers-NoDupNat2.out
+++ /dev/null
@@ -1,16 +0,0 @@
-map length (tiers :: [[ NoDup Nat2 ]])  =  [1,1,1,2]
-
-length (list :: [ NoDup Nat2 ])  =  5
-
-allUnique (list :: [ NoDup Nat2 ])  =  True
-
-ratioRepetitions (list :: [ NoDup Nat2 ])  =  0 % 1
-
-tiers :: [NoDup Nat2]  =
-  [ [NoDup []]
-  , [NoDup [0]]
-  , [NoDup [1]]
-  , [ NoDup [0,1]
-    , NoDup [1,0]
-    ]
-  ]
diff --git a/test/diff/tiers-NoDupNat3.out b/test/diff/tiers-NoDupNat3.out
deleted file mode 100644
--- a/test/diff/tiers-NoDupNat3.out
+++ /dev/null
@@ -1,30 +0,0 @@
-map length (tiers :: [[ NoDup Nat3 ]])  =  [1,1,1,3,2,2,6]
-
-length (list :: [ NoDup Nat3 ])  =  Infinity
-
-allUnique (list :: [ NoDup Nat3 ])  =  True
-
-ratioRepetitions (list :: [ NoDup Nat3 ])  =  0 % 1
-
-tiers :: [NoDup Nat3]  =
-  [ [NoDup []]
-  , [NoDup [0]]
-  , [NoDup [1]]
-  , [ NoDup [0,1]
-    , NoDup [1,0]
-    , NoDup [2]
-    ]
-  , [ NoDup [0,2]
-    , NoDup [2,0]
-    ]
-  , [ NoDup [1,2]
-    , NoDup [2,1]
-    ]
-  , [ NoDup [0,1,2]
-    , NoDup [0,2,1]
-    , NoDup [1,0,2]
-    , NoDup [1,2,0]
-    , NoDup [2,0,1]
-    , NoDup [2,1,0]
-    ]
-  ]
diff --git a/test/diff/tiers-NoDupU.out b/test/diff/tiers-NoDupU.out
deleted file mode 100644
--- a/test/diff/tiers-NoDupU.out
+++ /dev/null
@@ -1,12 +0,0 @@
-map length (tiers :: [[ NoDup () ]])  =  [1,1]
-
-length (list :: [ NoDup () ])  =  2
-
-allUnique (list :: [ NoDup () ])  =  True
-
-ratioRepetitions (list :: [ NoDup () ])  =  0 % 1
-
-tiers :: [NoDup ()]  =
-  [ [NoDup []]
-  , [NoDup [()]]
-  ]
diff --git a/test/diff/tiers-Rational.out b/test/diff/tiers-Rational.out
deleted file mode 100644
--- a/test/diff/tiers-Rational.out
+++ /dev/null
@@ -1,23 +0,0 @@
-map length (tiers :: [[ Rational ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,...]
-
-length (list :: [ Rational ])  =  Infinity
-
-allUnique (list :: [ Rational ])  =  True
-
-ratioRepetitions (list :: [ Rational ])  =  0 % 1
-
-tiers :: [Rational]  =
-  [ [0 % 1]
-  , [1 % 1]
-  , [(-1) % 1]
-  , [1 % 2]
-  , [(-1) % 2]
-  , [2 % 1]
-  , [(-2) % 1]
-  , [1 % 3]
-  , [(-1) % 3]
-  , [3 % 2]
-  , [(-3) % 2]
-  , [2 % 3]
-  , ...
-  ]
diff --git a/test/diff/tiers-SetBool.out b/test/diff/tiers-SetBool.out
deleted file mode 100644
--- a/test/diff/tiers-SetBool.out
+++ /dev/null
@@ -1,15 +0,0 @@
-map length (tiers :: [[ Set Bool ]])  =  [1,2,1]
-
-length (list :: [ Set Bool ])  =  4
-
-allUnique (list :: [ Set Bool ])  =  True
-
-ratioRepetitions (list :: [ Set Bool ])  =  0 % 1
-
-tiers :: [Set Bool]  =
-  [ [Set []]
-  , [ Set [False]
-    , Set [True]
-    ]
-  , [Set [False,True]]
-  ]
diff --git a/test/diff/tiers-SetNat.out b/test/diff/tiers-SetNat.out
deleted file mode 100644
--- a/test/diff/tiers-SetNat.out
+++ /dev/null
@@ -1,75 +0,0 @@
-map length (tiers :: [[ Set Nat ]])  =  [1,1,1,2,2,3,4,5,6,8,10,12,...]
-
-length (list :: [ Set Nat ])  =  Infinity
-
-allUnique (list :: [ Set Nat ])  =  True
-
-ratioRepetitions (list :: [ Set Nat ])  =  0 % 1
-
-tiers :: [Set Nat]  =
-  [ [Set []]
-  , [Set [0]]
-  , [Set [1]]
-  , [ Set [0,1]
-    , Set [2]
-    ]
-  , [ Set [0,2]
-    , Set [3]
-    ]
-  , [ Set [0,3]
-    , Set [1,2]
-    , Set [4]
-    ]
-  , [ Set [0,1,2]
-    , Set [0,4]
-    , Set [1,3]
-    , Set [5]
-    ]
-  , [ Set [0,1,3]
-    , Set [0,5]
-    , Set [1,4]
-    , Set [2,3]
-    , Set [6]
-    ]
-  , [ Set [0,1,4]
-    , Set [0,2,3]
-    , Set [0,6]
-    , Set [1,5]
-    , Set [2,4]
-    , Set [7]
-    ]
-  , [ Set [0,1,5]
-    , Set [0,2,4]
-    , Set [0,7]
-    , Set [1,2,3]
-    , Set [1,6]
-    , Set [2,5]
-    , Set [3,4]
-    , Set [8]
-    ]
-  , [ Set [0,1,2,3]
-    , Set [0,1,6]
-    , Set [0,2,5]
-    , Set [0,3,4]
-    , Set [0,8]
-    , Set [1,2,4]
-    , Set [1,7]
-    , Set [2,6]
-    , Set [3,5]
-    , Set [9]
-    ]
-  , [ Set [0,1,2,4]
-    , Set [0,1,7]
-    , Set [0,2,6]
-    , Set [0,3,5]
-    , Set [0,9]
-    , Set [1,2,5]
-    , Set [1,3,4]
-    , Set [1,8]
-    , Set [2,7]
-    , Set [3,6]
-    , Set [4,5]
-    , Set [10]
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-SetNat2.out b/test/diff/tiers-SetNat2.out
deleted file mode 100644
--- a/test/diff/tiers-SetNat2.out
+++ /dev/null
@@ -1,14 +0,0 @@
-map length (tiers :: [[ Set Nat2 ]])  =  [1,1,1,1]
-
-length (list :: [ Set Nat2 ])  =  4
-
-allUnique (list :: [ Set Nat2 ])  =  True
-
-ratioRepetitions (list :: [ Set Nat2 ])  =  0 % 1
-
-tiers :: [Set Nat2]  =
-  [ [Set []]
-  , [Set [0]]
-  , [Set [1]]
-  , [Set [0,1]]
-  ]
diff --git a/test/diff/tiers-SetNat3.out b/test/diff/tiers-SetNat3.out
deleted file mode 100644
--- a/test/diff/tiers-SetNat3.out
+++ /dev/null
@@ -1,19 +0,0 @@
-map length (tiers :: [[ Set Nat3 ]])  =  [1,1,1,2,1,1,1]
-
-length (list :: [ Set Nat3 ])  =  8
-
-allUnique (list :: [ Set Nat3 ])  =  True
-
-ratioRepetitions (list :: [ Set Nat3 ])  =  0 % 1
-
-tiers :: [Set Nat3]  =
-  [ [Set []]
-  , [Set [0]]
-  , [Set [1]]
-  , [ Set [0,1]
-    , Set [2]
-    ]
-  , [Set [0,2]]
-  , [Set [1,2]]
-  , [Set [0,1,2]]
-  ]
diff --git a/test/diff/tiers-SetU.out b/test/diff/tiers-SetU.out
deleted file mode 100644
--- a/test/diff/tiers-SetU.out
+++ /dev/null
@@ -1,12 +0,0 @@
-map length (tiers :: [[ Set () ]])  =  [1,1]
-
-length (list :: [ Set () ])  =  2
-
-allUnique (list :: [ Set () ])  =  True
-
-ratioRepetitions (list :: [ Set () ])  =  0 % 1
-
-tiers :: [Set ()]  =
-  [ [Set []]
-  , [Set [()]]
-  ]
diff --git a/test/diff/tiers-String.out b/test/diff/tiers-String.out
deleted file mode 100644
--- a/test/diff/tiers-String.out
+++ /dev/null
@@ -1,47 +0,0 @@
-map length (tiers :: [[ String ]])  =  [1,1,2,4,8,16,...]
-
-length (list :: [ String ])  =  Infinity
-
-allUnique (list :: [ String ])  =  True
-
-ratioRepetitions (list :: [ String ])  =  0 % 1
-
-tiers :: [String]  =
-  [ [""]
-  , ["a"]
-  , [ "aa"
-    , " "
-    ]
-  , [ "aaa"
-    , "a "
-    , " a"
-    , "b"
-    ]
-  , [ "aaaa"
-    , "aa "
-    , "a a"
-    , "ab"
-    , " aa"
-    , "  "
-    , "ba"
-    , "A"
-    ]
-  , [ "aaaaa"
-    , "aaa "
-    , "aa a"
-    , "aab"
-    , "a aa"
-    , "a  "
-    , "aba"
-    , "aA"
-    , " aaa"
-    , " a "
-    , "  a"
-    , " b"
-    , "baa"
-    , "b "
-    , "Aa"
-    , "c"
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-U,Us.out b/test/diff/tiers-U,Us.out
deleted file mode 100644
--- a/test/diff/tiers-U,Us.out
+++ /dev/null
@@ -1,23 +0,0 @@
-map length (tiers :: [[ [((),())] ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,...]
-
-length (list :: [ [((),())] ])  =  Infinity
-
-allUnique (list :: [ [((),())] ])  =  True
-
-ratioRepetitions (list :: [ [((),())] ])  =  0 % 1
-
-tiers :: [[((),())]]  =
-  [ [[]]
-  , [[((),())]]
-  , [[((),()),((),())]]
-  , [[((),()),((),()),((),())]]
-  , [[((),()),((),()),((),()),((),())]]
-  , [[((),()),((),()),((),()),((),()),((),())]]
-  , [[((),()),((),()),((),()),((),()),((),()),((),())]]
-  , [[((),()),((),()),((),()),((),()),((),()),((),()),((),())]]
-  , [[((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),())]]
-  , [[((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),())]]
-  , [[((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),())]]
-  , [[((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),())]]
-  , ...
-  ]
diff --git a/test/diff/tiers-Us,Us.out b/test/diff/tiers-Us,Us.out
deleted file mode 100644
--- a/test/diff/tiers-Us,Us.out
+++ /dev/null
@@ -1,100 +0,0 @@
-map length (tiers :: [[ ([()],[()]) ]])  =  [1,2,3,4,5,6,7,8,9,10,11,12,...]
-
-length (list :: [ ([()],[()]) ])  =  Infinity
-
-allUnique (list :: [ ([()],[()]) ])  =  True
-
-ratioRepetitions (list :: [ ([()],[()]) ])  =  0 % 1
-
-tiers :: [([()],[()])]  =
-  [ [([],[])]
-  , [ ([],[()])
-    , ([()],[])
-    ]
-  , [ ([],[(),()])
-    , ([()],[()])
-    , ([(),()],[])
-    ]
-  , [ ([],[(),(),()])
-    , ([()],[(),()])
-    , ([(),()],[()])
-    , ([(),(),()],[])
-    ]
-  , [ ([],[(),(),(),()])
-    , ([()],[(),(),()])
-    , ([(),()],[(),()])
-    , ([(),(),()],[()])
-    , ([(),(),(),()],[])
-    ]
-  , [ ([],[(),(),(),(),()])
-    , ([()],[(),(),(),()])
-    , ([(),()],[(),(),()])
-    , ([(),(),()],[(),()])
-    , ([(),(),(),()],[()])
-    , ([(),(),(),(),()],[])
-    ]
-  , [ ([],[(),(),(),(),(),()])
-    , ([()],[(),(),(),(),()])
-    , ([(),()],[(),(),(),()])
-    , ([(),(),()],[(),(),()])
-    , ([(),(),(),()],[(),()])
-    , ([(),(),(),(),()],[()])
-    , ([(),(),(),(),(),()],[])
-    ]
-  , [ ([],[(),(),(),(),(),(),()])
-    , ([()],[(),(),(),(),(),()])
-    , ([(),()],[(),(),(),(),()])
-    , ([(),(),()],[(),(),(),()])
-    , ([(),(),(),()],[(),(),()])
-    , ([(),(),(),(),()],[(),()])
-    , ([(),(),(),(),(),()],[()])
-    , ([(),(),(),(),(),(),()],[])
-    ]
-  , [ ([],[(),(),(),(),(),(),(),()])
-    , ([()],[(),(),(),(),(),(),()])
-    , ([(),()],[(),(),(),(),(),()])
-    , ([(),(),()],[(),(),(),(),()])
-    , ([(),(),(),()],[(),(),(),()])
-    , ([(),(),(),(),()],[(),(),()])
-    , ([(),(),(),(),(),()],[(),()])
-    , ([(),(),(),(),(),(),()],[()])
-    , ([(),(),(),(),(),(),(),()],[])
-    ]
-  , [ ([],[(),(),(),(),(),(),(),(),()])
-    , ([()],[(),(),(),(),(),(),(),()])
-    , ([(),()],[(),(),(),(),(),(),()])
-    , ([(),(),()],[(),(),(),(),(),()])
-    , ([(),(),(),()],[(),(),(),(),()])
-    , ([(),(),(),(),()],[(),(),(),()])
-    , ([(),(),(),(),(),()],[(),(),()])
-    , ([(),(),(),(),(),(),()],[(),()])
-    , ([(),(),(),(),(),(),(),()],[()])
-    , ([(),(),(),(),(),(),(),(),()],[])
-    ]
-  , [ ([],[(),(),(),(),(),(),(),(),(),()])
-    , ([()],[(),(),(),(),(),(),(),(),()])
-    , ([(),()],[(),(),(),(),(),(),(),()])
-    , ([(),(),()],[(),(),(),(),(),(),()])
-    , ([(),(),(),()],[(),(),(),(),(),()])
-    , ([(),(),(),(),()],[(),(),(),(),()])
-    , ([(),(),(),(),(),()],[(),(),(),()])
-    , ([(),(),(),(),(),(),()],[(),(),()])
-    , ([(),(),(),(),(),(),(),()],[(),()])
-    , ([(),(),(),(),(),(),(),(),()],[()])
-    , ([(),(),(),(),(),(),(),(),(),()],[])
-    ]
-  , [ ([],[(),(),(),(),(),(),(),(),(),(),()])
-    , ([()],[(),(),(),(),(),(),(),(),(),()])
-    , ([(),()],[(),(),(),(),(),(),(),(),()])
-    , ([(),(),()],[(),(),(),(),(),(),(),()])
-    , ([(),(),(),()],[(),(),(),(),(),(),()])
-    , ([(),(),(),(),()],[(),(),(),(),(),()])
-    , ([(),(),(),(),(),()],[(),(),(),(),()])
-    , ([(),(),(),(),(),(),()],[(),(),(),()])
-    , ([(),(),(),(),(),(),(),()],[(),(),()])
-    , ([(),(),(),(),(),(),(),(),()],[(),()])
-    , ([(),(),(),(),(),(),(),(),(),()],[()])
-    , ([(),(),(),(),(),(),(),(),(),(),()],[])
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-Us.out b/test/diff/tiers-Us.out
deleted file mode 100644
--- a/test/diff/tiers-Us.out
+++ /dev/null
@@ -1,23 +0,0 @@
-map length (tiers :: [[ [()] ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,...]
-
-length (list :: [ [()] ])  =  Infinity
-
-allUnique (list :: [ [()] ])  =  True
-
-ratioRepetitions (list :: [ [()] ])  =  0 % 1
-
-tiers :: [[()]]  =
-  [ [[]]
-  , [[()]]
-  , [[(),()]]
-  , [[(),(),()]]
-  , [[(),(),(),()]]
-  , [[(),(),(),(),()]]
-  , [[(),(),(),(),(),()]]
-  , [[(),(),(),(),(),(),()]]
-  , [[(),(),(),(),(),(),(),()]]
-  , [[(),(),(),(),(),(),(),(),()]]
-  , [[(),(),(),(),(),(),(),(),(),()]]
-  , [[(),(),(),(),(),(),(),(),(),(),()]]
-  , ...
-  ]
diff --git a/test/diff/tiers-Word2.out b/test/diff/tiers-Word2.out
deleted file mode 100644
--- a/test/diff/tiers-Word2.out
+++ /dev/null
@@ -1,14 +0,0 @@
-map length (tiers :: [[ Word2 ]])  =  [1,1,1,1]
-
-length (list :: [ Word2 ])  =  4
-
-allUnique (list :: [ Word2 ])  =  True
-
-ratioRepetitions (list :: [ Word2 ])  =  0 % 1
-
-tiers :: [Word2]  =
-  [ [0]
-  , [1]
-  , [2]
-  , [3]
-  ]
diff --git a/test/diff/tiers-Word3.out b/test/diff/tiers-Word3.out
deleted file mode 100644
--- a/test/diff/tiers-Word3.out
+++ /dev/null
@@ -1,18 +0,0 @@
-map length (tiers :: [[ Word3 ]])  =  [1,1,1,1,1,1,1,1]
-
-length (list :: [ Word3 ])  =  8
-
-allUnique (list :: [ Word3 ])  =  True
-
-ratioRepetitions (list :: [ Word3 ])  =  0 % 1
-
-tiers :: [Word3]  =
-  [ [0]
-  , [1]
-  , [2]
-  , [3]
-  , [4]
-  , [5]
-  , [6]
-  , [7]
-  ]
diff --git a/test/diff/tiers-Word4.out b/test/diff/tiers-Word4.out
deleted file mode 100644
--- a/test/diff/tiers-Word4.out
+++ /dev/null
@@ -1,26 +0,0 @@
-map length (tiers :: [[ Word4 ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
-
-length (list :: [ Word4 ])  =  Infinity
-
-allUnique (list :: [ Word4 ])  =  True
-
-ratioRepetitions (list :: [ Word4 ])  =  0 % 1
-
-tiers :: [Word4]  =
-  [ [0]
-  , [1]
-  , [2]
-  , [3]
-  , [4]
-  , [5]
-  , [6]
-  , [7]
-  , [8]
-  , [9]
-  , [10]
-  , [11]
-  , [12]
-  , [13]
-  , [14]
-  , [15]
-  ]
diff --git a/test/diff/tiers-Word8.out b/test/diff/tiers-Word8.out
deleted file mode 100644
--- a/test/diff/tiers-Word8.out
+++ /dev/null
@@ -1,266 +0,0 @@
-map length (tiers :: [[ Word8 ]])  =  [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
-
-length (list :: [ Word8 ])  =  Infinity
-
-allUnique (list :: [ Word8 ])  =  True
-
-ratioRepetitions (list :: [ Word8 ])  =  0 % 1
-
-tiers :: [Word8]  =
-  [ [0]
-  , [1]
-  , [2]
-  , [3]
-  , [4]
-  , [5]
-  , [6]
-  , [7]
-  , [8]
-  , [9]
-  , [10]
-  , [11]
-  , [12]
-  , [13]
-  , [14]
-  , [15]
-  , [16]
-  , [17]
-  , [18]
-  , [19]
-  , [20]
-  , [21]
-  , [22]
-  , [23]
-  , [24]
-  , [25]
-  , [26]
-  , [27]
-  , [28]
-  , [29]
-  , [30]
-  , [31]
-  , [32]
-  , [33]
-  , [34]
-  , [35]
-  , [36]
-  , [37]
-  , [38]
-  , [39]
-  , [40]
-  , [41]
-  , [42]
-  , [43]
-  , [44]
-  , [45]
-  , [46]
-  , [47]
-  , [48]
-  , [49]
-  , [50]
-  , [51]
-  , [52]
-  , [53]
-  , [54]
-  , [55]
-  , [56]
-  , [57]
-  , [58]
-  , [59]
-  , [60]
-  , [61]
-  , [62]
-  , [63]
-  , [64]
-  , [65]
-  , [66]
-  , [67]
-  , [68]
-  , [69]
-  , [70]
-  , [71]
-  , [72]
-  , [73]
-  , [74]
-  , [75]
-  , [76]
-  , [77]
-  , [78]
-  , [79]
-  , [80]
-  , [81]
-  , [82]
-  , [83]
-  , [84]
-  , [85]
-  , [86]
-  , [87]
-  , [88]
-  , [89]
-  , [90]
-  , [91]
-  , [92]
-  , [93]
-  , [94]
-  , [95]
-  , [96]
-  , [97]
-  , [98]
-  , [99]
-  , [100]
-  , [101]
-  , [102]
-  , [103]
-  , [104]
-  , [105]
-  , [106]
-  , [107]
-  , [108]
-  , [109]
-  , [110]
-  , [111]
-  , [112]
-  , [113]
-  , [114]
-  , [115]
-  , [116]
-  , [117]
-  , [118]
-  , [119]
-  , [120]
-  , [121]
-  , [122]
-  , [123]
-  , [124]
-  , [125]
-  , [126]
-  , [127]
-  , [128]
-  , [129]
-  , [130]
-  , [131]
-  , [132]
-  , [133]
-  , [134]
-  , [135]
-  , [136]
-  , [137]
-  , [138]
-  , [139]
-  , [140]
-  , [141]
-  , [142]
-  , [143]
-  , [144]
-  , [145]
-  , [146]
-  , [147]
-  , [148]
-  , [149]
-  , [150]
-  , [151]
-  , [152]
-  , [153]
-  , [154]
-  , [155]
-  , [156]
-  , [157]
-  , [158]
-  , [159]
-  , [160]
-  , [161]
-  , [162]
-  , [163]
-  , [164]
-  , [165]
-  , [166]
-  , [167]
-  , [168]
-  , [169]
-  , [170]
-  , [171]
-  , [172]
-  , [173]
-  , [174]
-  , [175]
-  , [176]
-  , [177]
-  , [178]
-  , [179]
-  , [180]
-  , [181]
-  , [182]
-  , [183]
-  , [184]
-  , [185]
-  , [186]
-  , [187]
-  , [188]
-  , [189]
-  , [190]
-  , [191]
-  , [192]
-  , [193]
-  , [194]
-  , [195]
-  , [196]
-  , [197]
-  , [198]
-  , [199]
-  , [200]
-  , [201]
-  , [202]
-  , [203]
-  , [204]
-  , [205]
-  , [206]
-  , [207]
-  , [208]
-  , [209]
-  , [210]
-  , [211]
-  , [212]
-  , [213]
-  , [214]
-  , [215]
-  , [216]
-  , [217]
-  , [218]
-  , [219]
-  , [220]
-  , [221]
-  , [222]
-  , [223]
-  , [224]
-  , [225]
-  , [226]
-  , [227]
-  , [228]
-  , [229]
-  , [230]
-  , [231]
-  , [232]
-  , [233]
-  , [234]
-  , [235]
-  , [236]
-  , [237]
-  , [238]
-  , [239]
-  , [240]
-  , [241]
-  , [242]
-  , [243]
-  , [244]
-  , [245]
-  , [246]
-  , [247]
-  , [248]
-  , [249]
-  , [250]
-  , [251]
-  , [252]
-  , [253]
-  , [254]
-  , [255]
-  ]
diff --git a/test/diff/tiers-XInt4.out b/test/diff/tiers-XInt4.out
deleted file mode 100644
--- a/test/diff/tiers-XInt4.out
+++ /dev/null
@@ -1,23 +0,0 @@
-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/test/diff/tiers-XNat7.out b/test/diff/tiers-XNat7.out
deleted file mode 100644
--- a/test/diff/tiers-XNat7.out
+++ /dev/null
@@ -1,17 +0,0 @@
-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/test/diff/tiers-XWord4.out b/test/diff/tiers-XWord4.out
deleted file mode 100644
--- a/test/diff/tiers-XWord4.out
+++ /dev/null
@@ -1,23 +0,0 @@
-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/test/diff/tiers-XsInt4.out b/test/diff/tiers-XsInt4.out
deleted file mode 100644
--- a/test/diff/tiers-XsInt4.out
+++ /dev/null
@@ -1,1045 +0,0 @@
-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/test/diff/tiers-XsNat7.out b/test/diff/tiers-XsNat7.out
deleted file mode 100644
--- a/test/diff/tiers-XsNat7.out
+++ /dev/null
@@ -1,1033 +0,0 @@
-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/test/diff/tiers-XsWord4.out b/test/diff/tiers-XsWord4.out
deleted file mode 100644
--- a/test/diff/tiers-XsWord4.out
+++ /dev/null
@@ -1,1045 +0,0 @@
-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/test/diff/tiers-default-Bool-Bool-Bool-Bool.out b/test/diff/tiers-default-Bool-Bool-Bool-Bool.out
deleted file mode 100644
--- a/test/diff/tiers-default-Bool-Bool-Bool-Bool.out
+++ /dev/null
@@ -1,1059 +0,0 @@
-map length (tiers :: [[ Bool->Bool->Bool->Bool ]])  =  [256]
-
-length (list :: [ Bool->Bool->Bool->Bool ])  =  Infinity
-
-allUnique (list :: [ Bool->Bool->Bool->Bool ])  =  True
-
-ratioRepetitions (list :: [ Bool->Bool->Bool->Bool ])  =  0 % 1
-
-tiers :: [Bool->Bool->Bool->Bool]  =
-  [ [ \_ _ _ -> False
-    , \x y z -> case (x,y,z) of
-                (True,True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (True,True,False) -> True
-                _ -> False
-    , \x y _ -> case (x,y) of
-                (True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (True,False,True) -> True
-                _ -> False
-    , \x _ z -> case (x,z) of
-                (True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (True,False,True) -> True
-                (True,True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,_,_) -> False
-                (_,False,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (True,False,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (True,False,False) -> True
-                (True,True,True) -> True
-                _ -> False
-    , \x _ z -> case (x,z) of
-                (True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (True,_,False) -> True
-                (True,True,_) -> True
-                _ -> False
-    , \x y _ -> case (x,y) of
-                (True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (True,False,_) -> True
-                (True,_,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (True,False,_) -> True
-                (True,_,False) -> True
-                _ -> False
-    , \x _ _ -> case x of
-                False -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,True,True) -> True
-                _ -> False
-    , \_ y z -> case (y,z) of
-                (True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,True,True) -> True
-                (True,True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> False
-                (_,False,_) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,True,True) -> True
-                (True,False,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> False
-                (_,_,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,True,True) -> True
-                (True,False,True) -> True
-                (True,True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> False
-                (False,_,False) -> False
-                (_,False,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,True,True) -> True
-                (True,False,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (_,True,True) -> True
-                (True,False,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,True,True) -> True
-                (True,_,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> False
-                (False,_,False) -> False
-                (_,False,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,True,True) -> True
-                (True,False,_) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> False
-                (False,_,False) -> False
-                (_,True,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> False
-                (False,_,False) -> False
-                (True,True,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> False
-                (False,_,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,True,False) -> True
-                (True,True,True) -> True
-                _ -> False
-    , \_ y z -> case (y,z) of
-                (True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (_,True,False) -> True
-                (True,True,_) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,True,False) -> True
-                (True,False,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,True,False) -> True
-                (True,_,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (_,True,False) -> True
-                (True,False,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> False
-                (_,False,False) -> False
-                (False,_,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,True,False) -> True
-                (True,False,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,True,False) -> True
-                (True,False,False) -> True
-                (True,True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> False
-                (_,_,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> False
-                (False,_,True) -> False
-                (_,False,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,True,False) -> True
-                (True,False,_) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> False
-                (False,_,True) -> False
-                (True,True,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> False
-                (False,_,True) -> False
-                (_,True,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> False
-                (False,_,True) -> False
-                _ -> True
-    , \x y _ -> case (x,y) of
-                (False,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,True,_) -> True
-                (_,True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,True,_) -> True
-                (_,True,False) -> True
-                _ -> False
-    , \_ y _ -> case y of
-                False -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,True,_) -> True
-                (True,False,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> False
-                (_,False,False) -> False
-                (True,_,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> False
-                (_,False,False) -> False
-                (True,True,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> False
-                (_,False,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,True,_) -> True
-                (True,False,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> False
-                (_,False,True) -> False
-                (True,True,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> False
-                (False,_,_) -> True
-                (_,_,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> False
-                (_,False,True) -> False
-                _ -> True
-    , \x y _ -> case (x,y) of
-                (False,False) -> False
-                (True,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> False
-                (True,True,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> False
-                (True,True,True) -> False
-                _ -> True
-    , \x y _ -> case (x,y) of
-                (False,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,True) -> True
-                (True,True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,True) -> True
-                (True,True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,True) -> True
-                (True,True,_) -> True
-                _ -> False
-    , \_ y z -> case (y,z) of
-                (False,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (_,False,True) -> True
-                (True,_,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (_,False,True) -> True
-                (True,True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> False
-                (_,False,False) -> False
-                (False,True,_) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,True) -> True
-                (True,False,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,True) -> True
-                (True,False,False) -> True
-                (True,True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,True) -> True
-                (True,_,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> False
-                (False,True,_) -> False
-                (True,False,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> False
-                (_,False,_) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> False
-                (False,True,_) -> False
-                (_,True,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> False
-                (False,True,_) -> False
-                (_,True,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> False
-                (False,True,_) -> False
-                _ -> True
-    , \x _ z -> case (x,z) of
-                (False,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,_,True) -> True
-                (_,True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,_,True) -> True
-                (True,True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> False
-                (_,False,False) -> False
-                (True,False,_) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,_,True) -> True
-                (_,False,True) -> True
-                _ -> False
-    , \_ _ z -> case z of
-                False -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> False
-                (_,False,False) -> False
-                (True,True,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> False
-                (_,False,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,_,True) -> True
-                (True,False,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> False
-                (True,False,True) -> False
-                (_,True,False) -> False
-                _ -> True
-    , \x _ z -> case (x,z) of
-                (False,False) -> False
-                (True,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> False
-                (True,False,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> False
-                (False,_,_) -> True
-                (_,False,_) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> False
-                (_,True,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> False
-                (True,True,True) -> False
-                _ -> True
-    , \x _ z -> case (x,z) of
-                (False,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,True) -> True
-                (False,True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,True) -> True
-                (False,True,False) -> True
-                (True,True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,True) -> True
-                (_,True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (_,False,False) -> False
-                (False,True,True) -> False
-                (True,False,_) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (_,False,True) -> True
-                (False,True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (_,False,False) -> False
-                (False,True,True) -> False
-                (True,_,False) -> False
-                _ -> True
-    , \_ y z -> case (y,z) of
-                (False,False) -> False
-                (True,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (_,False,False) -> False
-                (False,True,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,True) -> True
-                (False,True,False) -> True
-                (True,False,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> False
-                (False,True,True) -> False
-                (True,False,True) -> False
-                (True,True,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> False
-                (False,False,_) -> True
-                (_,_,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> False
-                (False,True,True) -> False
-                (True,False,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> False
-                (_,False,_) -> True
-                (False,_,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> False
-                (False,True,True) -> False
-                (True,True,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> False
-                (_,True,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> False
-                (False,True,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (_,False,False) -> False
-                (False,_,_) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (_,False,False) -> False
-                (True,False,_) -> False
-                (True,_,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (_,False,False) -> False
-                (True,False,_) -> False
-                (True,_,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (_,False,False) -> False
-                (True,False,_) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (_,False,False) -> False
-                (False,_,_) -> True
-                (_,False,_) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (_,False,False) -> False
-                (True,_,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (_,False,False) -> False
-                (True,True,True) -> False
-                _ -> True
-    , \_ y z -> case (y,z) of
-                (False,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> False
-                (False,_,_) -> True
-                (_,False,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> False
-                (True,False,True) -> False
-                (True,True,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> False
-                (True,_,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> False
-                (True,False,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> False
-                (True,True,_) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> False
-                (True,True,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> False
-                (True,True,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> True
-                (True,True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> True
-                (True,True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> True
-                (True,True,_) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> True
-                (True,False,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> True
-                (True,_,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> True
-                (True,False,True) -> True
-                (True,True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> True
-                (False,_,_) -> False
-                (_,False,False) -> False
-                _ -> True
-    , \_ y z -> case (y,z) of
-                (False,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (_,False,False) -> True
-                (True,True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (_,False,False) -> True
-                (True,_,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (_,False,False) -> True
-                (False,_,_) -> False
-                (_,False,_) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (_,False,False) -> True
-                (True,False,_) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (_,False,False) -> True
-                (True,False,_) -> True
-                (True,_,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (_,False,False) -> True
-                (True,False,_) -> True
-                (True,_,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (_,False,False) -> True
-                (False,_,_) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> True
-                (False,True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> True
-                (_,True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> True
-                (False,True,True) -> True
-                (True,True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> True
-                (_,False,_) -> False
-                (False,_,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> True
-                (False,True,True) -> True
-                (True,False,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> True
-                (False,False,_) -> False
-                (_,_,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,False) -> True
-                (False,True,True) -> True
-                (True,False,True) -> True
-                (True,True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,True) -> False
-                (False,True,False) -> False
-                (True,False,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (_,False,False) -> True
-                (False,True,True) -> True
-                _ -> False
-    , \_ y z -> case (y,z) of
-                (False,False) -> True
-                (True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (_,False,False) -> True
-                (False,True,True) -> True
-                (True,_,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (_,False,True) -> False
-                (False,True,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (_,False,False) -> True
-                (False,True,True) -> True
-                (True,False,_) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,True) -> False
-                (_,True,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,True) -> False
-                (False,True,False) -> False
-                (True,True,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,True) -> False
-                (False,True,False) -> False
-                _ -> True
-    , \x _ z -> case (x,z) of
-                (False,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> True
-                (True,True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> True
-                (_,True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> True
-                (False,_,_) -> False
-                (_,False,_) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> True
-                (True,False,True) -> True
-                _ -> False
-    , \x _ z -> case (x,z) of
-                (False,False) -> True
-                (True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> True
-                (True,False,True) -> True
-                (_,True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,_,True) -> False
-                (True,False,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> True
-                (_,False,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> True
-                (_,False,False) -> True
-                (True,True,True) -> True
-                _ -> False
-    , \_ _ z -> case z of
-                False -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,_,True) -> False
-                (_,False,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> True
-                (_,False,False) -> True
-                (True,False,_) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,_,True) -> False
-                (True,True,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,_,True) -> False
-                (_,True,True) -> False
-                _ -> True
-    , \x _ z -> case (x,z) of
-                (False,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> True
-                (False,True,_) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> True
-                (False,True,_) -> True
-                (_,True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> True
-                (False,True,_) -> True
-                (_,True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> True
-                (_,False,_) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> True
-                (False,True,_) -> True
-                (True,False,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,True) -> False
-                (True,_,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,True) -> False
-                (True,False,False) -> False
-                (True,True,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,True) -> False
-                (True,False,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> True
-                (_,False,False) -> True
-                (False,True,_) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (_,False,True) -> False
-                (True,True,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (_,False,True) -> False
-                (True,_,True) -> False
-                _ -> True
-    , \_ y z -> case (y,z) of
-                (False,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,True) -> False
-                (True,True,_) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,True) -> False
-                (True,True,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,True) -> False
-                (True,True,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,True) -> False
-                _ -> True
-    , \x y _ -> case (x,y) of
-                (False,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> True
-                (True,True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> True
-                (True,True,False) -> True
-                _ -> False
-    , \x y _ -> case (x,y) of
-                (False,False) -> True
-                (True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> True
-                (_,False,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> True
-                (False,_,_) -> False
-                (_,_,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> True
-                (_,False,True) -> True
-                (True,True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,True,_) -> False
-                (True,False,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> True
-                (_,False,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> True
-                (_,False,False) -> True
-                (True,True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> True
-                (_,False,False) -> True
-                (True,_,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,True,_) -> False
-                (True,False,True) -> False
-                _ -> True
-    , \_ y _ -> case y of
-                False -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,True,_) -> False
-                (_,True,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,True,_) -> False
-                (_,True,True) -> False
-                _ -> True
-    , \x y _ -> case (x,y) of
-                (False,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> True
-                (False,_,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> True
-                (False,_,True) -> True
-                (_,True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> True
-                (False,_,True) -> True
-                (True,True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,True,False) -> False
-                (True,False,_) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> True
-                (False,_,True) -> True
-                (_,False,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> True
-                (_,_,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,True,False) -> False
-                (True,False,False) -> False
-                (True,True,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,True,False) -> False
-                (True,False,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> True
-                (_,False,False) -> True
-                (False,_,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (_,True,False) -> False
-                (True,False,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,True,False) -> False
-                (True,_,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,True,False) -> False
-                (True,False,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (_,True,False) -> False
-                (True,True,_) -> False
-                _ -> True
-    , \_ y z -> case (y,z) of
-                (True,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,True,False) -> False
-                (True,True,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,True,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> True
-                (False,_,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> True
-                (False,_,False) -> True
-                (True,True,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> True
-                (False,_,False) -> True
-                (_,True,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,True,True) -> False
-                (True,False,_) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> True
-                (False,_,False) -> True
-                (_,False,True) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,True,True) -> False
-                (True,_,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (_,True,True) -> False
-                (True,False,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,True,True) -> False
-                (True,False,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> True
-                (False,_,False) -> True
-                (_,False,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,True,True) -> False
-                (True,False,True) -> False
-                (True,True,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,False,_) -> True
-                (_,_,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,True,True) -> False
-                (True,False,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,_,False) -> True
-                (_,False,_) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (False,True,True) -> False
-                (True,True,False) -> False
-                _ -> True
-    , \_ y z -> case (y,z) of
-                (True,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,True,True) -> False
-                _ -> True
-    , \x _ _ -> case x of
-                False -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (True,False,_) -> False
-                (True,_,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (True,False,_) -> False
-                (True,_,True) -> False
-                _ -> True
-    , \x y _ -> case (x,y) of
-                (True,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (True,_,False) -> False
-                (True,True,_) -> False
-                _ -> True
-    , \x _ z -> case (x,z) of
-                (True,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (True,False,False) -> False
-                (True,True,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (True,False,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (False,_,_) -> True
-                (_,False,False) -> True
-                _ -> False
-    , \x y z -> case (x,y,z) of
-                (True,False,True) -> False
-                (True,True,False) -> False
-                _ -> True
-    , \x _ z -> case (x,z) of
-                (True,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (True,False,True) -> False
-                _ -> True
-    , \x y _ -> case (x,y) of
-                (True,True) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (True,True,False) -> False
-                _ -> True
-    , \x y z -> case (x,y,z) of
-                (True,True,True) -> False
-                _ -> True
-    , \_ _ _ -> True
-    ]
-  ]
diff --git a/test/diff/tiers-default-Bool-Bool-Bool.out b/test/diff/tiers-default-Bool-Bool-Bool.out
deleted file mode 100644
--- a/test/diff/tiers-default-Bool-Bool-Bool.out
+++ /dev/null
@@ -1,57 +0,0 @@
-map length (tiers :: [[ Bool->Bool->Bool ]])  =  [16]
-
-length (list :: [ Bool->Bool->Bool ])  =  Infinity
-
-allUnique (list :: [ Bool->Bool->Bool ])  =  True
-
-ratioRepetitions (list :: [ Bool->Bool->Bool ])  =  0 % 1
-
-tiers :: [Bool->Bool->Bool]  =
-  [ [ \_ _ -> False
-    , \x y -> case (x,y) of
-              (True,True) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (True,False) -> True
-              _ -> False
-    , \x _ -> case x of
-              False -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,True) -> True
-              _ -> False
-    , \_ y -> case y of
-              False -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,False) -> False
-              (True,True) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,False) -> True
-              (True,True) -> True
-              _ -> False
-    , \_ y -> case y of
-              False -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,True) -> False
-              _ -> True
-    , \x _ -> case x of
-              False -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (True,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (True,True) -> False
-              _ -> True
-    , \_ _ -> True
-    ]
-  ]
diff --git a/test/diff/tiers-default-Bool-Bool.out b/test/diff/tiers-default-Bool-Bool.out
deleted file mode 100644
--- a/test/diff/tiers-default-Bool-Bool.out
+++ /dev/null
@@ -1,19 +0,0 @@
-map length (tiers :: [[ Bool->Bool ]])  =  [4]
-
-length (list :: [ Bool->Bool ])  =  4
-
-allUnique (list :: [ Bool->Bool ])  =  True
-
-ratioRepetitions (list :: [ Bool->Bool ])  =  0 % 1
-
-tiers :: [Bool->Bool]  =
-  [ [ \_ -> False
-    , \x -> case x of
-            False -> False
-            True -> True
-    , \x -> case x of
-            False -> True
-            True -> False
-    , \_ -> True
-    ]
-  ]
diff --git a/test/diff/tiers-default-Bool-Int-Bool.out b/test/diff/tiers-default-Bool-Int-Bool.out
deleted file mode 100644
--- a/test/diff/tiers-default-Bool-Int-Bool.out
+++ /dev/null
@@ -1,709 +0,0 @@
-map length (tiers :: [[ Bool->Int->Bool ]])  =  [4,8,12,24,36,56,...]
-
-length (list :: [ Bool->Int->Bool ])  =  Infinity
-
-allUnique (list :: [ Bool->Int->Bool ])  =  True
-
-ratioRepetitions (list :: [ Bool->Int->Bool ])  =  0 % 1
-
-tiers :: [Bool->Int->Bool]  =
-  [ [ \_ _ -> False
-    , \x _ -> case x of
-              False -> False
-              _ -> True
-    , \x _ -> case x of
-              False -> True
-              _ -> False
-    , \_ _ -> True
-    ]
-  , [ \x y -> case (x,y) of
-              (True,0) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,_) -> False
-              (_,0) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,_) -> True
-              (_,0) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (True,0) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,0) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,0) -> True
-              (False,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (_,0) -> False
-              (False,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,0) -> False
-              _ -> True
-    ]
-  , [ \x y -> case (x,y) of
-              (True,1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,_) -> False
-              (_,0) -> True
-              (_,1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,_) -> True
-              (_,0) -> False
-              (_,1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (True,1) -> False
-              _ -> True
-    , \_ y -> case y of
-              0 -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,0) -> True
-              (_,0) -> False
-              (False,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,0) -> False
-              (_,0) -> True
-              (False,_) -> True
-              _ -> False
-    , \_ y -> case y of
-              0 -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,0) -> False
-              (True,_) -> True
-              (_,0) -> True
-              (_,1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,0) -> True
-              (True,_) -> False
-              (_,0) -> False
-              (_,1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,1) -> False
-              _ -> True
-    ]
-  , [ \x y -> case (x,y) of
-              (True,0) -> True
-              (True,1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (True,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,_) -> False
-              (_,0) -> False
-              (_,1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,_) -> False
-              (_,0) -> True
-              (_,1) -> True
-              (_,-1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,_) -> True
-              (_,0) -> True
-              (_,1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,_) -> True
-              (_,0) -> False
-              (_,1) -> False
-              (_,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (True,0) -> False
-              (True,1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (True,-1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,0) -> True
-              (True,1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,0) -> True
-              (False,_) -> False
-              (_,1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (_,0) -> False
-              (False,_) -> True
-              (_,1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,0) -> False
-              (True,1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (True,0) -> True
-              (False,1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,0) -> False
-              (_,1) -> True
-              (False,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (_,0) -> True
-              (_,1) -> False
-              (False,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (True,0) -> False
-              (False,1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,0) -> True
-              (False,1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,0) -> True
-              (_,1) -> True
-              (False,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,0) -> False
-              (True,_) -> True
-              (_,0) -> True
-              (_,1) -> False
-              (_,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,0) -> False
-              (_,1) -> False
-              (False,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,0) -> False
-              (False,1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,0) -> True
-              (True,_) -> False
-              (_,0) -> False
-              (_,1) -> True
-              (_,-1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,-1) -> False
-              _ -> True
-    ]
-  , [ \x y -> case (x,y) of
-              (True,0) -> True
-              (True,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (True,2) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,_) -> False
-              (_,0) -> False
-              (_,1) -> True
-              (_,-1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,_) -> False
-              (_,0) -> True
-              (_,1) -> True
-              (_,-1) -> True
-              (_,2) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,_) -> True
-              (_,0) -> True
-              (_,1) -> False
-              (_,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,_) -> True
-              (_,0) -> False
-              (_,1) -> False
-              (_,-1) -> False
-              (_,2) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (True,0) -> False
-              (True,-1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (True,2) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (_,0) -> True
-              (True,1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,0) -> True
-              (True,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,0) -> True
-              (_,0) -> False
-              (False,_) -> False
-              (_,1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (_,0) -> True
-              (False,_) -> False
-              (_,1) -> True
-              (_,-1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,0) -> False
-              (_,0) -> True
-              (False,_) -> True
-              (_,1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,0) -> False
-              (False,_) -> True
-              (_,1) -> False
-              (_,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,0) -> False
-              (True,1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,0) -> False
-              (True,-1) -> False
-              _ -> True
-    , \_ y -> case y of
-              1 -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,0) -> False
-              (_,0) -> True
-              (False,1) -> True
-              (_,1) -> False
-              (False,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,0) -> True
-              (_,0) -> False
-              (False,1) -> False
-              (_,1) -> True
-              (False,_) -> True
-              _ -> False
-    , \_ y -> case y of
-              1 -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (_,0) -> True
-              (False,1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,0) -> True
-              (_,0) -> False
-              (_,1) -> True
-              (False,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (True,0) -> True
-              (False,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,0) -> False
-              (False,1) -> False
-              (True,_) -> True
-              (_,1) -> True
-              (_,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,0) -> False
-              (_,0) -> True
-              (_,1) -> False
-              (False,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,0) -> False
-              (False,1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (_,0) -> True
-              (False,1) -> True
-              (True,_) -> False
-              (_,1) -> False
-              (_,-1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (True,0) -> False
-              (False,-1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,0) -> True
-              (False,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,0) -> True
-              (False,1) -> False
-              (True,_) -> True
-              (_,1) -> True
-              (_,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,2) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,0) -> False
-              (True,_) -> True
-              (_,0) -> True
-              (_,1) -> False
-              (_,-1) -> False
-              (_,2) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,0) -> False
-              (False,1) -> True
-              (True,_) -> False
-              (_,1) -> False
-              (_,-1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,0) -> False
-              (False,-1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,0) -> True
-              (True,_) -> False
-              (_,0) -> False
-              (_,1) -> True
-              (_,-1) -> True
-              (_,2) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,2) -> False
-              _ -> True
-    ]
-  , [ \x y -> case (x,y) of
-              (True,0) -> True
-              (True,2) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (True,1) -> True
-              (True,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (True,-2) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,_) -> False
-              (_,0) -> False
-              (_,1) -> True
-              (_,-1) -> True
-              (_,2) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,_) -> False
-              (_,0) -> True
-              (_,1) -> False
-              (_,-1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,_) -> False
-              (_,0) -> True
-              (_,1) -> True
-              (_,-1) -> True
-              (_,2) -> True
-              (_,-2) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,_) -> True
-              (_,0) -> True
-              (_,1) -> False
-              (_,-1) -> False
-              (_,2) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,_) -> True
-              (_,0) -> False
-              (_,1) -> True
-              (_,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,_) -> True
-              (_,0) -> False
-              (_,1) -> False
-              (_,-1) -> False
-              (_,2) -> False
-              (_,-2) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (True,0) -> False
-              (True,2) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (True,1) -> False
-              (True,-1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (True,-2) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (_,0) -> True
-              (True,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,0) -> True
-              (True,2) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,0) -> True
-              (_,0) -> False
-              (False,_) -> False
-              (_,1) -> True
-              (_,-1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (_,0) -> True
-              (False,_) -> False
-              (_,1) -> True
-              (_,-1) -> True
-              (_,2) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,0) -> False
-              (_,0) -> True
-              (False,_) -> True
-              (_,1) -> False
-              (_,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,0) -> False
-              (False,_) -> True
-              (_,1) -> False
-              (_,-1) -> False
-              (_,2) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,0) -> False
-              (True,-1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,0) -> False
-              (True,2) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (True,0) -> True
-              (_,1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,1) -> True
-              (True,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,0) -> False
-              (False,1) -> True
-              (_,1) -> False
-              (False,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,0) -> False
-              (_,0) -> True
-              (_,1) -> True
-              (False,_) -> False
-              (_,-1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (_,0) -> True
-              (False,1) -> False
-              (_,1) -> True
-              (False,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,0) -> True
-              (_,0) -> False
-              (_,1) -> False
-              (False,_) -> True
-              (_,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (True,0) -> False
-              (_,1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,1) -> False
-              (True,-1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,0) -> True
-              (_,1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,0) -> True
-              (False,1) -> True
-              (_,1) -> False
-              (False,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (True,1) -> True
-              (False,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,0) -> False
-              (_,0) -> True
-              (_,1) -> False
-              (_,-1) -> True
-              (False,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (_,0) -> False
-              (False,1) -> False
-              (_,1) -> True
-              (False,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,0) -> False
-              (_,1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,0) -> True
-              (_,0) -> False
-              (_,1) -> True
-              (_,-1) -> False
-              (False,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (True,1) -> False
-              (False,-1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (_,0) -> True
-              (False,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,0) -> True
-              (_,0) -> False
-              (False,1) -> False
-              (True,_) -> True
-              (_,1) -> True
-              (_,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (True,0) -> True
-              (False,2) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,0) -> False
-              (False,1) -> False
-              (True,_) -> True
-              (_,1) -> True
-              (_,-1) -> False
-              (_,2) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,0) -> False
-              (_,0) -> True
-              (False,1) -> True
-              (True,_) -> False
-              (_,1) -> False
-              (_,-1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (_,0) -> False
-              (False,-1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (_,0) -> True
-              (False,1) -> True
-              (True,_) -> False
-              (_,1) -> False
-              (_,-1) -> True
-              (_,2) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (True,0) -> False
-              (False,2) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,0) -> True
-              (False,2) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,0) -> True
-              (False,1) -> False
-              (True,_) -> True
-              (_,1) -> True
-              (_,-1) -> False
-              (_,2) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,1) -> True
-              (False,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,0) -> False
-              (True,_) -> True
-              (_,0) -> True
-              (_,1) -> True
-              (_,-1) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,-2) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (False,0) -> False
-              (True,_) -> True
-              (_,0) -> True
-              (_,1) -> False
-              (_,-1) -> False
-              (_,2) -> False
-              (_,-2) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,0) -> False
-              (False,1) -> True
-              (True,_) -> False
-              (_,1) -> False
-              (_,-1) -> True
-              (_,2) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,0) -> False
-              (False,2) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,0) -> True
-              (True,_) -> False
-              (_,0) -> False
-              (_,1) -> False
-              (_,-1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,1) -> False
-              (False,-1) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,0) -> True
-              (True,_) -> False
-              (_,0) -> False
-              (_,1) -> True
-              (_,-1) -> True
-              (_,2) -> True
-              (_,-2) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (False,-2) -> False
-              _ -> True
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-default-Bool-MBool.out b/test/diff/tiers-default-Bool-MBool.out
deleted file mode 100644
--- a/test/diff/tiers-default-Bool-MBool.out
+++ /dev/null
@@ -1,33 +0,0 @@
-map length (tiers :: [[ Bool->Maybe Bool ]])  =  [1,4,4]
-
-length (list :: [ Bool->Maybe Bool ])  =  9
-
-allUnique (list :: [ Bool->Maybe Bool ])  =  True
-
-ratioRepetitions (list :: [ Bool->Maybe Bool ])  =  0 % 1
-
-tiers :: [Bool->Maybe Bool]  =
-  [ [\_ -> Nothing]
-  , [ \x -> case x of
-            False -> Nothing
-            True -> Just False
-    , \x -> case x of
-            False -> Nothing
-            True -> Just True
-    , \x -> case x of
-            False -> Just False
-            True -> Nothing
-    , \x -> case x of
-            False -> Just True
-            True -> Nothing
-    ]
-  , [ \_ -> Just False
-    , \x -> case x of
-            False -> Just False
-            True -> Just True
-    , \x -> case x of
-            False -> Just True
-            True -> Just False
-    , \_ -> Just True
-    ]
-  ]
diff --git a/test/diff/tiers-default-Bool-U.out b/test/diff/tiers-default-Bool-U.out
deleted file mode 100644
--- a/test/diff/tiers-default-Bool-U.out
+++ /dev/null
@@ -1,10 +0,0 @@
-map length (tiers :: [[ Bool->() ]])  =  [1]
-
-length (list :: [ Bool->() ])  =  1
-
-allUnique (list :: [ Bool->() ])  =  True
-
-ratioRepetitions (list :: [ Bool->() ])  =  0 % 1
-
-tiers :: [Bool->()]  =
-  [[\_ -> ()]]
diff --git a/test/diff/tiers-default-Bools-Bools.out b/test/diff/tiers-default-Bools-Bools.out
deleted file mode 100644
--- a/test/diff/tiers-default-Bools-Bools.out
+++ /dev/null
@@ -1,332 +0,0 @@
-map length (tiers :: [[ [Bool]->[Bool] ]])  =  [1,2,8,26,88,...]
-
-length (list :: [ [Bool]->[Bool] ])  =  Infinity
-
-allUnique (list :: [ [Bool]->[Bool] ])  =  True
-
-ratioRepetitions (list :: [ [Bool]->[Bool] ])  =  0 % 1
-
-tiers :: [[Bool]->[Bool]]  =
-  [ [\_ -> []]
-  , [ \_ -> [False]
-    , \_ -> [True]
-    ]
-  , [ \x -> case x of
-            [] -> [False]
-            _ -> []
-    , \x -> case x of
-            [] -> [True]
-            _ -> []
-    , \x -> case x of
-            [] -> []
-            _ -> [False]
-    , \x -> case x of
-            [] -> []
-            _ -> [True]
-    , \_ -> [False,False]
-    , \_ -> [False,True]
-    , \_ -> [True,False]
-    , \_ -> [True,True]
-    ]
-  , [ \x -> case x of
-            [] -> [False,False]
-            _ -> []
-    , \x -> case x of
-            [] -> [False,True]
-            _ -> []
-    , \x -> case x of
-            [] -> [True,False]
-            _ -> []
-    , \x -> case x of
-            [] -> [True,True]
-            _ -> []
-    , \x -> case x of
-            [False] -> [False]
-            _ -> []
-    , \x -> case x of
-            [False] -> [True]
-            _ -> []
-    , \x -> case x of
-            [True] -> [False]
-            _ -> []
-    , \x -> case x of
-            [True] -> [True]
-            _ -> []
-    , \x -> case x of
-            [] -> [True]
-            _ -> [False]
-    , \x -> case x of
-            [False] -> []
-            _ -> [False]
-    , \x -> case x of
-            [True] -> []
-            _ -> [False]
-    , \x -> case x of
-            [] -> [False]
-            _ -> [True]
-    , \x -> case x of
-            [False] -> []
-            _ -> [True]
-    , \x -> case x of
-            [True] -> []
-            _ -> [True]
-    , \x -> case x of
-            [] -> []
-            _ -> [False,False]
-    , \x -> case x of
-            [] -> []
-            _ -> [False,True]
-    , \x -> case x of
-            [] -> []
-            _ -> [True,False]
-    , \x -> case x of
-            [] -> []
-            _ -> [True,True]
-    , \_ -> [False,False,False]
-    , \_ -> [False,False,True]
-    , \_ -> [False,True,False]
-    , \_ -> [False,True,True]
-    , \_ -> [True,False,False]
-    , \_ -> [True,False,True]
-    , \_ -> [True,True,False]
-    , \_ -> [True,True,True]
-    ]
-  , [ \x -> case x of
-            [] -> [False,False,False]
-            _ -> []
-    , \x -> case x of
-            [] -> [False,False,True]
-            _ -> []
-    , \x -> case x of
-            [] -> [False,True,False]
-            _ -> []
-    , \x -> case x of
-            [] -> [False,True,True]
-            _ -> []
-    , \x -> case x of
-            [] -> [True,False,False]
-            _ -> []
-    , \x -> case x of
-            [] -> [True,False,True]
-            _ -> []
-    , \x -> case x of
-            [] -> [True,True,False]
-            _ -> []
-    , \x -> case x of
-            [] -> [True,True,True]
-            _ -> []
-    , \x -> case x of
-            [False] -> [False,False]
-            _ -> []
-    , \x -> case x of
-            [False] -> [False,True]
-            _ -> []
-    , \x -> case x of
-            [False] -> [True,False]
-            _ -> []
-    , \x -> case x of
-            [False] -> [True,True]
-            _ -> []
-    , \x -> case x of
-            [True] -> [False,False]
-            _ -> []
-    , \x -> case x of
-            [True] -> [False,True]
-            _ -> []
-    , \x -> case x of
-            [True] -> [True,False]
-            _ -> []
-    , \x -> case x of
-            [True] -> [True,True]
-            _ -> []
-    , \x -> case x of
-            [False,False] -> [False]
-            _ -> []
-    , \x -> case x of
-            [False,False] -> [True]
-            _ -> []
-    , \x -> case x of
-            [False,True] -> [False]
-            _ -> []
-    , \x -> case x of
-            [False,True] -> [True]
-            _ -> []
-    , \x -> case x of
-            [True,False] -> [False]
-            _ -> []
-    , \x -> case x of
-            [True,False] -> [True]
-            _ -> []
-    , \x -> case x of
-            [True,True] -> [False]
-            _ -> []
-    , \x -> case x of
-            [True,True] -> [True]
-            _ -> []
-    , \x -> case x of
-            [] -> [False,False]
-            _ -> [False]
-    , \x -> case x of
-            [] -> [False,True]
-            _ -> [False]
-    , \x -> case x of
-            [] -> [True,False]
-            _ -> [False]
-    , \x -> case x of
-            [] -> [True,True]
-            _ -> [False]
-    , \x -> case x of
-            [False] -> [True]
-            _ -> [False]
-    , \x -> case x of
-            [True] -> [True]
-            _ -> [False]
-    , \x -> case x of
-            [] -> []
-            [False] -> []
-            _ -> [False]
-    , \x -> case x of
-            [] -> []
-            [True] -> []
-            _ -> [False]
-    , \x -> case x of
-            [False,False] -> []
-            _ -> [False]
-    , \x -> case x of
-            [False,True] -> []
-            _ -> [False]
-    , \x -> case x of
-            [True,False] -> []
-            _ -> [False]
-    , \x -> case x of
-            [True,True] -> []
-            _ -> [False]
-    , \x -> case x of
-            [] -> [False,False]
-            _ -> [True]
-    , \x -> case x of
-            [] -> [False,True]
-            _ -> [True]
-    , \x -> case x of
-            [] -> [True,False]
-            _ -> [True]
-    , \x -> case x of
-            [] -> [True,True]
-            _ -> [True]
-    , \x -> case x of
-            [False] -> [False]
-            _ -> [True]
-    , \x -> case x of
-            [True] -> [False]
-            _ -> [True]
-    , \x -> case x of
-            [] -> []
-            [False] -> []
-            _ -> [True]
-    , \x -> case x of
-            [] -> []
-            [True] -> []
-            _ -> [True]
-    , \x -> case x of
-            [False,False] -> []
-            _ -> [True]
-    , \x -> case x of
-            [False,True] -> []
-            _ -> [True]
-    , \x -> case x of
-            [True,False] -> []
-            _ -> [True]
-    , \x -> case x of
-            [True,True] -> []
-            _ -> [True]
-    , \x -> case x of
-            [] -> [False]
-            _ -> [False,False]
-    , \x -> case x of
-            [] -> [True]
-            _ -> [False,False]
-    , \x -> case x of
-            [False] -> []
-            _ -> [False,False]
-    , \x -> case x of
-            [True] -> []
-            _ -> [False,False]
-    , \x -> case x of
-            [] -> [False]
-            _ -> [False,True]
-    , \x -> case x of
-            [] -> [True]
-            _ -> [False,True]
-    , \x -> case x of
-            [False] -> []
-            _ -> [False,True]
-    , \x -> case x of
-            [True] -> []
-            _ -> [False,True]
-    , \x -> case x of
-            [] -> [False]
-            _ -> [True,False]
-    , \x -> case x of
-            [] -> [True]
-            _ -> [True,False]
-    , \x -> case x of
-            [False] -> []
-            _ -> [True,False]
-    , \x -> case x of
-            [True] -> []
-            _ -> [True,False]
-    , \x -> case x of
-            [] -> [False]
-            _ -> [True,True]
-    , \x -> case x of
-            [] -> [True]
-            _ -> [True,True]
-    , \x -> case x of
-            [False] -> []
-            _ -> [True,True]
-    , \x -> case x of
-            [True] -> []
-            _ -> [True,True]
-    , \x -> case x of
-            [] -> []
-            _ -> [False,False,False]
-    , \x -> case x of
-            [] -> []
-            _ -> [False,False,True]
-    , \x -> case x of
-            [] -> []
-            _ -> [False,True,False]
-    , \x -> case x of
-            [] -> []
-            _ -> [False,True,True]
-    , \x -> case x of
-            [] -> []
-            _ -> [True,False,False]
-    , \x -> case x of
-            [] -> []
-            _ -> [True,False,True]
-    , \x -> case x of
-            [] -> []
-            _ -> [True,True,False]
-    , \x -> case x of
-            [] -> []
-            _ -> [True,True,True]
-    , \_ -> [False,False,False,False]
-    , \_ -> [False,False,False,True]
-    , \_ -> [False,False,True,False]
-    , \_ -> [False,False,True,True]
-    , \_ -> [False,True,False,False]
-    , \_ -> [False,True,False,True]
-    , \_ -> [False,True,True,False]
-    , \_ -> [False,True,True,True]
-    , \_ -> [True,False,False,False]
-    , \_ -> [True,False,False,True]
-    , \_ -> [True,False,True,False]
-    , \_ -> [True,False,True,True]
-    , \_ -> [True,True,False,False]
-    , \_ -> [True,True,False,True]
-    , \_ -> [True,True,True,False]
-    , \_ -> [True,True,True,True]
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-default-Int-Bool-Bool.out b/test/diff/tiers-default-Int-Bool-Bool.out
deleted file mode 100644
--- a/test/diff/tiers-default-Int-Bool-Bool.out
+++ /dev/null
@@ -1,1137 +0,0 @@
-map length (tiers :: [[ Int->Bool->Bool ]])  =  [4,12,12,48,48,84,...]
-
-length (list :: [ Int->Bool->Bool ])  =  Infinity
-
-allUnique (list :: [ Int->Bool->Bool ])  =  True
-
-ratioRepetitions (list :: [ Int->Bool->Bool ])  =  0 % 1
-
-tiers :: [Int->Bool->Bool]  =
-  [ [ \_ _ -> False
-    , \_ y -> case y of
-              False -> False
-              _ -> True
-    , \_ y -> case y of
-              False -> True
-              _ -> False
-    , \_ _ -> True
-    ]
-  , [ \x y -> case (x,y) of
-              (0,True) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              _ -> False
-    , \x _ -> case x of
-              0 -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (_,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (_,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (_,False) -> True
-              _ -> False
-    , \x _ -> case x of
-              0 -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,True) -> False
-              _ -> True
-    ]
-  , [ \x y -> case (x,y) of
-              (1,True) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (1,False) -> True
-              _ -> False
-    , \x _ -> case x of
-              1 -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,False) -> False
-              (0,_) -> True
-              (1,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (1,False) -> True
-              (1,_) -> False
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (_,True) -> True
-              (1,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (_,True) -> False
-              (1,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (1,False) -> False
-              (1,_) -> True
-              (_,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,False) -> True
-              (0,_) -> False
-              (1,_) -> True
-              _ -> False
-    , \x _ -> case x of
-              1 -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (1,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (1,True) -> False
-              _ -> True
-    ]
-  , [ \x y -> case (x,y) of
-              (0,True) -> True
-              (1,True) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,True) -> True
-              (1,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,True) -> True
-              (1,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (1,True) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (1,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (1,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (1,True) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (1,False) -> True
-              _ -> False
-    , \x _ -> case x of
-              0 -> True
-              1 -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (-1,True) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (-1,False) -> True
-              _ -> False
-    , \x _ -> case x of
-              -1 -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (_,False) -> False
-              (1,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (1,False) -> True
-              (1,_) -> False
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (1,_) -> True
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (1,_) -> False
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (1,False) -> True
-              (1,_) -> False
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (1,_) -> True
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (1,_) -> False
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (1,False) -> True
-              (1,_) -> False
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (1,_) -> True
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (_,False) -> False
-              (0,_) -> True
-              (1,_) -> True
-              (-1,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (1,False) -> False
-              (1,_) -> True
-              (-1,False) -> True
-              (-1,_) -> False
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (_,True) -> True
-              (1,_) -> False
-              (-1,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (1,_) -> False
-              (_,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (1,False) -> False
-              (1,_) -> True
-              (_,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (1,_) -> True
-              (_,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (1,_) -> False
-              (_,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (1,False) -> False
-              (1,_) -> True
-              (_,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (1,_) -> True
-              (_,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (1,_) -> False
-              (_,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (1,False) -> False
-              (1,_) -> True
-              (_,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (_,False) -> True
-              (1,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (_,True) -> False
-              (1,_) -> True
-              (-1,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (1,False) -> True
-              (1,_) -> False
-              (-1,False) -> False
-              (-1,_) -> True
-              (_,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,False) -> True
-              (0,_) -> False
-              (1,_) -> False
-              (-1,_) -> True
-              _ -> False
-    , \x _ -> case x of
-              0 -> False
-              1 -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (1,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (1,True) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (1,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (1,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (1,True) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,True) -> False
-              (1,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,True) -> False
-              (1,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,True) -> False
-              (1,True) -> False
-              _ -> True
-    , \x _ -> case x of
-              -1 -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (-1,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (-1,True) -> False
-              _ -> True
-    ]
-  , [ \x y -> case (x,y) of
-              (0,True) -> True
-              (-1,True) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,True) -> True
-              (-1,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,True) -> True
-              (-1,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (-1,True) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (-1,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (-1,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (-1,True) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (-1,False) -> True
-              _ -> False
-    , \x _ -> case x of
-              0 -> True
-              -1 -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (2,True) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (2,False) -> True
-              _ -> False
-    , \x _ -> case x of
-              2 -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (_,False) -> False
-              (1,_) -> True
-              (-1,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (1,False) -> False
-              (1,_) -> True
-              (-1,False) -> True
-              (-1,_) -> False
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (1,False) -> False
-              (1,_) -> True
-              (_,True) -> True
-              (-1,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (_,False) -> False
-              (1,_) -> True
-              (-1,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (1,False) -> False
-              (1,_) -> True
-              (-1,False) -> True
-              (-1,_) -> False
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (1,False) -> False
-              (1,_) -> True
-              (_,True) -> True
-              (-1,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (_,False) -> False
-              (1,_) -> True
-              (-1,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (1,False) -> False
-              (1,_) -> True
-              (-1,False) -> True
-              (-1,_) -> False
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (1,False) -> False
-              (1,_) -> True
-              (_,True) -> True
-              (-1,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,False) -> False
-              (0,_) -> True
-              (1,_) -> True
-              (-1,_) -> True
-              (2,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,True) -> True
-              (1,False) -> False
-              (1,True) -> True
-              (-1,False) -> False
-              (-1,True) -> True
-              (2,False) -> True
-              (2,True) -> False
-              ...
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (_,True) -> True
-              (1,_) -> False
-              (-1,_) -> False
-              (2,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (1,False) -> True
-              (1,_) -> False
-              (_,True) -> False
-              (-1,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (1,False) -> True
-              (1,_) -> False
-              (-1,False) -> False
-              (-1,_) -> True
-              (_,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (_,False) -> True
-              (1,_) -> False
-              (-1,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (1,False) -> True
-              (1,_) -> False
-              (_,True) -> False
-              (-1,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (1,False) -> True
-              (1,_) -> False
-              (-1,False) -> False
-              (-1,_) -> True
-              (_,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (_,False) -> True
-              (1,_) -> False
-              (-1,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (1,False) -> True
-              (1,_) -> False
-              (_,True) -> False
-              (-1,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (1,False) -> True
-              (1,_) -> False
-              (-1,False) -> False
-              (-1,_) -> True
-              (_,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (_,False) -> True
-              (1,_) -> False
-              (-1,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (_,True) -> False
-              (1,_) -> True
-              (-1,_) -> True
-              (2,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,True) -> False
-              (1,False) -> True
-              (1,True) -> False
-              (-1,False) -> True
-              (-1,True) -> False
-              (2,False) -> False
-              (2,True) -> True
-              ...
-    , \x y -> case (x,y) of
-              (_,False) -> True
-              (0,_) -> False
-              (1,_) -> False
-              (-1,_) -> False
-              (2,_) -> True
-              _ -> False
-    , \x _ -> case x of
-              0 -> False
-              -1 -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (-1,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (-1,True) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (-1,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (-1,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (-1,True) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,True) -> False
-              (-1,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,True) -> False
-              (-1,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,True) -> False
-              (-1,True) -> False
-              _ -> True
-    , \x _ -> case x of
-              2 -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (2,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (2,True) -> False
-              _ -> True
-    ]
-  , [ \x y -> case (x,y) of
-              (0,True) -> True
-              (2,True) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,True) -> True
-              (2,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,True) -> True
-              (2,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (2,True) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (2,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (2,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (2,True) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (2,False) -> True
-              _ -> False
-    , \x _ -> case x of
-              0 -> True
-              2 -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (1,True) -> True
-              (-1,True) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (1,True) -> True
-              (-1,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (1,True) -> True
-              (-1,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (1,False) -> True
-              (-1,True) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (1,False) -> True
-              (-1,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (1,False) -> True
-              (-1,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (1,_) -> True
-              (-1,True) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (1,_) -> True
-              (-1,False) -> True
-              _ -> False
-    , \x _ -> case x of
-              1 -> True
-              -1 -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (-2,True) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (-2,False) -> True
-              _ -> False
-    , \x _ -> case x of
-              -2 -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (_,False) -> False
-              (1,_) -> True
-              (-1,_) -> True
-              (2,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,True) -> False
-              (1,False) -> False
-              (1,True) -> True
-              (-1,False) -> False
-              (-1,True) -> True
-              (2,False) -> True
-              (2,True) -> False
-              ...
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (1,False) -> False
-              (1,_) -> True
-              (_,True) -> True
-              (-1,_) -> False
-              (2,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (_,False) -> False
-              (1,_) -> True
-              (-1,_) -> True
-              (2,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,True) -> False
-              (1,False) -> False
-              (1,True) -> True
-              (-1,False) -> False
-              (-1,True) -> True
-              (2,False) -> True
-              (2,True) -> False
-              ...
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (1,False) -> False
-              (1,_) -> True
-              (_,True) -> True
-              (-1,_) -> False
-              (2,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (_,False) -> False
-              (1,_) -> True
-              (-1,_) -> True
-              (2,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,True) -> True
-              (1,False) -> False
-              (1,True) -> True
-              (-1,False) -> False
-              (-1,True) -> True
-              (2,False) -> True
-              (2,True) -> False
-              ...
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (1,False) -> False
-              (1,_) -> True
-              (_,True) -> True
-              (-1,_) -> False
-              (2,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,False) -> False
-              (0,_) -> True
-              (1,_) -> False
-              (-1,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (1,_) -> False
-              (-1,False) -> True
-              (-1,_) -> False
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (1,_) -> False
-              (-1,_) -> True
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (1,False) -> True
-              (1,_) -> False
-              (-1,_) -> False
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (1,False) -> True
-              (1,_) -> False
-              (-1,False) -> True
-              (-1,_) -> False
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (1,False) -> True
-              (1,_) -> False
-              (-1,_) -> True
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (1,_) -> True
-              (-1,_) -> False
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (1,_) -> True
-              (-1,False) -> True
-              (-1,_) -> False
-              (_,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (_,True) -> True
-              (1,_) -> True
-              (-1,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,False) -> False
-              (0,_) -> True
-              (1,_) -> True
-              (-1,_) -> True
-              (2,_) -> True
-              (-2,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,True) -> True
-              (1,False) -> False
-              (1,True) -> True
-              (-1,False) -> False
-              (-1,True) -> True
-              (2,False) -> False
-              (2,True) -> True
-              ...
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (_,True) -> True
-              (1,_) -> False
-              (-1,_) -> False
-              (2,_) -> False
-              (-2,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (1,False) -> True
-              (1,_) -> False
-              (_,True) -> False
-              (-1,_) -> True
-              (2,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,True) -> False
-              (1,False) -> True
-              (1,True) -> False
-              (-1,False) -> True
-              (-1,True) -> False
-              (2,False) -> False
-              (2,True) -> True
-              ...
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (_,False) -> True
-              (1,_) -> False
-              (-1,_) -> False
-              (2,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (1,False) -> True
-              (1,_) -> False
-              (_,True) -> False
-              (-1,_) -> True
-              (2,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,True) -> True
-              (1,False) -> True
-              (1,True) -> False
-              (-1,False) -> True
-              (-1,True) -> False
-              (2,False) -> False
-              (2,True) -> True
-              ...
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (0,_) -> True
-              (_,False) -> True
-              (1,_) -> False
-              (-1,_) -> False
-              (2,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (1,False) -> True
-              (1,_) -> False
-              (_,True) -> False
-              (-1,_) -> True
-              (2,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,True) -> True
-              (1,False) -> True
-              (1,True) -> False
-              (-1,False) -> True
-              (-1,True) -> False
-              (2,False) -> False
-              (2,True) -> True
-              ...
-    , \x y -> case (x,y) of
-              (0,_) -> True
-              (_,False) -> True
-              (1,_) -> False
-              (-1,_) -> False
-              (2,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (_,True) -> False
-              (1,_) -> False
-              (-1,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (1,_) -> False
-              (-1,False) -> False
-              (-1,_) -> True
-              (_,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (1,_) -> False
-              (-1,_) -> True
-              (_,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (1,False) -> False
-              (1,_) -> True
-              (-1,_) -> False
-              (_,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (1,False) -> False
-              (1,_) -> True
-              (-1,False) -> False
-              (-1,_) -> True
-              (_,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (1,False) -> False
-              (1,_) -> True
-              (-1,_) -> True
-              (_,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (1,_) -> True
-              (-1,_) -> False
-              (_,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (1,_) -> True
-              (-1,False) -> False
-              (-1,_) -> True
-              (_,False) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (_,False) -> True
-              (0,_) -> False
-              (1,_) -> True
-              (-1,_) -> True
-              _ -> False
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,_) -> False
-              (_,True) -> False
-              (1,_) -> True
-              (-1,_) -> True
-              (2,_) -> True
-              (-2,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> True
-              (0,True) -> False
-              (1,False) -> True
-              (1,True) -> False
-              (-1,False) -> True
-              (-1,True) -> False
-              (2,False) -> True
-              (2,True) -> False
-              ...
-    , \x y -> case (x,y) of
-              (_,False) -> True
-              (0,_) -> False
-              (1,_) -> False
-              (-1,_) -> False
-              (2,_) -> False
-              (-2,_) -> True
-              _ -> False
-    , \x _ -> case x of
-              0 -> False
-              2 -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (2,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,_) -> False
-              (2,True) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (2,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (2,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,False) -> False
-              (2,True) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,True) -> False
-              (2,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,True) -> False
-              (2,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (0,True) -> False
-              (2,True) -> False
-              _ -> True
-    , \x _ -> case x of
-              1 -> False
-              -1 -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (1,_) -> False
-              (-1,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (1,_) -> False
-              (-1,True) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (1,False) -> False
-              (-1,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (1,False) -> False
-              (-1,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (1,False) -> False
-              (-1,True) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (1,True) -> False
-              (-1,_) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (1,True) -> False
-              (-1,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (1,True) -> False
-              (-1,True) -> False
-              _ -> True
-    , \x _ -> case x of
-              -2 -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (-2,False) -> False
-              _ -> True
-    , \x y -> case (x,y) of
-              (-2,True) -> False
-              _ -> True
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-default-Int-Int-Int-Int.out b/test/diff/tiers-default-Int-Int-Int-Int.out
deleted file mode 100644
--- a/test/diff/tiers-default-Int-Int-Int-Int.out
+++ /dev/null
@@ -1,116 +0,0 @@
-map length (tiers :: [[ Int->Int->Int->Int ]])  =  [1,1,7,25,...]
-
-length (list :: [ Int->Int->Int->Int ])  =  Infinity
-
-allUnique (list :: [ Int->Int->Int->Int ])  =  True
-
-ratioRepetitions (list :: [ Int->Int->Int->Int ])  =  0 % 1
-
-tiers :: [Int->Int->Int->Int]  =
-  [ [\_ _ _ -> 0]
-  , [\_ _ _ -> 1]
-  , [ \x _ _ -> case x of
-                0 -> 1
-                _ -> 0
-    , \x _ _ -> case x of
-                0 -> 0
-                _ -> 1
-    , \_ y _ -> case y of
-                0 -> 1
-                _ -> 0
-    , \_ y _ -> case y of
-                0 -> 0
-                _ -> 1
-    , \_ _ z -> case z of
-                0 -> 1
-                _ -> 0
-    , \_ _ z -> case z of
-                0 -> 0
-                _ -> 1
-    , \_ _ _ -> -1
-    ]
-  , [ \x y _ -> case (x,y) of
-                (0,0) -> 1
-                _ -> 0
-    , \x y _ -> case (x,y) of
-                (_,0) -> 0
-                (0,_) -> 1
-                _ -> 0
-    , \x _ z -> case (x,z) of
-                (0,0) -> 1
-                _ -> 0
-    , \x _ z -> case (x,z) of
-                (_,0) -> 0
-                (0,_) -> 1
-                _ -> 0
-    , \x _ _ -> case x of
-                0 -> -1
-                _ -> 0
-    , \x _ _ -> case x of
-                1 -> 1
-                _ -> 0
-    , \x _ _ -> case x of
-                1 -> 0
-                _ -> 1
-    , \x y _ -> case (x,y) of
-                (0,_) -> 0
-                (_,0) -> 1
-                _ -> 0
-    , \x y _ -> case (x,y) of
-                (0,_) -> 0
-                (_,0) -> 0
-                _ -> 1
-    , \x _ z -> case (x,z) of
-                (0,_) -> 0
-                (_,0) -> 1
-                _ -> 0
-    , \x _ z -> case (x,z) of
-                (0,_) -> 0
-                (_,0) -> 0
-                _ -> 1
-    , \x _ _ -> case x of
-                0 -> 0
-                _ -> -1
-    , \_ y z -> case (y,z) of
-                (0,0) -> 1
-                _ -> 0
-    , \_ y z -> case (y,z) of
-                (_,0) -> 0
-                (0,_) -> 1
-                _ -> 0
-    , \_ y _ -> case y of
-                0 -> -1
-                _ -> 0
-    , \_ y _ -> case y of
-                1 -> 1
-                _ -> 0
-    , \_ y _ -> case y of
-                1 -> 0
-                _ -> 1
-    , \_ y z -> case (y,z) of
-                (0,_) -> 0
-                (_,0) -> 1
-                _ -> 0
-    , \_ y z -> case (y,z) of
-                (0,_) -> 0
-                (_,0) -> 0
-                _ -> 1
-    , \_ y _ -> case y of
-                0 -> 0
-                _ -> -1
-    , \_ _ z -> case z of
-                0 -> -1
-                _ -> 0
-    , \_ _ z -> case z of
-                1 -> 1
-                _ -> 0
-    , \_ _ z -> case z of
-                1 -> 0
-                _ -> 1
-    , \_ _ z -> case z of
-                0 -> 0
-                _ -> -1
-    , \_ _ _ -> 2
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-default-Int-Int-Int.out b/test/diff/tiers-default-Int-Int-Int.out
deleted file mode 100644
--- a/test/diff/tiers-default-Int-Int-Int.out
+++ /dev/null
@@ -1,528 +0,0 @@
-map length (tiers :: [[ Int->Int->Int ]])  =  [1,1,5,13,35,81,...]
-
-length (list :: [ Int->Int->Int ])  =  Infinity
-
-allUnique (list :: [ Int->Int->Int ])  =  True
-
-ratioRepetitions (list :: [ Int->Int->Int ])  =  0 % 1
-
-tiers :: [Int->Int->Int]  =
-  [ [\_ _ -> 0]
-  , [\_ _ -> 1]
-  , [ \x _ -> case x of
-              0 -> 1
-              _ -> 0
-    , \x _ -> case x of
-              0 -> 0
-              _ -> 1
-    , \_ y -> case y of
-              0 -> 1
-              _ -> 0
-    , \_ y -> case y of
-              0 -> 0
-              _ -> 1
-    , \_ _ -> -1
-    ]
-  , [ \x y -> case (x,y) of
-              (0,0) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (_,0) -> 0
-              (0,_) -> 1
-              _ -> 0
-    , \x _ -> case x of
-              0 -> -1
-              _ -> 0
-    , \x _ -> case x of
-              1 -> 1
-              _ -> 0
-    , \x _ -> case x of
-              1 -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 0
-              _ -> 1
-    , \x _ -> case x of
-              0 -> 0
-              _ -> -1
-    , \_ y -> case y of
-              0 -> -1
-              _ -> 0
-    , \_ y -> case y of
-              1 -> 1
-              _ -> 0
-    , \_ y -> case y of
-              1 -> 0
-              _ -> 1
-    , \_ y -> case y of
-              0 -> 0
-              _ -> -1
-    , \_ _ -> 2
-    ]
-  , [ \x y -> case (x,y) of
-              (0,0) -> -1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,1) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,0) -> 1
-              (_,1) -> 0
-              (1,_) -> 0
-              (_,0) -> 0
-              (0,_) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (_,0) -> 0
-              (0,_) -> -1
-              _ -> 0
-    , \x _ -> case x of
-              0 -> 2
-              _ -> 0
-    , \x y -> case (x,y) of
-              (1,0) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 0
-              (1,_) -> 1
-              _ -> 0
-    , \x _ -> case x of
-              1 -> -1
-              _ -> 0
-    , \x _ -> case x of
-              -1 -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (_,0) -> 1
-              (0,_) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,0) -> 0
-              _ -> 1
-    , \x _ -> case x of
-              0 -> -1
-              _ -> 1
-    , \x _ -> case x of
-              0 -> 0
-              1 -> 0
-              _ -> 1
-    , \x _ -> case x of
-              -1 -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,_) -> 1
-              (_,0) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,0) -> 1
-              (0,_) -> 0
-              (_,1) -> 0
-              (1,_) -> 0
-              (_,0) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 1
-              (_,0) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (_,0) -> 0
-              (1,_) -> 0
-              _ -> 1
-    , \x _ -> case x of
-              0 -> 1
-              _ -> -1
-    , \x _ -> case x of
-              1 -> 0
-              _ -> -1
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> -1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 0
-              (_,1) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,1) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 0
-              _ -> -1
-    , \x _ -> case x of
-              0 -> 0
-              _ -> 2
-    , \_ y -> case y of
-              0 -> 2
-              _ -> 0
-    , \_ y -> case y of
-              1 -> -1
-              _ -> 0
-    , \_ y -> case y of
-              -1 -> 1
-              _ -> 0
-    , \_ y -> case y of
-              0 -> -1
-              _ -> 1
-    , \_ y -> case y of
-              0 -> 0
-              1 -> 0
-              _ -> 1
-    , \_ y -> case y of
-              -1 -> 0
-              _ -> 1
-    , \_ y -> case y of
-              0 -> 1
-              _ -> -1
-    , \_ y -> case y of
-              1 -> 0
-              _ -> -1
-    , \_ y -> case y of
-              0 -> 0
-              _ -> 2
-    , \_ _ -> -2
-    ]
-  , [ \x y -> case (x,y) of
-              (0,0) -> 2
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,1) -> -1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,-1) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,0) -> -1
-              (0,_) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (_,0) -> 0
-              (_,1) -> 0
-              (0,_) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,0) -> 1
-              (0,1) -> 1
-              (1,_) -> 0
-              (_,0) -> 0
-              (_,-1) -> 0
-              (0,_) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,0) -> 1
-              (0,_) -> -1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,0) -> -1
-              (_,1) -> 0
-              (1,_) -> 0
-              (_,0) -> 0
-              (0,_) -> -1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (_,0) -> 0
-              (0,_) -> 2
-              _ -> 0
-    , \x _ -> case x of
-              0 -> -2
-              _ -> 0
-    , \x y -> case (x,y) of
-              (1,0) -> -1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (1,1) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (1,0) -> 1
-              (_,1) -> 0
-              (-1,_) -> 0
-              (_,0) -> 0
-              (1,_) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 0
-              (1,_) -> -1
-              _ -> 0
-    , \x _ -> case x of
-              1 -> 2
-              _ -> 0
-    , \x _ -> case x of
-              0 -> 1
-              1 -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (-1,0) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 0
-              (1,_) -> 0
-              (-1,_) -> 1
-              _ -> 0
-    , \x _ -> case x of
-              -1 -> -1
-              _ -> 0
-    , \x _ -> case x of
-              2 -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,0) -> -1
-              (0,_) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,0) -> 0
-              (_,1) -> 1
-              (1,_) -> 1
-              (_,0) -> 1
-              (0,_) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,1) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,0) -> 0
-              (0,_) -> -1
-              _ -> 1
-    , \x _ -> case x of
-              0 -> 2
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,_) -> 1
-              (_,0) -> 1
-              (1,_) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (1,0) -> 0
-              _ -> 1
-    , \x _ -> case x of
-              1 -> -1
-              _ -> 1
-    , \x _ -> case x of
-              0 -> 0
-              -1 -> 0
-              _ -> 1
-    , \x _ -> case x of
-              2 -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,0) -> 0
-              (0,_) -> 1
-              (_,0) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> -1
-              (_,0) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (_,0) -> 1
-              (1,_) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (1,_) -> 0
-              (_,0) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,0) -> 1
-              (0,1) -> 0
-              (1,0) -> 1
-              (0,-1) -> 0
-              (1,1) -> 0
-              (-1,0) -> 0
-              (0,2) -> 0
-              (1,-1) -> 0
-              ...
-    , \x y -> case (x,y) of
-              (0,0) -> 1
-              (0,_) -> 0
-              (_,0) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,_) -> -1
-              (_,0) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,0) -> 0
-              (0,_) -> 1
-              (_,1) -> 1
-              (1,_) -> 1
-              (_,0) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 0
-              (1,_) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (_,0) -> 0
-              (-1,_) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,0) -> 1
-              (0,_) -> 0
-              _ -> -1
-    , \x y -> case (x,y) of
-              (0,0) -> 0
-              (0,_) -> 1
-              _ -> -1
-    , \x _ -> case x of
-              1 -> 1
-              _ -> -1
-    , \x _ -> case x of
-              0 -> 0
-              1 -> 0
-              _ -> -1
-    , \x _ -> case x of
-              -1 -> 0
-              _ -> -1
-    , \x y -> case (x,y) of
-              (0,_) -> 1
-              (_,0) -> -1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,0) -> -1
-              (0,_) -> 0
-              (_,1) -> 0
-              (1,_) -> 0
-              (_,0) -> -1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 1
-              (_,1) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (_,0) -> 0
-              (0,1) -> 1
-              (0,_) -> 0
-              (_,-1) -> 0
-              (1,_) -> 0
-              (_,1) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 1
-              (_,0) -> 1
-              (_,1) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (_,1) -> 0
-              (1,_) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,_) -> 1
-              (_,0) -> 0
-              _ -> -1
-    , \x y -> case (x,y) of
-              (_,0) -> 0
-              (1,_) -> 0
-              _ -> -1
-    , \x _ -> case x of
-              0 -> 1
-              _ -> 2
-    , \x _ -> case x of
-              1 -> 0
-              _ -> 2
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 2
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 0
-              (_,1) -> -1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 0
-              (_,1) -> 0
-              (_,-1) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> -1
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 0
-              (_,1) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,-1) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 1
-              _ -> -1
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,1) -> 0
-              _ -> -1
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 0
-              _ -> 2
-    , \x _ -> case x of
-              0 -> 0
-              _ -> -2
-    , \_ y -> case y of
-              0 -> -2
-              _ -> 0
-    , \_ y -> case y of
-              1 -> 2
-              _ -> 0
-    , \_ y -> case y of
-              0 -> 1
-              1 -> 1
-              _ -> 0
-    , \_ y -> case y of
-              -1 -> -1
-              _ -> 0
-    , \_ y -> case y of
-              2 -> 1
-              _ -> 0
-    , \_ y -> case y of
-              0 -> 2
-              _ -> 1
-    , \_ y -> case y of
-              1 -> -1
-              _ -> 1
-    , \_ y -> case y of
-              0 -> 0
-              -1 -> 0
-              _ -> 1
-    , \_ y -> case y of
-              2 -> 0
-              _ -> 1
-    , \_ y -> case y of
-              1 -> 1
-              _ -> -1
-    , \_ y -> case y of
-              0 -> 0
-              1 -> 0
-              _ -> -1
-    , \_ y -> case y of
-              -1 -> 0
-              _ -> -1
-    , \_ y -> case y of
-              0 -> 1
-              _ -> 2
-    , \_ y -> case y of
-              1 -> 0
-              _ -> 2
-    , \_ y -> case y of
-              0 -> 0
-              _ -> -2
-    , \_ _ -> 3
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-default-Int-Int.out b/test/diff/tiers-default-Int-Int.out
deleted file mode 100644
--- a/test/diff/tiers-default-Int-Int.out
+++ /dev/null
@@ -1,670 +0,0 @@
-map length (tiers :: [[ Int->Int ]])  =  [1,1,3,5,10,16,30,48,80,...]
-
-length (list :: [ Int->Int ])  =  Infinity
-
-allUnique (list :: [ Int->Int ])  =  True
-
-ratioRepetitions (list :: [ Int->Int ])  =  0 % 1
-
-tiers :: [Int->Int]  =
-  [ [\_ -> 0]
-  , [\_ -> 1]
-  , [ \x -> case x of
-            0 -> 1
-            _ -> 0
-    , \x -> case x of
-            0 -> 0
-            _ -> 1
-    , \_ -> -1
-    ]
-  , [ \x -> case x of
-            0 -> -1
-            _ -> 0
-    , \x -> case x of
-            1 -> 1
-            _ -> 0
-    , \x -> case x of
-            1 -> 0
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            _ -> -1
-    , \_ -> 2
-    ]
-  , [ \x -> case x of
-            0 -> 2
-            _ -> 0
-    , \x -> case x of
-            1 -> -1
-            _ -> 0
-    , \x -> case x of
-            -1 -> 1
-            _ -> 0
-    , \x -> case x of
-            0 -> -1
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            1 -> 0
-            _ -> 1
-    , \x -> case x of
-            -1 -> 0
-            _ -> 1
-    , \x -> case x of
-            0 -> 1
-            _ -> -1
-    , \x -> case x of
-            1 -> 0
-            _ -> -1
-    , \x -> case x of
-            0 -> 0
-            _ -> 2
-    , \_ -> -2
-    ]
-  , [ \x -> case x of
-            0 -> -2
-            _ -> 0
-    , \x -> case x of
-            1 -> 2
-            _ -> 0
-    , \x -> case x of
-            0 -> 1
-            1 -> 1
-            _ -> 0
-    , \x -> case x of
-            -1 -> -1
-            _ -> 0
-    , \x -> case x of
-            2 -> 1
-            _ -> 0
-    , \x -> case x of
-            0 -> 2
-            _ -> 1
-    , \x -> case x of
-            1 -> -1
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            -1 -> 0
-            _ -> 1
-    , \x -> case x of
-            2 -> 0
-            _ -> 1
-    , \x -> case x of
-            1 -> 1
-            _ -> -1
-    , \x -> case x of
-            0 -> 0
-            1 -> 0
-            _ -> -1
-    , \x -> case x of
-            -1 -> 0
-            _ -> -1
-    , \x -> case x of
-            0 -> 1
-            _ -> 2
-    , \x -> case x of
-            1 -> 0
-            _ -> 2
-    , \x -> case x of
-            0 -> 0
-            _ -> -2
-    , \_ -> 3
-    ]
-  , [ \x -> case x of
-            0 -> 3
-            _ -> 0
-    , \x -> case x of
-            1 -> -2
-            _ -> 0
-    , \x -> case x of
-            0 -> 1
-            1 -> -1
-            _ -> 0
-    , \x -> case x of
-            0 -> -1
-            1 -> 1
-            _ -> 0
-    , \x -> case x of
-            -1 -> 2
-            _ -> 0
-    , \x -> case x of
-            0 -> 1
-            -1 -> 1
-            _ -> 0
-    , \x -> case x of
-            2 -> -1
-            _ -> 0
-    , \x -> case x of
-            -2 -> 1
-            _ -> 0
-    , \x -> case x of
-            0 -> -2
-            _ -> 1
-    , \x -> case x of
-            1 -> 2
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            1 -> -1
-            _ -> 1
-    , \x -> case x of
-            0 -> -1
-            1 -> 0
-            _ -> 1
-    , \x -> case x of
-            -1 -> -1
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            2 -> 0
-            _ -> 1
-    , \x -> case x of
-            1 -> 0
-            -1 -> 0
-            _ -> 1
-    , \x -> case x of
-            -2 -> 0
-            _ -> 1
-    , \x -> case x of
-            0 -> 2
-            _ -> -1
-    , \x -> case x of
-            0 -> 0
-            1 -> 1
-            _ -> -1
-    , \x -> case x of
-            0 -> 1
-            1 -> 0
-            _ -> -1
-    , \x -> case x of
-            -1 -> 1
-            _ -> -1
-    , \x -> case x of
-            0 -> 0
-            -1 -> 0
-            _ -> -1
-    , \x -> case x of
-            2 -> 0
-            _ -> -1
-    , \x -> case x of
-            0 -> -1
-            _ -> 2
-    , \x -> case x of
-            1 -> 1
-            _ -> 2
-    , \x -> case x of
-            0 -> 0
-            1 -> 0
-            _ -> 2
-    , \x -> case x of
-            -1 -> 0
-            _ -> 2
-    , \x -> case x of
-            0 -> 1
-            _ -> -2
-    , \x -> case x of
-            1 -> 0
-            _ -> -2
-    , \x -> case x of
-            0 -> 0
-            _ -> 3
-    , \_ -> -3
-    ]
-  , [ \x -> case x of
-            0 -> -3
-            _ -> 0
-    , \x -> case x of
-            1 -> 3
-            _ -> 0
-    , \x -> case x of
-            0 -> 1
-            1 -> 2
-            _ -> 0
-    , \x -> case x of
-            0 -> -1
-            1 -> -1
-            _ -> 0
-    , \x -> case x of
-            0 -> 2
-            1 -> 1
-            _ -> 0
-    , \x -> case x of
-            -1 -> -2
-            _ -> 0
-    , \x -> case x of
-            0 -> 1
-            -1 -> -1
-            _ -> 0
-    , \x -> case x of
-            0 -> -1
-            -1 -> 1
-            _ -> 0
-    , \x -> case x of
-            2 -> 2
-            _ -> 0
-    , \x -> case x of
-            0 -> 1
-            2 -> 1
-            _ -> 0
-    , \x -> case x of
-            1 -> 1
-            -1 -> 1
-            _ -> 0
-    , \x -> case x of
-            -2 -> -1
-            _ -> 0
-    , \x -> case x of
-            3 -> 1
-            _ -> 0
-    , \x -> case x of
-            0 -> 3
-            _ -> 1
-    , \x -> case x of
-            1 -> -2
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            1 -> 2
-            _ -> 1
-    , \x -> case x of
-            0 -> 2
-            1 -> 0
-            _ -> 1
-    , \x -> case x of
-            -1 -> 2
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            -1 -> -1
-            _ -> 1
-    , \x -> case x of
-            0 -> -1
-            -1 -> 0
-            _ -> 1
-    , \x -> case x of
-            2 -> -1
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            1 -> 0
-            -1 -> 0
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            -2 -> 0
-            _ -> 1
-    , \x -> case x of
-            1 -> 0
-            2 -> 0
-            _ -> 1
-    , \x -> case x of
-            3 -> 0
-            _ -> 1
-    , \x -> case x of
-            0 -> -2
-            _ -> -1
-    , \x -> case x of
-            1 -> 2
-            _ -> -1
-    , \x -> case x of
-            0 -> 1
-            1 -> 1
-            _ -> -1
-    , \x -> case x of
-            0 -> 0
-            -1 -> 1
-            _ -> -1
-    , \x -> case x of
-            0 -> 1
-            -1 -> 0
-            _ -> -1
-    , \x -> case x of
-            2 -> 1
-            _ -> -1
-    , \x -> case x of
-            0 -> 0
-            2 -> 0
-            _ -> -1
-    , \x -> case x of
-            1 -> 0
-            -1 -> 0
-            _ -> -1
-    , \x -> case x of
-            -2 -> 0
-            _ -> -1
-    , \x -> case x of
-            1 -> -1
-            _ -> 2
-    , \x -> case x of
-            0 -> 0
-            1 -> 1
-            _ -> 2
-    , \x -> case x of
-            0 -> 1
-            1 -> 0
-            _ -> 2
-    , \x -> case x of
-            -1 -> 1
-            _ -> 2
-    , \x -> case x of
-            0 -> 0
-            -1 -> 0
-            _ -> 2
-    , \x -> case x of
-            2 -> 0
-            _ -> 2
-    , \x -> case x of
-            0 -> -1
-            _ -> -2
-    , \x -> case x of
-            1 -> 1
-            _ -> -2
-    , \x -> case x of
-            0 -> 0
-            1 -> 0
-            _ -> -2
-    , \x -> case x of
-            -1 -> 0
-            _ -> -2
-    , \x -> case x of
-            0 -> 1
-            _ -> 3
-    , \x -> case x of
-            1 -> 0
-            _ -> 3
-    , \x -> case x of
-            0 -> 0
-            _ -> -3
-    , \_ -> 4
-    ]
-  , [ \x -> case x of
-            0 -> 4
-            _ -> 0
-    , \x -> case x of
-            1 -> -3
-            _ -> 0
-    , \x -> case x of
-            0 -> 1
-            1 -> -2
-            _ -> 0
-    , \x -> case x of
-            0 -> -1
-            1 -> 2
-            _ -> 0
-    , \x -> case x of
-            0 -> 2
-            1 -> -1
-            _ -> 0
-    , \x -> case x of
-            0 -> -2
-            1 -> 1
-            _ -> 0
-    , \x -> case x of
-            -1 -> 3
-            _ -> 0
-    , \x -> case x of
-            0 -> 1
-            -1 -> 2
-            _ -> 0
-    , \x -> case x of
-            0 -> -1
-            -1 -> -1
-            _ -> 0
-    , \x -> case x of
-            0 -> 2
-            -1 -> 1
-            _ -> 0
-    , \x -> case x of
-            2 -> -2
-            _ -> 0
-    , \x -> case x of
-            0 -> 1
-            2 -> -1
-            _ -> 0
-    , \x -> case x of
-            0 -> -1
-            2 -> 1
-            _ -> 0
-    , \x -> case x of
-            1 -> 1
-            -1 -> -1
-            _ -> 0
-    , \x -> case x of
-            1 -> -1
-            -1 -> 1
-            _ -> 0
-    , \x -> case x of
-            -2 -> 2
-            _ -> 0
-    , \x -> case x of
-            0 -> 1
-            -2 -> 1
-            _ -> 0
-    , \x -> case x of
-            1 -> 1
-            2 -> 1
-            _ -> 0
-    , \x -> case x of
-            3 -> -1
-            _ -> 0
-    , \x -> case x of
-            -3 -> 1
-            _ -> 0
-    , \x -> case x of
-            0 -> -3
-            _ -> 1
-    , \x -> case x of
-            1 -> 3
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            1 -> -2
-            _ -> 1
-    , \x -> case x of
-            0 -> -1
-            1 -> -1
-            _ -> 1
-    , \x -> case x of
-            0 -> -2
-            1 -> 0
-            _ -> 1
-    , \x -> case x of
-            -1 -> -2
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            -1 -> 2
-            _ -> 1
-    , \x -> case x of
-            0 -> 2
-            -1 -> 0
-            _ -> 1
-    , \x -> case x of
-            2 -> 2
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            2 -> -1
-            _ -> 1
-    , \x -> case x of
-            0 -> -1
-            2 -> 0
-            _ -> 1
-    , \x -> case x of
-            1 -> 0
-            -1 -> -1
-            _ -> 1
-    , \x -> case x of
-            1 -> -1
-            -1 -> 0
-            _ -> 1
-    , \x -> case x of
-            -2 -> -1
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            1 -> 0
-            2 -> 0
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            3 -> 0
-            _ -> 1
-    , \x -> case x of
-            1 -> 0
-            -2 -> 0
-            _ -> 1
-    , \x -> case x of
-            -1 -> 0
-            2 -> 0
-            _ -> 1
-    , \x -> case x of
-            -3 -> 0
-            _ -> 1
-    , \x -> case x of
-            0 -> 3
-            _ -> -1
-    , \x -> case x of
-            1 -> -2
-            _ -> -1
-    , \x -> case x of
-            0 -> 0
-            1 -> 2
-            _ -> -1
-    , \x -> case x of
-            0 -> 2
-            1 -> 0
-            _ -> -1
-    , \x -> case x of
-            -1 -> 2
-            _ -> -1
-    , \x -> case x of
-            0 -> 1
-            -1 -> 1
-            _ -> -1
-    , \x -> case x of
-            0 -> 0
-            2 -> 1
-            _ -> -1
-    , \x -> case x of
-            0 -> 1
-            2 -> 0
-            _ -> -1
-    , \x -> case x of
-            1 -> 0
-            -1 -> 1
-            _ -> -1
-    , \x -> case x of
-            1 -> 1
-            -1 -> 0
-            _ -> -1
-    , \x -> case x of
-            -2 -> 1
-            _ -> -1
-    , \x -> case x of
-            0 -> 0
-            1 -> 0
-            -1 -> 0
-            _ -> -1
-    , \x -> case x of
-            0 -> 0
-            -2 -> 0
-            _ -> -1
-    , \x -> case x of
-            1 -> 0
-            2 -> 0
-            _ -> -1
-    , \x -> case x of
-            3 -> 0
-            _ -> -1
-    , \x -> case x of
-            0 -> -2
-            _ -> 2
-    , \x -> case x of
-            0 -> 0
-            1 -> -1
-            _ -> 2
-    , \x -> case x of
-            0 -> 1
-            1 -> 1
-            _ -> 2
-    , \x -> case x of
-            0 -> -1
-            1 -> 0
-            _ -> 2
-    , \x -> case x of
-            -1 -> -1
-            _ -> 2
-    , \x -> case x of
-            0 -> 0
-            -1 -> 1
-            _ -> 2
-    , \x -> case x of
-            0 -> 1
-            -1 -> 0
-            _ -> 2
-    , \x -> case x of
-            2 -> 1
-            _ -> 2
-    , \x -> case x of
-            0 -> 0
-            2 -> 0
-            _ -> 2
-    , \x -> case x of
-            1 -> 0
-            -1 -> 0
-            _ -> 2
-    , \x -> case x of
-            -2 -> 0
-            _ -> 2
-    , \x -> case x of
-            0 -> 2
-            _ -> -2
-    , \x -> case x of
-            1 -> -1
-            _ -> -2
-    , \x -> case x of
-            0 -> 0
-            1 -> 1
-            _ -> -2
-    , \x -> case x of
-            0 -> 1
-            1 -> 0
-            _ -> -2
-    , \x -> case x of
-            -1 -> 1
-            _ -> -2
-    , \x -> case x of
-            0 -> 0
-            -1 -> 0
-            _ -> -2
-    , \x -> case x of
-            2 -> 0
-            _ -> -2
-    , \x -> case x of
-            0 -> -1
-            _ -> 3
-    , \x -> case x of
-            1 -> 1
-            _ -> 3
-    , \x -> case x of
-            0 -> 0
-            1 -> 0
-            _ -> 3
-    , \x -> case x of
-            -1 -> 0
-            _ -> 3
-    , \x -> case x of
-            0 -> 1
-            _ -> -3
-    , \x -> case x of
-            1 -> 0
-            _ -> -3
-    , \x -> case x of
-            0 -> 0
-            _ -> 4
-    , \_ -> -4
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-default-Ints-Ints.out b/test/diff/tiers-default-Ints-Ints.out
deleted file mode 100644
--- a/test/diff/tiers-default-Ints-Ints.out
+++ /dev/null
@@ -1,317 +0,0 @@
-map length (tiers :: [[ [Int]->[Int] ]])  =  [1,1,4,10,29,75,...]
-
-length (list :: [ [Int]->[Int] ])  =  Infinity
-
-allUnique (list :: [ [Int]->[Int] ])  =  True
-
-ratioRepetitions (list :: [ [Int]->[Int] ])  =  0 % 1
-
-tiers :: [[Int]->[Int]]  =
-  [ [\_ -> []]
-  , [\_ -> [0]]
-  , [ \x -> case x of
-            [] -> [0]
-            _ -> []
-    , \x -> case x of
-            [] -> []
-            _ -> [0]
-    , \_ -> [0,0]
-    , \_ -> [1]
-    ]
-  , [ \x -> case x of
-            [] -> [0,0]
-            _ -> []
-    , \x -> case x of
-            [] -> [1]
-            _ -> []
-    , \x -> case x of
-            [0] -> [0]
-            _ -> []
-    , \x -> case x of
-            [0] -> []
-            _ -> [0]
-    , \x -> case x of
-            [] -> []
-            _ -> [0,0]
-    , \x -> case x of
-            [] -> []
-            _ -> [1]
-    , \_ -> [0,0,0]
-    , \_ -> [0,1]
-    , \_ -> [1,0]
-    , \_ -> [-1]
-    ]
-  , [ \x -> case x of
-            [] -> [0,0,0]
-            _ -> []
-    , \x -> case x of
-            [] -> [0,1]
-            _ -> []
-    , \x -> case x of
-            [] -> [1,0]
-            _ -> []
-    , \x -> case x of
-            [] -> [-1]
-            _ -> []
-    , \x -> case x of
-            [0] -> [0,0]
-            _ -> []
-    , \x -> case x of
-            [0] -> [1]
-            _ -> []
-    , \x -> case x of
-            [0,0] -> [0]
-            _ -> []
-    , \x -> case x of
-            [1] -> [0]
-            _ -> []
-    , \x -> case x of
-            [] -> [0,0]
-            _ -> [0]
-    , \x -> case x of
-            [] -> [1]
-            _ -> [0]
-    , \x -> case x of
-            [] -> []
-            [0] -> []
-            _ -> [0]
-    , \x -> case x of
-            [0,0] -> []
-            _ -> [0]
-    , \x -> case x of
-            [1] -> []
-            _ -> [0]
-    , \x -> case x of
-            [] -> [0]
-            _ -> [0,0]
-    , \x -> case x of
-            [0] -> []
-            _ -> [0,0]
-    , \x -> case x of
-            [] -> [0]
-            _ -> [1]
-    , \x -> case x of
-            [0] -> []
-            _ -> [1]
-    , \x -> case x of
-            [] -> []
-            _ -> [0,0,0]
-    , \x -> case x of
-            [] -> []
-            _ -> [0,1]
-    , \x -> case x of
-            [] -> []
-            _ -> [1,0]
-    , \x -> case x of
-            [] -> []
-            _ -> [-1]
-    , \_ -> [0,0,0,0]
-    , \_ -> [0,0,1]
-    , \_ -> [0,1,0]
-    , \_ -> [0,-1]
-    , \_ -> [1,0,0]
-    , \_ -> [1,1]
-    , \_ -> [-1,0]
-    , \_ -> [2]
-    ]
-  , [ \x -> case x of
-            [] -> [0,0,0,0]
-            _ -> []
-    , \x -> case x of
-            [] -> [0,0,1]
-            _ -> []
-    , \x -> case x of
-            [] -> [0,1,0]
-            _ -> []
-    , \x -> case x of
-            [] -> [0,-1]
-            _ -> []
-    , \x -> case x of
-            [] -> [1,0,0]
-            _ -> []
-    , \x -> case x of
-            [] -> [1,1]
-            _ -> []
-    , \x -> case x of
-            [] -> [-1,0]
-            _ -> []
-    , \x -> case x of
-            [] -> [2]
-            _ -> []
-    , \x -> case x of
-            [0] -> [0,0,0]
-            _ -> []
-    , \x -> case x of
-            [0] -> [0,1]
-            _ -> []
-    , \x -> case x of
-            [0] -> [1,0]
-            _ -> []
-    , \x -> case x of
-            [0] -> [-1]
-            _ -> []
-    , \x -> case x of
-            [] -> [0]
-            [0] -> [0]
-            _ -> []
-    , \x -> case x of
-            [0,0] -> [0,0]
-            _ -> []
-    , \x -> case x of
-            [0,0] -> [1]
-            _ -> []
-    , \x -> case x of
-            [1] -> [0,0]
-            _ -> []
-    , \x -> case x of
-            [1] -> [1]
-            _ -> []
-    , \x -> case x of
-            [0,0,0] -> [0]
-            _ -> []
-    , \x -> case x of
-            [0,1] -> [0]
-            _ -> []
-    , \x -> case x of
-            [1,0] -> [0]
-            _ -> []
-    , \x -> case x of
-            [-1] -> [0]
-            _ -> []
-    , \x -> case x of
-            [] -> [0,0,0]
-            _ -> [0]
-    , \x -> case x of
-            [] -> [0,1]
-            _ -> [0]
-    , \x -> case x of
-            [] -> [1,0]
-            _ -> [0]
-    , \x -> case x of
-            [] -> [-1]
-            _ -> [0]
-    , \x -> case x of
-            [0] -> [0,0]
-            _ -> [0]
-    , \x -> case x of
-            [0] -> [1]
-            _ -> [0]
-    , \x -> case x of
-            [] -> []
-            [0,0] -> []
-            _ -> [0]
-    , \x -> case x of
-            [] -> []
-            [1] -> []
-            _ -> [0]
-    , \x -> case x of
-            [0,0,0] -> []
-            _ -> [0]
-    , \x -> case x of
-            [0,1] -> []
-            _ -> [0]
-    , \x -> case x of
-            [1,0] -> []
-            _ -> [0]
-    , \x -> case x of
-            [-1] -> []
-            _ -> [0]
-    , \x -> case x of
-            [] -> [1]
-            _ -> [0,0]
-    , \x -> case x of
-            [0] -> [0]
-            _ -> [0,0]
-    , \x -> case x of
-            [] -> []
-            [0] -> []
-            _ -> [0,0]
-    , \x -> case x of
-            [0,0] -> []
-            _ -> [0,0]
-    , \x -> case x of
-            [1] -> []
-            _ -> [0,0]
-    , \x -> case x of
-            [] -> [0,0]
-            _ -> [1]
-    , \x -> case x of
-            [0] -> [0]
-            _ -> [1]
-    , \x -> case x of
-            [] -> []
-            [0] -> []
-            _ -> [1]
-    , \x -> case x of
-            [0,0] -> []
-            _ -> [1]
-    , \x -> case x of
-            [1] -> []
-            _ -> [1]
-    , \x -> case x of
-            [] -> [0]
-            _ -> [0,0,0]
-    , \x -> case x of
-            [0] -> []
-            _ -> [0,0,0]
-    , \x -> case x of
-            [] -> [0]
-            _ -> [0,1]
-    , \x -> case x of
-            [0] -> []
-            _ -> [0,1]
-    , \x -> case x of
-            [] -> [0]
-            _ -> [1,0]
-    , \x -> case x of
-            [0] -> []
-            _ -> [1,0]
-    , \x -> case x of
-            [] -> [0]
-            _ -> [-1]
-    , \x -> case x of
-            [0] -> []
-            _ -> [-1]
-    , \x -> case x of
-            [] -> []
-            _ -> [0,0,0,0]
-    , \x -> case x of
-            [] -> []
-            _ -> [0,0,1]
-    , \x -> case x of
-            [] -> []
-            _ -> [0,1,0]
-    , \x -> case x of
-            [] -> []
-            _ -> [0,-1]
-    , \x -> case x of
-            [] -> []
-            _ -> [1,0,0]
-    , \x -> case x of
-            [] -> []
-            _ -> [1,1]
-    , \x -> case x of
-            [] -> []
-            _ -> [-1,0]
-    , \x -> case x of
-            [] -> []
-            _ -> [2]
-    , \_ -> [0,0,0,0,0]
-    , \_ -> [0,0,0,1]
-    , \_ -> [0,0,1,0]
-    , \_ -> [0,0,-1]
-    , \_ -> [0,1,0,0]
-    , \_ -> [0,1,1]
-    , \_ -> [0,-1,0]
-    , \_ -> [0,2]
-    , \_ -> [1,0,0,0]
-    , \_ -> [1,0,1]
-    , \_ -> [1,1,0]
-    , \_ -> [1,-1]
-    , \_ -> [-1,0,0]
-    , \_ -> [-1,1]
-    , \_ -> [2,0]
-    , \_ -> [-2]
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-default-MBool-Bool.out b/test/diff/tiers-default-MBool-Bool.out
deleted file mode 100644
--- a/test/diff/tiers-default-MBool-Bool.out
+++ /dev/null
@@ -1,31 +0,0 @@
-map length (tiers :: [[ Maybe Bool->Bool ]])  =  [8]
-
-length (list :: [ Maybe Bool->Bool ])  =  8
-
-allUnique (list :: [ Maybe Bool->Bool ])  =  True
-
-ratioRepetitions (list :: [ Maybe Bool->Bool ])  =  0 % 1
-
-tiers :: [Maybe Bool->Bool]  =
-  [ [ \_ -> False
-    , \x -> case x of
-            Just True -> True
-            _ -> False
-    , \x -> case x of
-            Just False -> True
-            _ -> False
-    , \x -> case x of
-            Nothing -> False
-            _ -> True
-    , \x -> case x of
-            Nothing -> True
-            _ -> False
-    , \x -> case x of
-            Just False -> False
-            _ -> True
-    , \x -> case x of
-            Just True -> False
-            _ -> True
-    , \_ -> True
-    ]
-  ]
diff --git a/test/diff/tiers-default-MBool-MBool.out b/test/diff/tiers-default-MBool-MBool.out
deleted file mode 100644
--- a/test/diff/tiers-default-MBool-MBool.out
+++ /dev/null
@@ -1,94 +0,0 @@
-map length (tiers :: [[ Maybe Bool->Maybe Bool ]])  =  [1,6,12,8]
-
-length (list :: [ Maybe Bool->Maybe Bool ])  =  Infinity
-
-allUnique (list :: [ Maybe Bool->Maybe Bool ])  =  True
-
-ratioRepetitions (list :: [ Maybe Bool->Maybe Bool ])  =  0 % 1
-
-tiers :: [Maybe Bool->Maybe Bool]  =
-  [ [\_ -> Nothing]
-  , [ \x -> case x of
-            Just True -> Just False
-            _ -> Nothing
-    , \x -> case x of
-            Just True -> Just True
-            _ -> Nothing
-    , \x -> case x of
-            Just False -> Just False
-            _ -> Nothing
-    , \x -> case x of
-            Just False -> Just True
-            _ -> Nothing
-    , \x -> case x of
-            Nothing -> Just False
-            _ -> Nothing
-    , \x -> case x of
-            Nothing -> Just True
-            _ -> Nothing
-    ]
-  , [ \x -> case x of
-            Nothing -> Nothing
-            _ -> Just False
-    , \x -> case x of
-            Nothing -> Nothing
-            Just False -> Just False
-            Just True -> Just True
-    , \x -> case x of
-            Nothing -> Nothing
-            Just False -> Just True
-            Just True -> Just False
-    , \x -> case x of
-            Nothing -> Nothing
-            _ -> Just True
-    , \x -> case x of
-            Just False -> Nothing
-            _ -> Just False
-    , \x -> case x of
-            Nothing -> Just False
-            Just False -> Nothing
-            Just True -> Just True
-    , \x -> case x of
-            Just True -> Nothing
-            _ -> Just False
-    , \x -> case x of
-            Nothing -> Just False
-            Just False -> Just True
-            Just True -> Nothing
-    , \x -> case x of
-            Nothing -> Just True
-            Just False -> Nothing
-            Just True -> Just False
-    , \x -> case x of
-            Just False -> Nothing
-            _ -> Just True
-    , \x -> case x of
-            Nothing -> Just True
-            Just False -> Just False
-            Just True -> Nothing
-    , \x -> case x of
-            Just True -> Nothing
-            _ -> Just True
-    ]
-  , [ \_ -> Just False
-    , \x -> case x of
-            Just True -> Just True
-            _ -> Just False
-    , \x -> case x of
-            Just False -> Just True
-            _ -> Just False
-    , \x -> case x of
-            Nothing -> Just False
-            _ -> Just True
-    , \x -> case x of
-            Nothing -> Just True
-            _ -> Just False
-    , \x -> case x of
-            Just False -> Just False
-            _ -> Just True
-    , \x -> case x of
-            Just True -> Just False
-            _ -> Just True
-    , \_ -> Just True
-    ]
-  ]
diff --git a/test/diff/tiers-default-Nat,Nat-Nat.out b/test/diff/tiers-default-Nat,Nat-Nat.out
deleted file mode 100644
--- a/test/diff/tiers-default-Nat,Nat-Nat.out
+++ /dev/null
@@ -1,205 +0,0 @@
-map length (tiers :: [[ (Nat,Nat)->Nat ]])  =  [1,1,3,7,17,35,...]
-
-length (list :: [ (Nat,Nat)->Nat ])  =  Infinity
-
-allUnique (list :: [ (Nat,Nat)->Nat ])  =  True
-
-ratioRepetitions (list :: [ (Nat,Nat)->Nat ])  =  0 % 1
-
-tiers :: [(Nat,Nat)->Nat]  =
-  [ [\_ -> 0]
-  , [\_ -> 1]
-  , [ \x -> case x of
-            (0,0) -> 1
-            _ -> 0
-    , \x -> case x of
-            (0,0) -> 0
-            _ -> 1
-    , \_ -> 2
-    ]
-  , [ \x -> case x of
-            (0,0) -> 2
-            _ -> 0
-    , \x -> case x of
-            (0,1) -> 1
-            _ -> 0
-    , \x -> case x of
-            (1,0) -> 1
-            _ -> 0
-    , \x -> case x of
-            (0,1) -> 0
-            _ -> 1
-    , \x -> case x of
-            (1,0) -> 0
-            _ -> 1
-    , \x -> case x of
-            (0,0) -> 0
-            _ -> 2
-    , \_ -> 3
-    ]
-  , [ \x -> case x of
-            (0,0) -> 3
-            _ -> 0
-    , \x -> case x of
-            (0,1) -> 2
-            _ -> 0
-    , \x -> case x of
-            (1,0) -> 2
-            _ -> 0
-    , \x -> case x of
-            (0,2) -> 1
-            _ -> 0
-    , \x -> case x of
-            (1,1) -> 1
-            _ -> 0
-    , \x -> case x of
-            (2,0) -> 1
-            _ -> 0
-    , \x -> case x of
-            (0,0) -> 2
-            _ -> 1
-    , \x -> case x of
-            (0,0) -> 0
-            (0,1) -> 0
-            _ -> 1
-    , \x -> case x of
-            (0,0) -> 0
-            (1,0) -> 0
-            _ -> 1
-    , \x -> case x of
-            (0,2) -> 0
-            _ -> 1
-    , \x -> case x of
-            (1,1) -> 0
-            _ -> 1
-    , \x -> case x of
-            (2,0) -> 0
-            _ -> 1
-    , \x -> case x of
-            (0,0) -> 1
-            _ -> 2
-    , \x -> case x of
-            (0,1) -> 0
-            _ -> 2
-    , \x -> case x of
-            (1,0) -> 0
-            _ -> 2
-    , \x -> case x of
-            (0,0) -> 0
-            _ -> 3
-    , \_ -> 4
-    ]
-  , [ \x -> case x of
-            (0,0) -> 4
-            _ -> 0
-    , \x -> case x of
-            (0,1) -> 3
-            _ -> 0
-    , \x -> case x of
-            (1,0) -> 3
-            _ -> 0
-    , \x -> case x of
-            (0,0) -> 1
-            (0,1) -> 1
-            _ -> 0
-    , \x -> case x of
-            (0,0) -> 1
-            (1,0) -> 1
-            _ -> 0
-    , \x -> case x of
-            (0,2) -> 2
-            _ -> 0
-    , \x -> case x of
-            (1,1) -> 2
-            _ -> 0
-    , \x -> case x of
-            (2,0) -> 2
-            _ -> 0
-    , \x -> case x of
-            (0,3) -> 1
-            _ -> 0
-    , \x -> case x of
-            (1,2) -> 1
-            _ -> 0
-    , \x -> case x of
-            (2,1) -> 1
-            _ -> 0
-    , \x -> case x of
-            (3,0) -> 1
-            _ -> 0
-    , \x -> case x of
-            (0,0) -> 3
-            _ -> 1
-    , \x -> case x of
-            (0,1) -> 2
-            _ -> 1
-    , \x -> case x of
-            (1,0) -> 2
-            _ -> 1
-    , \x -> case x of
-            (0,0) -> 0
-            (0,2) -> 0
-            _ -> 1
-    , \x -> case x of
-            (0,0) -> 0
-            (1,1) -> 0
-            _ -> 1
-    , \x -> case x of
-            (0,0) -> 0
-            (2,0) -> 0
-            _ -> 1
-    , \x -> case x of
-            (0,1) -> 0
-            (1,0) -> 0
-            _ -> 1
-    , \x -> case x of
-            (0,3) -> 0
-            _ -> 1
-    , \x -> case x of
-            (1,2) -> 0
-            _ -> 1
-    , \x -> case x of
-            (2,1) -> 0
-            _ -> 1
-    , \x -> case x of
-            (3,0) -> 0
-            _ -> 1
-    , \x -> case x of
-            (0,1) -> 1
-            _ -> 2
-    , \x -> case x of
-            (1,0) -> 1
-            _ -> 2
-    , \x -> case x of
-            (0,0) -> 0
-            (0,1) -> 0
-            _ -> 2
-    , \x -> case x of
-            (0,0) -> 0
-            (1,0) -> 0
-            _ -> 2
-    , \x -> case x of
-            (0,2) -> 0
-            _ -> 2
-    , \x -> case x of
-            (1,1) -> 0
-            _ -> 2
-    , \x -> case x of
-            (2,0) -> 0
-            _ -> 2
-    , \x -> case x of
-            (0,0) -> 1
-            _ -> 3
-    , \x -> case x of
-            (0,1) -> 0
-            _ -> 3
-    , \x -> case x of
-            (1,0) -> 0
-            _ -> 3
-    , \x -> case x of
-            (0,0) -> 0
-            _ -> 4
-    , \_ -> 5
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-default-Nat-Nat-Nat.out b/test/diff/tiers-default-Nat-Nat-Nat.out
deleted file mode 100644
--- a/test/diff/tiers-default-Nat-Nat-Nat.out
+++ /dev/null
@@ -1,528 +0,0 @@
-map length (tiers :: [[ Nat->Nat->Nat ]])  =  [1,1,5,13,35,81,...]
-
-length (list :: [ Nat->Nat->Nat ])  =  Infinity
-
-allUnique (list :: [ Nat->Nat->Nat ])  =  True
-
-ratioRepetitions (list :: [ Nat->Nat->Nat ])  =  0 % 1
-
-tiers :: [Nat->Nat->Nat]  =
-  [ [\_ _ -> 0]
-  , [\_ _ -> 1]
-  , [ \x _ -> case x of
-              0 -> 1
-              _ -> 0
-    , \x _ -> case x of
-              0 -> 0
-              _ -> 1
-    , \_ y -> case y of
-              0 -> 1
-              _ -> 0
-    , \_ y -> case y of
-              0 -> 0
-              _ -> 1
-    , \_ _ -> 2
-    ]
-  , [ \x y -> case (x,y) of
-              (0,0) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (_,0) -> 0
-              (0,_) -> 1
-              _ -> 0
-    , \x _ -> case x of
-              0 -> 2
-              _ -> 0
-    , \x _ -> case x of
-              1 -> 1
-              _ -> 0
-    , \x _ -> case x of
-              1 -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 0
-              _ -> 1
-    , \x _ -> case x of
-              0 -> 0
-              _ -> 2
-    , \_ y -> case y of
-              0 -> 2
-              _ -> 0
-    , \_ y -> case y of
-              1 -> 1
-              _ -> 0
-    , \_ y -> case y of
-              1 -> 0
-              _ -> 1
-    , \_ y -> case y of
-              0 -> 0
-              _ -> 2
-    , \_ _ -> 3
-    ]
-  , [ \x y -> case (x,y) of
-              (0,0) -> 2
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,1) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,0) -> 1
-              (_,1) -> 0
-              (1,_) -> 0
-              (_,0) -> 0
-              (0,_) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (_,0) -> 0
-              (0,_) -> 2
-              _ -> 0
-    , \x _ -> case x of
-              0 -> 3
-              _ -> 0
-    , \x y -> case (x,y) of
-              (1,0) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 0
-              (1,_) -> 1
-              _ -> 0
-    , \x _ -> case x of
-              1 -> 2
-              _ -> 0
-    , \x _ -> case x of
-              2 -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (_,0) -> 1
-              (0,_) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,0) -> 0
-              _ -> 1
-    , \x _ -> case x of
-              0 -> 2
-              _ -> 1
-    , \x _ -> case x of
-              0 -> 0
-              1 -> 0
-              _ -> 1
-    , \x _ -> case x of
-              2 -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,_) -> 1
-              (_,0) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,0) -> 1
-              (0,_) -> 0
-              (_,1) -> 0
-              (1,_) -> 0
-              (_,0) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 1
-              (_,0) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (_,0) -> 0
-              (1,_) -> 0
-              _ -> 1
-    , \x _ -> case x of
-              0 -> 1
-              _ -> 2
-    , \x _ -> case x of
-              1 -> 0
-              _ -> 2
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 2
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 0
-              (_,1) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,1) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 0
-              _ -> 2
-    , \x _ -> case x of
-              0 -> 0
-              _ -> 3
-    , \_ y -> case y of
-              0 -> 3
-              _ -> 0
-    , \_ y -> case y of
-              1 -> 2
-              _ -> 0
-    , \_ y -> case y of
-              2 -> 1
-              _ -> 0
-    , \_ y -> case y of
-              0 -> 2
-              _ -> 1
-    , \_ y -> case y of
-              0 -> 0
-              1 -> 0
-              _ -> 1
-    , \_ y -> case y of
-              2 -> 0
-              _ -> 1
-    , \_ y -> case y of
-              0 -> 1
-              _ -> 2
-    , \_ y -> case y of
-              1 -> 0
-              _ -> 2
-    , \_ y -> case y of
-              0 -> 0
-              _ -> 3
-    , \_ _ -> 4
-    ]
-  , [ \x y -> case (x,y) of
-              (0,0) -> 3
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,1) -> 2
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,2) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,0) -> 2
-              (0,_) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (_,0) -> 0
-              (_,1) -> 0
-              (0,_) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,0) -> 1
-              (0,1) -> 1
-              (1,_) -> 0
-              (_,0) -> 0
-              (_,2) -> 0
-              (0,_) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,0) -> 1
-              (0,_) -> 2
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,0) -> 2
-              (_,1) -> 0
-              (1,_) -> 0
-              (_,0) -> 0
-              (0,_) -> 2
-              _ -> 0
-    , \x y -> case (x,y) of
-              (_,0) -> 0
-              (0,_) -> 3
-              _ -> 0
-    , \x _ -> case x of
-              0 -> 4
-              _ -> 0
-    , \x y -> case (x,y) of
-              (1,0) -> 2
-              _ -> 0
-    , \x y -> case (x,y) of
-              (1,1) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (1,0) -> 1
-              (_,1) -> 0
-              (2,_) -> 0
-              (_,0) -> 0
-              (1,_) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 0
-              (1,_) -> 2
-              _ -> 0
-    , \x _ -> case x of
-              1 -> 3
-              _ -> 0
-    , \x _ -> case x of
-              0 -> 1
-              1 -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (2,0) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 0
-              (1,_) -> 0
-              (2,_) -> 1
-              _ -> 0
-    , \x _ -> case x of
-              2 -> 2
-              _ -> 0
-    , \x _ -> case x of
-              3 -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,0) -> 2
-              (0,_) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,0) -> 0
-              (_,1) -> 1
-              (1,_) -> 1
-              (_,0) -> 1
-              (0,_) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,1) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,0) -> 0
-              (0,_) -> 2
-              _ -> 1
-    , \x _ -> case x of
-              0 -> 3
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,_) -> 1
-              (_,0) -> 1
-              (1,_) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (1,0) -> 0
-              _ -> 1
-    , \x _ -> case x of
-              1 -> 2
-              _ -> 1
-    , \x _ -> case x of
-              0 -> 0
-              2 -> 0
-              _ -> 1
-    , \x _ -> case x of
-              3 -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,0) -> 0
-              (0,_) -> 1
-              (_,0) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 2
-              (_,0) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (_,0) -> 1
-              (1,_) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (1,_) -> 0
-              (_,0) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,0) -> 1
-              (0,1) -> 0
-              (1,0) -> 1
-              (0,2) -> 0
-              (1,1) -> 0
-              (2,0) -> 0
-              (0,3) -> 0
-              (1,2) -> 0
-              ...
-    , \x y -> case (x,y) of
-              (0,0) -> 1
-              (0,_) -> 0
-              (_,0) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,_) -> 2
-              (_,0) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,0) -> 0
-              (0,_) -> 1
-              (_,1) -> 1
-              (1,_) -> 1
-              (_,0) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 0
-              (1,_) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (_,0) -> 0
-              (2,_) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,0) -> 1
-              (0,_) -> 0
-              _ -> 2
-    , \x y -> case (x,y) of
-              (0,0) -> 0
-              (0,_) -> 1
-              _ -> 2
-    , \x _ -> case x of
-              1 -> 1
-              _ -> 2
-    , \x _ -> case x of
-              0 -> 0
-              1 -> 0
-              _ -> 2
-    , \x _ -> case x of
-              2 -> 0
-              _ -> 2
-    , \x y -> case (x,y) of
-              (0,_) -> 1
-              (_,0) -> 2
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,0) -> 2
-              (0,_) -> 0
-              (_,1) -> 0
-              (1,_) -> 0
-              (_,0) -> 2
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 1
-              (_,1) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (_,0) -> 0
-              (0,1) -> 1
-              (0,_) -> 0
-              (_,2) -> 0
-              (1,_) -> 0
-              (_,1) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 1
-              (_,0) -> 1
-              (_,1) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (_,1) -> 0
-              (1,_) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,_) -> 1
-              (_,0) -> 0
-              _ -> 2
-    , \x y -> case (x,y) of
-              (_,0) -> 0
-              (1,_) -> 0
-              _ -> 2
-    , \x _ -> case x of
-              0 -> 1
-              _ -> 3
-    , \x _ -> case x of
-              1 -> 0
-              _ -> 3
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 3
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 0
-              (_,1) -> 2
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 0
-              (_,1) -> 0
-              (_,2) -> 1
-              _ -> 0
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 2
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 0
-              (_,1) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,2) -> 0
-              _ -> 1
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 1
-              _ -> 2
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,1) -> 0
-              _ -> 2
-    , \x y -> case (x,y) of
-              (0,_) -> 0
-              (_,0) -> 0
-              _ -> 3
-    , \x _ -> case x of
-              0 -> 0
-              _ -> 4
-    , \_ y -> case y of
-              0 -> 4
-              _ -> 0
-    , \_ y -> case y of
-              1 -> 3
-              _ -> 0
-    , \_ y -> case y of
-              0 -> 1
-              1 -> 1
-              _ -> 0
-    , \_ y -> case y of
-              2 -> 2
-              _ -> 0
-    , \_ y -> case y of
-              3 -> 1
-              _ -> 0
-    , \_ y -> case y of
-              0 -> 3
-              _ -> 1
-    , \_ y -> case y of
-              1 -> 2
-              _ -> 1
-    , \_ y -> case y of
-              0 -> 0
-              2 -> 0
-              _ -> 1
-    , \_ y -> case y of
-              3 -> 0
-              _ -> 1
-    , \_ y -> case y of
-              1 -> 1
-              _ -> 2
-    , \_ y -> case y of
-              0 -> 0
-              1 -> 0
-              _ -> 2
-    , \_ y -> case y of
-              2 -> 0
-              _ -> 2
-    , \_ y -> case y of
-              0 -> 1
-              _ -> 3
-    , \_ y -> case y of
-              1 -> 0
-              _ -> 3
-    , \_ y -> case y of
-              0 -> 0
-              _ -> 4
-    , \_ _ -> 5
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-default-Nat-Nat.out b/test/diff/tiers-default-Nat-Nat.out
deleted file mode 100644
--- a/test/diff/tiers-default-Nat-Nat.out
+++ /dev/null
@@ -1,670 +0,0 @@
-map length (tiers :: [[ Nat->Nat ]])  =  [1,1,3,5,10,16,30,48,80,...]
-
-length (list :: [ Nat->Nat ])  =  Infinity
-
-allUnique (list :: [ Nat->Nat ])  =  True
-
-ratioRepetitions (list :: [ Nat->Nat ])  =  0 % 1
-
-tiers :: [Nat->Nat]  =
-  [ [\_ -> 0]
-  , [\_ -> 1]
-  , [ \x -> case x of
-            0 -> 1
-            _ -> 0
-    , \x -> case x of
-            0 -> 0
-            _ -> 1
-    , \_ -> 2
-    ]
-  , [ \x -> case x of
-            0 -> 2
-            _ -> 0
-    , \x -> case x of
-            1 -> 1
-            _ -> 0
-    , \x -> case x of
-            1 -> 0
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            _ -> 2
-    , \_ -> 3
-    ]
-  , [ \x -> case x of
-            0 -> 3
-            _ -> 0
-    , \x -> case x of
-            1 -> 2
-            _ -> 0
-    , \x -> case x of
-            2 -> 1
-            _ -> 0
-    , \x -> case x of
-            0 -> 2
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            1 -> 0
-            _ -> 1
-    , \x -> case x of
-            2 -> 0
-            _ -> 1
-    , \x -> case x of
-            0 -> 1
-            _ -> 2
-    , \x -> case x of
-            1 -> 0
-            _ -> 2
-    , \x -> case x of
-            0 -> 0
-            _ -> 3
-    , \_ -> 4
-    ]
-  , [ \x -> case x of
-            0 -> 4
-            _ -> 0
-    , \x -> case x of
-            1 -> 3
-            _ -> 0
-    , \x -> case x of
-            0 -> 1
-            1 -> 1
-            _ -> 0
-    , \x -> case x of
-            2 -> 2
-            _ -> 0
-    , \x -> case x of
-            3 -> 1
-            _ -> 0
-    , \x -> case x of
-            0 -> 3
-            _ -> 1
-    , \x -> case x of
-            1 -> 2
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            2 -> 0
-            _ -> 1
-    , \x -> case x of
-            3 -> 0
-            _ -> 1
-    , \x -> case x of
-            1 -> 1
-            _ -> 2
-    , \x -> case x of
-            0 -> 0
-            1 -> 0
-            _ -> 2
-    , \x -> case x of
-            2 -> 0
-            _ -> 2
-    , \x -> case x of
-            0 -> 1
-            _ -> 3
-    , \x -> case x of
-            1 -> 0
-            _ -> 3
-    , \x -> case x of
-            0 -> 0
-            _ -> 4
-    , \_ -> 5
-    ]
-  , [ \x -> case x of
-            0 -> 5
-            _ -> 0
-    , \x -> case x of
-            1 -> 4
-            _ -> 0
-    , \x -> case x of
-            0 -> 1
-            1 -> 2
-            _ -> 0
-    , \x -> case x of
-            0 -> 2
-            1 -> 1
-            _ -> 0
-    , \x -> case x of
-            2 -> 3
-            _ -> 0
-    , \x -> case x of
-            0 -> 1
-            2 -> 1
-            _ -> 0
-    , \x -> case x of
-            3 -> 2
-            _ -> 0
-    , \x -> case x of
-            4 -> 1
-            _ -> 0
-    , \x -> case x of
-            0 -> 4
-            _ -> 1
-    , \x -> case x of
-            1 -> 3
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            1 -> 2
-            _ -> 1
-    , \x -> case x of
-            0 -> 2
-            1 -> 0
-            _ -> 1
-    , \x -> case x of
-            2 -> 2
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            3 -> 0
-            _ -> 1
-    , \x -> case x of
-            1 -> 0
-            2 -> 0
-            _ -> 1
-    , \x -> case x of
-            4 -> 0
-            _ -> 1
-    , \x -> case x of
-            0 -> 3
-            _ -> 2
-    , \x -> case x of
-            0 -> 0
-            1 -> 1
-            _ -> 2
-    , \x -> case x of
-            0 -> 1
-            1 -> 0
-            _ -> 2
-    , \x -> case x of
-            2 -> 1
-            _ -> 2
-    , \x -> case x of
-            0 -> 0
-            2 -> 0
-            _ -> 2
-    , \x -> case x of
-            3 -> 0
-            _ -> 2
-    , \x -> case x of
-            0 -> 2
-            _ -> 3
-    , \x -> case x of
-            1 -> 1
-            _ -> 3
-    , \x -> case x of
-            0 -> 0
-            1 -> 0
-            _ -> 3
-    , \x -> case x of
-            2 -> 0
-            _ -> 3
-    , \x -> case x of
-            0 -> 1
-            _ -> 4
-    , \x -> case x of
-            1 -> 0
-            _ -> 4
-    , \x -> case x of
-            0 -> 0
-            _ -> 5
-    , \_ -> 6
-    ]
-  , [ \x -> case x of
-            0 -> 6
-            _ -> 0
-    , \x -> case x of
-            1 -> 5
-            _ -> 0
-    , \x -> case x of
-            0 -> 1
-            1 -> 3
-            _ -> 0
-    , \x -> case x of
-            0 -> 2
-            1 -> 2
-            _ -> 0
-    , \x -> case x of
-            0 -> 3
-            1 -> 1
-            _ -> 0
-    , \x -> case x of
-            2 -> 4
-            _ -> 0
-    , \x -> case x of
-            0 -> 1
-            2 -> 2
-            _ -> 0
-    , \x -> case x of
-            0 -> 2
-            2 -> 1
-            _ -> 0
-    , \x -> case x of
-            3 -> 3
-            _ -> 0
-    , \x -> case x of
-            0 -> 1
-            3 -> 1
-            _ -> 0
-    , \x -> case x of
-            1 -> 1
-            2 -> 1
-            _ -> 0
-    , \x -> case x of
-            4 -> 2
-            _ -> 0
-    , \x -> case x of
-            5 -> 1
-            _ -> 0
-    , \x -> case x of
-            0 -> 5
-            _ -> 1
-    , \x -> case x of
-            1 -> 4
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            1 -> 3
-            _ -> 1
-    , \x -> case x of
-            0 -> 3
-            1 -> 0
-            _ -> 1
-    , \x -> case x of
-            2 -> 3
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            2 -> 2
-            _ -> 1
-    , \x -> case x of
-            0 -> 2
-            2 -> 0
-            _ -> 1
-    , \x -> case x of
-            3 -> 2
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            1 -> 0
-            2 -> 0
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            4 -> 0
-            _ -> 1
-    , \x -> case x of
-            1 -> 0
-            3 -> 0
-            _ -> 1
-    , \x -> case x of
-            5 -> 0
-            _ -> 1
-    , \x -> case x of
-            0 -> 4
-            _ -> 2
-    , \x -> case x of
-            1 -> 3
-            _ -> 2
-    , \x -> case x of
-            0 -> 1
-            1 -> 1
-            _ -> 2
-    , \x -> case x of
-            0 -> 0
-            2 -> 1
-            _ -> 2
-    , \x -> case x of
-            0 -> 1
-            2 -> 0
-            _ -> 2
-    , \x -> case x of
-            3 -> 1
-            _ -> 2
-    , \x -> case x of
-            0 -> 0
-            3 -> 0
-            _ -> 2
-    , \x -> case x of
-            1 -> 0
-            2 -> 0
-            _ -> 2
-    , \x -> case x of
-            4 -> 0
-            _ -> 2
-    , \x -> case x of
-            1 -> 2
-            _ -> 3
-    , \x -> case x of
-            0 -> 0
-            1 -> 1
-            _ -> 3
-    , \x -> case x of
-            0 -> 1
-            1 -> 0
-            _ -> 3
-    , \x -> case x of
-            2 -> 1
-            _ -> 3
-    , \x -> case x of
-            0 -> 0
-            2 -> 0
-            _ -> 3
-    , \x -> case x of
-            3 -> 0
-            _ -> 3
-    , \x -> case x of
-            0 -> 2
-            _ -> 4
-    , \x -> case x of
-            1 -> 1
-            _ -> 4
-    , \x -> case x of
-            0 -> 0
-            1 -> 0
-            _ -> 4
-    , \x -> case x of
-            2 -> 0
-            _ -> 4
-    , \x -> case x of
-            0 -> 1
-            _ -> 5
-    , \x -> case x of
-            1 -> 0
-            _ -> 5
-    , \x -> case x of
-            0 -> 0
-            _ -> 6
-    , \_ -> 7
-    ]
-  , [ \x -> case x of
-            0 -> 7
-            _ -> 0
-    , \x -> case x of
-            1 -> 6
-            _ -> 0
-    , \x -> case x of
-            0 -> 1
-            1 -> 4
-            _ -> 0
-    , \x -> case x of
-            0 -> 2
-            1 -> 3
-            _ -> 0
-    , \x -> case x of
-            0 -> 3
-            1 -> 2
-            _ -> 0
-    , \x -> case x of
-            0 -> 4
-            1 -> 1
-            _ -> 0
-    , \x -> case x of
-            2 -> 5
-            _ -> 0
-    , \x -> case x of
-            0 -> 1
-            2 -> 3
-            _ -> 0
-    , \x -> case x of
-            0 -> 2
-            2 -> 2
-            _ -> 0
-    , \x -> case x of
-            0 -> 3
-            2 -> 1
-            _ -> 0
-    , \x -> case x of
-            3 -> 4
-            _ -> 0
-    , \x -> case x of
-            0 -> 1
-            3 -> 2
-            _ -> 0
-    , \x -> case x of
-            0 -> 2
-            3 -> 1
-            _ -> 0
-    , \x -> case x of
-            1 -> 1
-            2 -> 2
-            _ -> 0
-    , \x -> case x of
-            1 -> 2
-            2 -> 1
-            _ -> 0
-    , \x -> case x of
-            4 -> 3
-            _ -> 0
-    , \x -> case x of
-            0 -> 1
-            4 -> 1
-            _ -> 0
-    , \x -> case x of
-            1 -> 1
-            3 -> 1
-            _ -> 0
-    , \x -> case x of
-            5 -> 2
-            _ -> 0
-    , \x -> case x of
-            6 -> 1
-            _ -> 0
-    , \x -> case x of
-            0 -> 6
-            _ -> 1
-    , \x -> case x of
-            1 -> 5
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            1 -> 4
-            _ -> 1
-    , \x -> case x of
-            0 -> 2
-            1 -> 2
-            _ -> 1
-    , \x -> case x of
-            0 -> 4
-            1 -> 0
-            _ -> 1
-    , \x -> case x of
-            2 -> 4
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            2 -> 3
-            _ -> 1
-    , \x -> case x of
-            0 -> 3
-            2 -> 0
-            _ -> 1
-    , \x -> case x of
-            3 -> 3
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            3 -> 2
-            _ -> 1
-    , \x -> case x of
-            0 -> 2
-            3 -> 0
-            _ -> 1
-    , \x -> case x of
-            1 -> 0
-            2 -> 2
-            _ -> 1
-    , \x -> case x of
-            1 -> 2
-            2 -> 0
-            _ -> 1
-    , \x -> case x of
-            4 -> 2
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            1 -> 0
-            3 -> 0
-            _ -> 1
-    , \x -> case x of
-            0 -> 0
-            5 -> 0
-            _ -> 1
-    , \x -> case x of
-            1 -> 0
-            4 -> 0
-            _ -> 1
-    , \x -> case x of
-            2 -> 0
-            3 -> 0
-            _ -> 1
-    , \x -> case x of
-            6 -> 0
-            _ -> 1
-    , \x -> case x of
-            0 -> 5
-            _ -> 2
-    , \x -> case x of
-            1 -> 4
-            _ -> 2
-    , \x -> case x of
-            0 -> 0
-            1 -> 3
-            _ -> 2
-    , \x -> case x of
-            0 -> 3
-            1 -> 0
-            _ -> 2
-    , \x -> case x of
-            2 -> 3
-            _ -> 2
-    , \x -> case x of
-            0 -> 1
-            2 -> 1
-            _ -> 2
-    , \x -> case x of
-            0 -> 0
-            3 -> 1
-            _ -> 2
-    , \x -> case x of
-            0 -> 1
-            3 -> 0
-            _ -> 2
-    , \x -> case x of
-            1 -> 0
-            2 -> 1
-            _ -> 2
-    , \x -> case x of
-            1 -> 1
-            2 -> 0
-            _ -> 2
-    , \x -> case x of
-            4 -> 1
-            _ -> 2
-    , \x -> case x of
-            0 -> 0
-            1 -> 0
-            2 -> 0
-            _ -> 2
-    , \x -> case x of
-            0 -> 0
-            4 -> 0
-            _ -> 2
-    , \x -> case x of
-            1 -> 0
-            3 -> 0
-            _ -> 2
-    , \x -> case x of
-            5 -> 0
-            _ -> 2
-    , \x -> case x of
-            0 -> 4
-            _ -> 3
-    , \x -> case x of
-            0 -> 0
-            1 -> 2
-            _ -> 3
-    , \x -> case x of
-            0 -> 1
-            1 -> 1
-            _ -> 3
-    , \x -> case x of
-            0 -> 2
-            1 -> 0
-            _ -> 3
-    , \x -> case x of
-            2 -> 2
-            _ -> 3
-    , \x -> case x of
-            0 -> 0
-            2 -> 1
-            _ -> 3
-    , \x -> case x of
-            0 -> 1
-            2 -> 0
-            _ -> 3
-    , \x -> case x of
-            3 -> 1
-            _ -> 3
-    , \x -> case x of
-            0 -> 0
-            3 -> 0
-            _ -> 3
-    , \x -> case x of
-            1 -> 0
-            2 -> 0
-            _ -> 3
-    , \x -> case x of
-            4 -> 0
-            _ -> 3
-    , \x -> case x of
-            0 -> 3
-            _ -> 4
-    , \x -> case x of
-            1 -> 2
-            _ -> 4
-    , \x -> case x of
-            0 -> 0
-            1 -> 1
-            _ -> 4
-    , \x -> case x of
-            0 -> 1
-            1 -> 0
-            _ -> 4
-    , \x -> case x of
-            2 -> 1
-            _ -> 4
-    , \x -> case x of
-            0 -> 0
-            2 -> 0
-            _ -> 4
-    , \x -> case x of
-            3 -> 0
-            _ -> 4
-    , \x -> case x of
-            0 -> 2
-            _ -> 5
-    , \x -> case x of
-            1 -> 1
-            _ -> 5
-    , \x -> case x of
-            0 -> 0
-            1 -> 0
-            _ -> 5
-    , \x -> case x of
-            2 -> 0
-            _ -> 5
-    , \x -> case x of
-            0 -> 1
-            _ -> 6
-    , \x -> case x of
-            1 -> 0
-            _ -> 6
-    , \x -> case x of
-            0 -> 0
-            _ -> 7
-    , \_ -> 8
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-default-Nat-U.out b/test/diff/tiers-default-Nat-U.out
deleted file mode 100644
--- a/test/diff/tiers-default-Nat-U.out
+++ /dev/null
@@ -1,17 +0,0 @@
-map length (tiers :: [[ Nat->() ]])  =  [1,0,0,0,0,0,...]
-
-length (list :: [ Nat->() ])  =  1
-
-allUnique (list :: [ Nat->() ])  =  True
-
-ratioRepetitions (list :: [ Nat->() ])  =  0 % 1
-
-tiers :: [Nat->()]  =
-  [ [\_ -> ()]
-  , []
-  , []
-  , []
-  , []
-  , []
-  , ...
-  ]
diff --git a/test/diff/tiers-default-Nat2-Nat2.out b/test/diff/tiers-default-Nat2-Nat2.out
deleted file mode 100644
--- a/test/diff/tiers-default-Nat2-Nat2.out
+++ /dev/null
@@ -1,19 +0,0 @@
-map length (tiers :: [[ Nat2->Nat2 ]])  =  [1,2,1]
-
-length (list :: [ Nat2->Nat2 ])  =  4
-
-allUnique (list :: [ Nat2->Nat2 ])  =  True
-
-ratioRepetitions (list :: [ Nat2->Nat2 ])  =  0 % 1
-
-tiers :: [Nat2->Nat2]  =
-  [ [\_ -> 0]
-  , [ \x -> case x of
-            0 -> 0
-            1 -> 1
-    , \x -> case x of
-            0 -> 1
-            1 -> 0
-    ]
-  , [\_ -> 1]
-  ]
diff --git a/test/diff/tiers-default-Nat2-Nat3.out b/test/diff/tiers-default-Nat2-Nat3.out
deleted file mode 100644
--- a/test/diff/tiers-default-Nat2-Nat3.out
+++ /dev/null
@@ -1,34 +0,0 @@
-map length (tiers :: [[ Nat2->Nat3 ]])  =  [1,2,3,2,1]
-
-length (list :: [ Nat2->Nat3 ])  =  9
-
-allUnique (list :: [ Nat2->Nat3 ])  =  True
-
-ratioRepetitions (list :: [ Nat2->Nat3 ])  =  0 % 1
-
-tiers :: [Nat2->Nat3]  =
-  [ [\_ -> 0]
-  , [ \x -> case x of
-            0 -> 0
-            1 -> 1
-    , \x -> case x of
-            0 -> 1
-            1 -> 0
-    ]
-  , [ \x -> case x of
-            0 -> 0
-            1 -> 2
-    , \_ -> 1
-    , \x -> case x of
-            0 -> 2
-            1 -> 0
-    ]
-  , [ \x -> case x of
-            0 -> 1
-            1 -> 2
-    , \x -> case x of
-            0 -> 2
-            1 -> 1
-    ]
-  , [\_ -> 2]
-  ]
diff --git a/test/diff/tiers-default-Nat3-Nat2.out b/test/diff/tiers-default-Nat3-Nat2.out
deleted file mode 100644
--- a/test/diff/tiers-default-Nat3-Nat2.out
+++ /dev/null
@@ -1,32 +0,0 @@
-map length (tiers :: [[ Nat3->Nat2 ]])  =  [1,3,3,1]
-
-length (list :: [ Nat3->Nat2 ])  =  8
-
-allUnique (list :: [ Nat3->Nat2 ])  =  True
-
-ratioRepetitions (list :: [ Nat3->Nat2 ])  =  0 % 1
-
-tiers :: [Nat3->Nat2]  =
-  [ [\_ -> 0]
-  , [ \x -> case x of
-            2 -> 1
-            _ -> 0
-    , \x -> case x of
-            1 -> 1
-            _ -> 0
-    , \x -> case x of
-            0 -> 1
-            _ -> 0
-    ]
-  , [ \x -> case x of
-            0 -> 0
-            _ -> 1
-    , \x -> case x of
-            1 -> 0
-            _ -> 1
-    , \x -> case x of
-            2 -> 0
-            _ -> 1
-    ]
-  , [\_ -> 1]
-  ]
diff --git a/test/diff/tiers-default-Nat3-Nat3.out b/test/diff/tiers-default-Nat3-Nat3.out
deleted file mode 100644
--- a/test/diff/tiers-default-Nat3-Nat3.out
+++ /dev/null
@@ -1,96 +0,0 @@
-map length (tiers :: [[ Nat3->Nat3 ]])  =  [1,3,6,7,6,3,1]
-
-length (list :: [ Nat3->Nat3 ])  =  Infinity
-
-allUnique (list :: [ Nat3->Nat3 ])  =  True
-
-ratioRepetitions (list :: [ Nat3->Nat3 ])  =  0 % 1
-
-tiers :: [Nat3->Nat3]  =
-  [ [\_ -> 0]
-  , [ \x -> case x of
-            2 -> 1
-            _ -> 0
-    , \x -> case x of
-            1 -> 1
-            _ -> 0
-    , \x -> case x of
-            0 -> 1
-            _ -> 0
-    ]
-  , [ \x -> case x of
-            2 -> 2
-            _ -> 0
-    , \x -> case x of
-            0 -> 0
-            _ -> 1
-    , \x -> case x of
-            1 -> 2
-            _ -> 0
-    , \x -> case x of
-            1 -> 0
-            _ -> 1
-    , \x -> case x of
-            2 -> 0
-            _ -> 1
-    , \x -> case x of
-            0 -> 2
-            _ -> 0
-    ]
-  , [ \x -> case x of
-            0 -> 0
-            1 -> 1
-            2 -> 2
-    , \x -> case x of
-            0 -> 0
-            1 -> 2
-            2 -> 1
-    , \x -> case x of
-            0 -> 1
-            1 -> 0
-            2 -> 2
-    , \_ -> 1
-    , \x -> case x of
-            0 -> 1
-            1 -> 2
-            2 -> 0
-    , \x -> case x of
-            0 -> 2
-            1 -> 0
-            2 -> 1
-    , \x -> case x of
-            0 -> 2
-            1 -> 1
-            2 -> 0
-    ]
-  , [ \x -> case x of
-            0 -> 0
-            _ -> 2
-    , \x -> case x of
-            2 -> 2
-            _ -> 1
-    , \x -> case x of
-            1 -> 2
-            _ -> 1
-    , \x -> case x of
-            1 -> 0
-            _ -> 2
-    , \x -> case x of
-            0 -> 2
-            _ -> 1
-    , \x -> case x of
-            2 -> 0
-            _ -> 2
-    ]
-  , [ \x -> case x of
-            0 -> 1
-            _ -> 2
-    , \x -> case x of
-            1 -> 1
-            _ -> 2
-    , \x -> case x of
-            2 -> 1
-            _ -> 2
-    ]
-  , [\_ -> 2]
-  ]
diff --git a/test/diff/tiers-default-Nats-Nats.out b/test/diff/tiers-default-Nats-Nats.out
deleted file mode 100644
--- a/test/diff/tiers-default-Nats-Nats.out
+++ /dev/null
@@ -1,317 +0,0 @@
-map length (tiers :: [[ [Nat]->[Nat] ]])  =  [1,1,4,10,29,75,...]
-
-length (list :: [ [Nat]->[Nat] ])  =  Infinity
-
-allUnique (list :: [ [Nat]->[Nat] ])  =  True
-
-ratioRepetitions (list :: [ [Nat]->[Nat] ])  =  0 % 1
-
-tiers :: [[Nat]->[Nat]]  =
-  [ [\_ -> []]
-  , [\_ -> [0]]
-  , [ \x -> case x of
-            [] -> [0]
-            _ -> []
-    , \x -> case x of
-            [] -> []
-            _ -> [0]
-    , \_ -> [0,0]
-    , \_ -> [1]
-    ]
-  , [ \x -> case x of
-            [] -> [0,0]
-            _ -> []
-    , \x -> case x of
-            [] -> [1]
-            _ -> []
-    , \x -> case x of
-            [0] -> [0]
-            _ -> []
-    , \x -> case x of
-            [0] -> []
-            _ -> [0]
-    , \x -> case x of
-            [] -> []
-            _ -> [0,0]
-    , \x -> case x of
-            [] -> []
-            _ -> [1]
-    , \_ -> [0,0,0]
-    , \_ -> [0,1]
-    , \_ -> [1,0]
-    , \_ -> [2]
-    ]
-  , [ \x -> case x of
-            [] -> [0,0,0]
-            _ -> []
-    , \x -> case x of
-            [] -> [0,1]
-            _ -> []
-    , \x -> case x of
-            [] -> [1,0]
-            _ -> []
-    , \x -> case x of
-            [] -> [2]
-            _ -> []
-    , \x -> case x of
-            [0] -> [0,0]
-            _ -> []
-    , \x -> case x of
-            [0] -> [1]
-            _ -> []
-    , \x -> case x of
-            [0,0] -> [0]
-            _ -> []
-    , \x -> case x of
-            [1] -> [0]
-            _ -> []
-    , \x -> case x of
-            [] -> [0,0]
-            _ -> [0]
-    , \x -> case x of
-            [] -> [1]
-            _ -> [0]
-    , \x -> case x of
-            [] -> []
-            [0] -> []
-            _ -> [0]
-    , \x -> case x of
-            [0,0] -> []
-            _ -> [0]
-    , \x -> case x of
-            [1] -> []
-            _ -> [0]
-    , \x -> case x of
-            [] -> [0]
-            _ -> [0,0]
-    , \x -> case x of
-            [0] -> []
-            _ -> [0,0]
-    , \x -> case x of
-            [] -> [0]
-            _ -> [1]
-    , \x -> case x of
-            [0] -> []
-            _ -> [1]
-    , \x -> case x of
-            [] -> []
-            _ -> [0,0,0]
-    , \x -> case x of
-            [] -> []
-            _ -> [0,1]
-    , \x -> case x of
-            [] -> []
-            _ -> [1,0]
-    , \x -> case x of
-            [] -> []
-            _ -> [2]
-    , \_ -> [0,0,0,0]
-    , \_ -> [0,0,1]
-    , \_ -> [0,1,0]
-    , \_ -> [0,2]
-    , \_ -> [1,0,0]
-    , \_ -> [1,1]
-    , \_ -> [2,0]
-    , \_ -> [3]
-    ]
-  , [ \x -> case x of
-            [] -> [0,0,0,0]
-            _ -> []
-    , \x -> case x of
-            [] -> [0,0,1]
-            _ -> []
-    , \x -> case x of
-            [] -> [0,1,0]
-            _ -> []
-    , \x -> case x of
-            [] -> [0,2]
-            _ -> []
-    , \x -> case x of
-            [] -> [1,0,0]
-            _ -> []
-    , \x -> case x of
-            [] -> [1,1]
-            _ -> []
-    , \x -> case x of
-            [] -> [2,0]
-            _ -> []
-    , \x -> case x of
-            [] -> [3]
-            _ -> []
-    , \x -> case x of
-            [0] -> [0,0,0]
-            _ -> []
-    , \x -> case x of
-            [0] -> [0,1]
-            _ -> []
-    , \x -> case x of
-            [0] -> [1,0]
-            _ -> []
-    , \x -> case x of
-            [0] -> [2]
-            _ -> []
-    , \x -> case x of
-            [] -> [0]
-            [0] -> [0]
-            _ -> []
-    , \x -> case x of
-            [0,0] -> [0,0]
-            _ -> []
-    , \x -> case x of
-            [0,0] -> [1]
-            _ -> []
-    , \x -> case x of
-            [1] -> [0,0]
-            _ -> []
-    , \x -> case x of
-            [1] -> [1]
-            _ -> []
-    , \x -> case x of
-            [0,0,0] -> [0]
-            _ -> []
-    , \x -> case x of
-            [0,1] -> [0]
-            _ -> []
-    , \x -> case x of
-            [1,0] -> [0]
-            _ -> []
-    , \x -> case x of
-            [2] -> [0]
-            _ -> []
-    , \x -> case x of
-            [] -> [0,0,0]
-            _ -> [0]
-    , \x -> case x of
-            [] -> [0,1]
-            _ -> [0]
-    , \x -> case x of
-            [] -> [1,0]
-            _ -> [0]
-    , \x -> case x of
-            [] -> [2]
-            _ -> [0]
-    , \x -> case x of
-            [0] -> [0,0]
-            _ -> [0]
-    , \x -> case x of
-            [0] -> [1]
-            _ -> [0]
-    , \x -> case x of
-            [] -> []
-            [0,0] -> []
-            _ -> [0]
-    , \x -> case x of
-            [] -> []
-            [1] -> []
-            _ -> [0]
-    , \x -> case x of
-            [0,0,0] -> []
-            _ -> [0]
-    , \x -> case x of
-            [0,1] -> []
-            _ -> [0]
-    , \x -> case x of
-            [1,0] -> []
-            _ -> [0]
-    , \x -> case x of
-            [2] -> []
-            _ -> [0]
-    , \x -> case x of
-            [] -> [1]
-            _ -> [0,0]
-    , \x -> case x of
-            [0] -> [0]
-            _ -> [0,0]
-    , \x -> case x of
-            [] -> []
-            [0] -> []
-            _ -> [0,0]
-    , \x -> case x of
-            [0,0] -> []
-            _ -> [0,0]
-    , \x -> case x of
-            [1] -> []
-            _ -> [0,0]
-    , \x -> case x of
-            [] -> [0,0]
-            _ -> [1]
-    , \x -> case x of
-            [0] -> [0]
-            _ -> [1]
-    , \x -> case x of
-            [] -> []
-            [0] -> []
-            _ -> [1]
-    , \x -> case x of
-            [0,0] -> []
-            _ -> [1]
-    , \x -> case x of
-            [1] -> []
-            _ -> [1]
-    , \x -> case x of
-            [] -> [0]
-            _ -> [0,0,0]
-    , \x -> case x of
-            [0] -> []
-            _ -> [0,0,0]
-    , \x -> case x of
-            [] -> [0]
-            _ -> [0,1]
-    , \x -> case x of
-            [0] -> []
-            _ -> [0,1]
-    , \x -> case x of
-            [] -> [0]
-            _ -> [1,0]
-    , \x -> case x of
-            [0] -> []
-            _ -> [1,0]
-    , \x -> case x of
-            [] -> [0]
-            _ -> [2]
-    , \x -> case x of
-            [0] -> []
-            _ -> [2]
-    , \x -> case x of
-            [] -> []
-            _ -> [0,0,0,0]
-    , \x -> case x of
-            [] -> []
-            _ -> [0,0,1]
-    , \x -> case x of
-            [] -> []
-            _ -> [0,1,0]
-    , \x -> case x of
-            [] -> []
-            _ -> [0,2]
-    , \x -> case x of
-            [] -> []
-            _ -> [1,0,0]
-    , \x -> case x of
-            [] -> []
-            _ -> [1,1]
-    , \x -> case x of
-            [] -> []
-            _ -> [2,0]
-    , \x -> case x of
-            [] -> []
-            _ -> [3]
-    , \_ -> [0,0,0,0,0]
-    , \_ -> [0,0,0,1]
-    , \_ -> [0,0,1,0]
-    , \_ -> [0,0,2]
-    , \_ -> [0,1,0,0]
-    , \_ -> [0,1,1]
-    , \_ -> [0,2,0]
-    , \_ -> [0,3]
-    , \_ -> [1,0,0,0]
-    , \_ -> [1,0,1]
-    , \_ -> [1,1,0]
-    , \_ -> [1,2]
-    , \_ -> [2,0,0]
-    , \_ -> [2,1]
-    , \_ -> [3,0]
-    , \_ -> [4]
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers-default-U-Bool.out b/test/diff/tiers-default-U-Bool.out
deleted file mode 100644
--- a/test/diff/tiers-default-U-Bool.out
+++ /dev/null
@@ -1,13 +0,0 @@
-map length (tiers :: [[ ()->Bool ]])  =  [2]
-
-length (list :: [ ()->Bool ])  =  2
-
-allUnique (list :: [ ()->Bool ])  =  True
-
-ratioRepetitions (list :: [ ()->Bool ])  =  0 % 1
-
-tiers :: [()->Bool]  =
-  [ [ \_ -> False
-    , \_ -> True
-    ]
-  ]
diff --git a/test/diff/tiers-default-U-Nat.out b/test/diff/tiers-default-U-Nat.out
deleted file mode 100644
--- a/test/diff/tiers-default-U-Nat.out
+++ /dev/null
@@ -1,17 +0,0 @@
-map length (tiers :: [[ ()->Nat ]])  =  [1,1,1,1,1,1,...]
-
-length (list :: [ ()->Nat ])  =  Infinity
-
-allUnique (list :: [ ()->Nat ])  =  True
-
-ratioRepetitions (list :: [ ()->Nat ])  =  0 % 1
-
-tiers :: [()->Nat]  =
-  [ [\_ -> 0]
-  , [\_ -> 1]
-  , [\_ -> 2]
-  , [\_ -> 3]
-  , [\_ -> 4]
-  , [\_ -> 5]
-  , ...
-  ]
diff --git a/test/diff/tiers-default-U-U.out b/test/diff/tiers-default-U-U.out
deleted file mode 100644
--- a/test/diff/tiers-default-U-U.out
+++ /dev/null
@@ -1,10 +0,0 @@
-map length (tiers :: [[ ()->() ]])  =  [1]
-
-length (list :: [ ()->() ])  =  1
-
-allUnique (list :: [ ()->() ])  =  True
-
-ratioRepetitions (list :: [ ()->() ])  =  0 % 1
-
-tiers :: [()->()]  =
-  [[\_ -> ()]]
diff --git a/test/diff/tiers-default-Us-Us.out b/test/diff/tiers-default-Us-Us.out
deleted file mode 100644
--- a/test/diff/tiers-default-Us-Us.out
+++ /dev/null
@@ -1,115 +0,0 @@
-map length (tiers :: [[ [()]->[()] ]])  =  [1,1,3,5,10,16,...]
-
-length (list :: [ [()]->[()] ])  =  Infinity
-
-allUnique (list :: [ [()]->[()] ])  =  True
-
-ratioRepetitions (list :: [ [()]->[()] ])  =  0 % 1
-
-tiers :: [[()]->[()]]  =
-  [ [\_ -> []]
-  , [\_ -> [()]]
-  , [ \x -> case x of
-            [] -> [()]
-            _ -> []
-    , \x -> case x of
-            [] -> []
-            _ -> [()]
-    , \_ -> [(),()]
-    ]
-  , [ \x -> case x of
-            [] -> [(),()]
-            _ -> []
-    , \x -> case x of
-            [()] -> [()]
-            _ -> []
-    , \x -> case x of
-            [()] -> []
-            _ -> [()]
-    , \x -> case x of
-            [] -> []
-            _ -> [(),()]
-    , \_ -> [(),(),()]
-    ]
-  , [ \x -> case x of
-            [] -> [(),(),()]
-            _ -> []
-    , \x -> case x of
-            [()] -> [(),()]
-            _ -> []
-    , \x -> case x of
-            [(),()] -> [()]
-            _ -> []
-    , \x -> case x of
-            [] -> [(),()]
-            _ -> [()]
-    , \x -> case x of
-            [] -> []
-            [()] -> []
-            _ -> [()]
-    , \x -> case x of
-            [(),()] -> []
-            _ -> [()]
-    , \x -> case x of
-            [] -> [()]
-            _ -> [(),()]
-    , \x -> case x of
-            [()] -> []
-            _ -> [(),()]
-    , \x -> case x of
-            [] -> []
-            _ -> [(),(),()]
-    , \_ -> [(),(),(),()]
-    ]
-  , [ \x -> case x of
-            [] -> [(),(),(),()]
-            _ -> []
-    , \x -> case x of
-            [()] -> [(),(),()]
-            _ -> []
-    , \x -> case x of
-            [] -> [()]
-            [()] -> [()]
-            _ -> []
-    , \x -> case x of
-            [(),()] -> [(),()]
-            _ -> []
-    , \x -> case x of
-            [(),(),()] -> [()]
-            _ -> []
-    , \x -> case x of
-            [] -> [(),(),()]
-            _ -> [()]
-    , \x -> case x of
-            [()] -> [(),()]
-            _ -> [()]
-    , \x -> case x of
-            [] -> []
-            [(),()] -> []
-            _ -> [()]
-    , \x -> case x of
-            [(),(),()] -> []
-            _ -> [()]
-    , \x -> case x of
-            [()] -> [()]
-            _ -> [(),()]
-    , \x -> case x of
-            [] -> []
-            [()] -> []
-            _ -> [(),()]
-    , \x -> case x of
-            [(),()] -> []
-            _ -> [(),()]
-    , \x -> case x of
-            [] -> [()]
-            _ -> [(),(),()]
-    , \x -> case x of
-            [()] -> []
-            _ -> [(),(),()]
-    , \x -> case x of
-            [] -> []
-            _ -> [(),(),(),()]
-    , \_ -> [(),(),(),(),()]
-    ]
-  , ...
-  ]
diff --git a/test/diff/tiers.out b/test/diff/tiers.out
deleted file mode 100644
--- a/test/diff/tiers.out
+++ /dev/null
@@ -1,10 +0,0 @@
-map length (tiers :: [[ () ]])  =  [1]
-
-length (list :: [ () ])  =  1
-
-allUnique (list :: [ () ])  =  True
-
-ratioRepetitions (list :: [ () ])  =  0 % 1
-
-tiers :: [()]  =
-  [[()]]
diff --git a/test/error.hs b/test/error.hs
--- a/test/error.hs
+++ b/test/error.hs
@@ -1,21 +1,21 @@
--- Copyright (c) 2015-2020 Rudy Matela.
+-- Copyright (c) 2015-2024 Rudy Matela.
 -- Distributed under the 3-Clause BSD licence (see the file LICENSE).
+{-# LANGUAGE CPP #-}
+
+#if __GLASGOW_HASKELL__ >= 908
+{-# OPTIONS_GHC -Wno-x-partial #-}
+#endif
+
 {-# OPTIONS_GHC -fno-warn-incomplete-patterns #-}
-import Test (getMaxTestsFromArgs)
 
-import System.Exit (exitFailure)
-import Data.List (elemIndices,sort)
+import Test (mainTest)
 
 import Test.LeanCheck.Error
 import Test.LeanCheck.Utils.Types (Nat)
+import Data.List (sort)
 
 main :: IO ()
-main  =  do
-  max <- getMaxTestsFromArgs 200
-  case elemIndices False (tests max) of
-    [] -> putStrLn "Tests passed!"
-    is -> do putStrLn ("Failed tests:" ++ show is)
-             exitFailure
+main  =  mainTest tests 200
 
 tests :: Int -> [Bool]
 tests n  =
diff --git a/test/fun.hs b/test/fun.hs
--- a/test/fun.hs
+++ b/test/fun.hs
@@ -1,18 +1,11 @@
--- Copyright (c) 2015-2020 Rudy Matela.
+-- Copyright (c) 2015-2024 Rudy Matela.
 -- Distributed under the 3-Clause BSD licence (see the file LICENSE).
 import Test
 
-import System.Exit (exitFailure)
-import Data.List (elemIndices)
 import Test.LeanCheck.Function ()
 
 main :: IO ()
-main  =  do
-  max <- getMaxTestsFromArgs 200
-  case elemIndices False (tests max) of
-    [] -> putStrLn "Tests passed!"
-    is -> do putStrLn ("Failed tests:" ++ show is)
-             exitFailure
+main  =  mainTest tests 200
 
 tests :: Int -> [Bool]
 tests n  =
diff --git a/test/funshow.hs b/test/funshow.hs
--- a/test/funshow.hs
+++ b/test/funshow.hs
@@ -1,20 +1,14 @@
--- Copyright (c) 2015-2020 Rudy Matela.
+-- Copyright (c) 2015-2024 Rudy Matela.
 -- Distributed under the 3-Clause BSD licence (see the file LICENSE).
 {-# OPTIONS_GHC -fno-warn-incomplete-patterns #-}
-import Test (getMaxTestsFromArgs)
-import System.Exit (exitFailure)
-import Data.List (elemIndices,sort)
+import Test (mainTest)
 import Test.LeanCheck.Function.ShowFunction
 import Test.LeanCheck.Function.Show ()
 import Test.LeanCheck.Utils.TypeBinding
+import Data.List (sort)
 
 main :: IO ()
-main  =  do
-  max <- getMaxTestsFromArgs 200
-  case elemIndices False (tests max) of
-    [] -> putStrLn "Tests passed!"
-    is -> do putStrLn ("Failed tests:" ++ show is)
-             exitFailure
+main  =  mainTest tests 200
 
 tests :: Int -> [Bool]
 tests _ =
diff --git a/test/generic.hs b/test/generic.hs
--- a/test/generic.hs
+++ b/test/generic.hs
@@ -1,17 +1,16 @@
--- Copyright (c) 2015-2020 Rudy Matela.
+-- Copyright (c) 2015-2024 Rudy Matela.
 -- Distributed under the 3-Clause BSD licence (see the file LICENSE).
 {-# LANGUAGE DeriveGeneric, StandaloneDeriving, TemplateHaskell #-}
 import Test
 -- import Test.LeanCheck -- already exported by Test
 import Test.LeanCheck.Generic
 import Test.LeanCheck.Derive (deriveTiers)
-import System.Exit (exitFailure)
-import Data.List (elemIndices,sort)
 import Test.LeanCheck.Utils
+import Data.List (sort)
 import GHC.Generics (Generic)
 
 data D0        =  D0                     deriving (Eq, Show, Generic)
-data D1 a      =  D1 a                   deriving (Eq, Show, Generic)
+newtype D1 a   =  D1 a                   deriving (Eq, Show, Generic)
 data D2 a b    =  D2 a b                 deriving (Eq, Show, Generic)
 data D3 a b c  =  D3 a b c               deriving (Eq, Show, Generic)
 data C1 a      =            C11 a | C10  deriving (Eq, Show, Generic)
@@ -49,12 +48,7 @@
 
 
 main :: IO ()
-main  =  do
-  max <- getMaxTestsFromArgs 200
-  case elemIndices False (tests max) of
-    [] -> putStrLn "Tests passed!"
-    is -> do putStrLn ("Failed tests:" ++ show is)
-             exitFailure
+main  =  mainTest tests 200
 
 tests :: Int -> [Bool]
 tests n  =
diff --git a/test/io.hs b/test/io.hs
--- a/test/io.hs
+++ b/test/io.hs
@@ -1,4 +1,4 @@
--- Copyright (c) 2015-2020 Rudy Matela.
+-- Copyright (c) 2015-2024 Rudy Matela.
 -- Distributed under the 3-Clause BSD licence (see the file LICENSE).
 import Test
 
diff --git a/test/main.hs b/test/main.hs
--- a/test/main.hs
+++ b/test/main.hs
@@ -1,10 +1,7 @@
--- Copyright (c) 2015-2020 Rudy Matela.
+-- Copyright (c) 2015-2024 Rudy Matela.
 -- Distributed under the 3-Clause BSD licence (see the file LICENSE).
 import Test
 
-import System.Exit (exitFailure)
-import Data.List (elemIndices)
-
 -- import Test.LeanCheck -- already exported by Test
 import Test.LeanCheck.Utils
 
@@ -14,12 +11,7 @@
 import Data.Word
 
 main :: IO ()
-main  =  do
-  max <- getMaxTestsFromArgs 200
-  case elemIndices False (tests max) of
-    [] -> putStrLn "Tests passed!"
-    is -> do putStrLn ("Failed tests:" ++ show is)
-             exitFailure
+main  =  mainTest tests 200
 
 tests :: Int -> [Bool]
 tests n =
diff --git a/test/operators.hs b/test/operators.hs
--- a/test/operators.hs
+++ b/test/operators.hs
@@ -1,22 +1,15 @@
--- Copyright (c) 2015-2020 Rudy Matela.
+-- Copyright (c) 2015-2024 Rudy Matela.
 -- Distributed under the 3-Clause BSD licence (see the file LICENSE).
 import Test
 
-import System.Exit (exitFailure)
-import Data.List (elemIndices,sort)
 -- import Test.LeanCheck -- already exported by Test
 import Test.LeanCheck.Utils
 
-import Data.List (isPrefixOf)
 import Data.Function (on)
+import Data.List (sort, isPrefixOf)
 
 main :: IO ()
-main  =  do
-  max <- getMaxTestsFromArgs 200
-  case elemIndices False (tests max) of
-    [] -> putStrLn "Tests passed!"
-    is -> do putStrLn ("Failed tests:" ++ show is)
-             exitFailure
+main  =  mainTest tests 200
 
 tests :: Int -> [Bool]
 tests n =
diff --git a/test/sdist b/test/sdist
--- a/test/sdist
+++ b/test/sdist
@@ -2,7 +2,7 @@
 #
 # test/sdist: tests the package generated by "cabal sdist".
 #
-# Copyright (c) 2015-2021 Rudy Matela.
+# Copyright (c) 2015-2024 Rudy Matela.
 # Distributed under the 3-Clause BSD licence.
 
 set -xe
@@ -29,7 +29,11 @@
 tar -tf $pkg | sort --ignore-case --unique > $tmp/ls-cabal-iu
 diff -rud $tmp/ls-cabal-i $tmp/ls-cabal-iu
 
-if [ -d .git ]
+# Check if we have a clone of the repo and git is available
+# The check that we can run git ls-files is needed to avoid:
+# fatal: detected dubious ownership in repository at '/__w/.../hello-haskell'
+# on CI.
+if [ -d .git ] && git --version && git ls-files >/dev/null
 then
 	# Test if files included by cabal are the same as files tracked in git.
 	git ls-files                                         | sort > $tmp/ls-git
diff --git a/test/stats.hs b/test/stats.hs
--- a/test/stats.hs
+++ b/test/stats.hs
@@ -1,4 +1,4 @@
--- Copyright (c) 2017-2020 Rudy Matela.
+-- Copyright (c) 2017-2024 Rudy Matela.
 -- Distributed under the 3-Clause BSD licence (see the file LICENSE).
 import Test
 
diff --git a/test/tiers.hs b/test/tiers.hs
--- a/test/tiers.hs
+++ b/test/tiers.hs
@@ -1,22 +1,14 @@
--- Copyright (c) 2015-2020 Rudy Matela.
+-- Copyright (c) 2015-2024 Rudy Matela.
 -- Distributed under the 3-Clause BSD licence (see the file LICENSE).
 import Test
 
-import System.Exit (exitFailure)
-import Data.List (elemIndices, sort, nub, delete)
-
 -- import Test.LeanCheck -- already exported by Test
 import Test.LeanCheck.Utils
-
 import Test.LeanCheck.Tiers
+import Data.List (sort, nub, delete)
 
 main :: IO ()
-main  =  do
-  max <- getMaxTestsFromArgs 200
-  case elemIndices False (tests max) of
-    [] -> putStrLn "Tests passed!"
-    is -> do putStrLn ("Failed tests:" ++ show is)
-             exitFailure
+main  =  mainTest tests 200
 
 tests :: Int -> [Bool]
 tests n =
@@ -39,10 +31,10 @@
                      [[1],[2],[3],[4]]
                      [[const Nothing],[Just]] == [[],[1],[2],[3],[4]]
 
-  , holds n $ deleteT_is_map_delete 10 -:> nat
-  , holds n $ deleteT_is_map_delete 10 -:> int
-  , holds n $ deleteT_is_map_delete 10 -:> bool
-  , holds n $ deleteT_is_map_delete 10 -:> int2
+  , holds n $ deleteTIsMapDelete 10 -:> nat
+  , holds n $ deleteTIsMapDelete 10 -:> int
+  , holds n $ deleteTIsMapDelete 10 -:> bool
+  , holds n $ deleteTIsMapDelete 10 -:> int2
 
   , finite (tiers :: [[ Bool ]])  == True
   , finite (tiers :: [[ (Bool,Bool) ]]) == True
@@ -74,8 +66,8 @@
   , holds n $ \xss -> nub (concat xss) == concat (nubT xss :: [[Int]])
   ]
 
-deleteT_is_map_delete :: (Eq a, Listable a) => Int -> a -> Bool
-deleteT_is_map_delete n x  =
+deleteTIsMapDelete :: (Eq a, Listable a) => Int -> a -> Bool
+deleteTIsMapDelete n x  =
   deleteT x tiers =| n |= normalizeT (map (delete x) tiers)
 
 checkNoDup :: Int -> Bool
diff --git a/test/types.hs b/test/types.hs
--- a/test/types.hs
+++ b/test/types.hs
@@ -1,10 +1,9 @@
 {-# LANGUAGE CPP #-}
--- Copyright (c) 2015-2020 Rudy Matela.
+-- Copyright (c) 2015-2024 Rudy Matela.
 -- Distributed under the 3-Clause BSD licence (see the file LICENSE).
 import Test
-import System.Exit (exitFailure)
-import Data.List (elemIndices,delete,isPrefixOf)
 import Test.LeanCheck.Utils.Types
+import Data.List (delete,isPrefixOf)
 import Data.Word
 import Data.Int
 import Data.Char hiding (Space)
@@ -13,12 +12,7 @@
 #endif
 
 main :: IO ()
-main  =  do
-  max <- getMaxTestsFromArgs 200
-  case elemIndices False (tests max) of
-    [] -> putStrLn "Tests passed!"
-    is -> do putStrLn ("Failed tests:" ++ show is)
-             exitFailure
+main  =  mainTest tests 200
 
 
 -- | Given the number of bits, generates a range for signed/unsigned integers
