packages feed

leancheck 0.7.7 → 0.8.0

raw patch · 298 files changed

+19211/−39247 lines, 298 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Test.LeanCheck.Function.CoListable: class CoListable a
- Test.LeanCheck.Function.CoListable: cotiers :: CoListable a => [[b]] -> [[a -> b]]
- Test.LeanCheck.Function.CoListable: instance (Test.LeanCheck.Function.CoListable.CoListable a, Test.LeanCheck.Function.CoListable.CoListable b) => Test.LeanCheck.Function.CoListable.CoListable (Data.Either.Either a b)
- Test.LeanCheck.Function.CoListable: instance (Test.LeanCheck.Function.CoListable.CoListable a, Test.LeanCheck.Function.CoListable.CoListable b) => Test.LeanCheck.Function.CoListable.CoListable (a, b)
- Test.LeanCheck.Function.CoListable: instance Test.LeanCheck.Function.CoListable.CoListable ()
- Test.LeanCheck.Function.CoListable: instance Test.LeanCheck.Function.CoListable.CoListable GHC.Types.Bool
- Test.LeanCheck.Function.CoListable: instance Test.LeanCheck.Function.CoListable.CoListable GHC.Types.Int
- Test.LeanCheck.Function.CoListable: instance Test.LeanCheck.Function.CoListable.CoListable Test.LeanCheck.Utils.Types.Nat
- Test.LeanCheck.Function.CoListable: instance Test.LeanCheck.Function.CoListable.CoListable Test.LeanCheck.Utils.Types.Nat2
- Test.LeanCheck.Function.CoListable: instance Test.LeanCheck.Function.CoListable.CoListable Test.LeanCheck.Utils.Types.Nat3
- Test.LeanCheck.Function.CoListable: instance Test.LeanCheck.Function.CoListable.CoListable a => Test.LeanCheck.Function.CoListable.CoListable (GHC.Base.Maybe a)
- Test.LeanCheck.Function.CoListable: instance Test.LeanCheck.Function.CoListable.CoListable a => Test.LeanCheck.Function.CoListable.CoListable [a]
- Test.LeanCheck.Function.Listable.CoListable: instance (Test.LeanCheck.Function.CoListable.CoListable a, Test.LeanCheck.Core.Listable b) => Test.LeanCheck.Core.Listable (a -> b)
- Test.LeanCheck.Function.Listable.FunListable: class FunListable a
- Test.LeanCheck.Function.Listable.FunListable: funtiers :: FunListable a => [[(Int, [b] -> (a -> b))]]
- Test.LeanCheck.Function.Listable.FunListable: instance (Test.LeanCheck.Function.Listable.FunListable.FunListable a, Test.LeanCheck.Core.Listable b) => Test.LeanCheck.Core.Listable (a -> b)
- Test.LeanCheck.Function.Listable.FunListable: instance (Test.LeanCheck.Function.Listable.FunListable.FunListable a, Test.LeanCheck.Function.Listable.FunListable.FunListable b) => Test.LeanCheck.Function.Listable.FunListable.FunListable (Data.Either.Either a b)
- Test.LeanCheck.Function.Listable.FunListable: instance (Test.LeanCheck.Function.Listable.FunListable.FunListable a, Test.LeanCheck.Function.Listable.FunListable.FunListable b) => Test.LeanCheck.Function.Listable.FunListable.FunListable (a, b)
- Test.LeanCheck.Function.Listable.FunListable: instance Test.LeanCheck.Function.Listable.FunListable.FunListable ()
- Test.LeanCheck.Function.Listable.FunListable: instance Test.LeanCheck.Function.Listable.FunListable.FunListable GHC.Types.Bool
- Test.LeanCheck.Function.Listable.FunListable: instance Test.LeanCheck.Function.Listable.FunListable.FunListable GHC.Types.Int
- Test.LeanCheck.Function.Listable.FunListable: instance Test.LeanCheck.Function.Listable.FunListable.FunListable Test.LeanCheck.Utils.Types.Nat
- Test.LeanCheck.Function.Listable.FunListable: instance Test.LeanCheck.Function.Listable.FunListable.FunListable Test.LeanCheck.Utils.Types.Nat2
- Test.LeanCheck.Function.Listable.FunListable: instance Test.LeanCheck.Function.Listable.FunListable.FunListable Test.LeanCheck.Utils.Types.Nat3
- Test.LeanCheck.Function.Listable.FunListable: instance Test.LeanCheck.Function.Listable.FunListable.FunListable a => Test.LeanCheck.Function.Listable.FunListable.FunListable (GHC.Base.Maybe a)
- Test.LeanCheck.Function.Listable.FunListable: instance Test.LeanCheck.Function.Listable.FunListable.FunListable a => Test.LeanCheck.Function.Listable.FunListable.FunListable [a]
- Test.LeanCheck.Function.Listable.FunListable: invalidResults :: FunListable a => a -> [b] -> Bool
- Test.LeanCheck.Function.Listable.FunListable: validResults :: FunListable a => a -> [b] -> Bool
- Test.LeanCheck.Function.Listable.Mixed: instance (GHC.Classes.Eq a, Test.LeanCheck.Core.Listable a, Test.LeanCheck.Function.CoListable.CoListable a, Test.LeanCheck.Core.Listable b) => Test.LeanCheck.Core.Listable (a -> b)
- Test.LeanCheck.Function.Listable.Periodic: instance (GHC.Classes.Eq a, GHC.Classes.Eq b, Test.LeanCheck.Core.Listable a, Test.LeanCheck.Core.Listable b) => Test.LeanCheck.Core.Listable (a -> b)
- Test.LeanCheck.Function.Show: instance (GHC.Show.Show a, Test.LeanCheck.Core.Listable a, Test.LeanCheck.Function.ShowFunction.ShowFunction b) => GHC.Show.Show (a -> b)
- Test.LeanCheck.Function.ShowFunction: tBindings :: ShowFunction a => a -> [[Binding]]
- Test.LeanCheck.Function.ShowFunction: tBindingsShow :: Show a => a -> [[Binding]]
+ Test.LeanCheck: tiersFloating :: Fractional a => [[a]]
+ Test.LeanCheck.Core: tiersFloating :: Fractional a => [[a]]
+ Test.LeanCheck.Error: tiersFloating :: Fractional a => [[a]]
+ Test.LeanCheck.Function.Show.EightLines: instance (GHC.Show.Show a, Test.LeanCheck.Core.Listable a, Test.LeanCheck.Function.ShowFunction.ShowFunction b) => GHC.Show.Show (a -> b)
+ Test.LeanCheck.Function.Show.FourCases: instance (GHC.Show.Show a, Test.LeanCheck.Core.Listable a, Test.LeanCheck.Function.ShowFunction.ShowFunction b) => GHC.Show.Show (a -> b)
+ Test.LeanCheck.Function.ShowFunction: bindtiers :: ShowFunction a => a -> [[Binding]]
+ Test.LeanCheck.Function.ShowFunction: bindtiersShow :: Show a => a -> [[Binding]]
+ Test.LeanCheck.Function.ShowFunction: clarifiedBindings :: ShowFunction a => Int -> Int -> a -> ([String], [Binding])
+ Test.LeanCheck.Function.ShowFunction: describedBindings :: ShowFunction a => Int -> Int -> a -> [Binding]
+ Test.LeanCheck.Function.ShowFunction: explainedBindings :: ShowFunction a => Int -> a -> [Binding]
+ Test.LeanCheck.Utils.Operators: okNumNonNegative :: (Eq a, Num a) => a -> a -> a -> Bool
+ Test.LeanCheck.Utils.Types: Alpha :: Char -> Alpha
+ Test.LeanCheck.Utils.Types: AlphaNum :: Char -> AlphaNum
+ Test.LeanCheck.Utils.Types: AlphaNums :: String -> AlphaNums
+ Test.LeanCheck.Utils.Types: Alphas :: String -> Alphas
+ Test.LeanCheck.Utils.Types: Digit :: Char -> Digit
+ Test.LeanCheck.Utils.Types: Digits :: String -> Digits
+ Test.LeanCheck.Utils.Types: Letter :: Char -> Letter
+ Test.LeanCheck.Utils.Types: Letters :: String -> Letters
+ Test.LeanCheck.Utils.Types: Lower :: Char -> Lower
+ Test.LeanCheck.Utils.Types: Lowers :: String -> Lowers
+ Test.LeanCheck.Utils.Types: Space :: Char -> Space
+ Test.LeanCheck.Utils.Types: Spaces :: String -> Spaces
+ Test.LeanCheck.Utils.Types: Upper :: Char -> Upper
+ Test.LeanCheck.Utils.Types: Uppers :: String -> Uppers
+ Test.LeanCheck.Utils.Types: [unAlphaNum] :: AlphaNum -> Char
+ Test.LeanCheck.Utils.Types: [unAlphaNums] :: AlphaNums -> String
+ Test.LeanCheck.Utils.Types: [unAlpha] :: Alpha -> Char
+ Test.LeanCheck.Utils.Types: [unAlphas] :: Alphas -> String
+ Test.LeanCheck.Utils.Types: [unDigit] :: Digit -> Char
+ Test.LeanCheck.Utils.Types: [unDigits] :: Digits -> String
+ Test.LeanCheck.Utils.Types: [unLetter] :: Letter -> Char
+ Test.LeanCheck.Utils.Types: [unLetters] :: Letters -> String
+ Test.LeanCheck.Utils.Types: [unLower] :: Lower -> Char
+ Test.LeanCheck.Utils.Types: [unLowers] :: Lowers -> String
+ Test.LeanCheck.Utils.Types: [unSpace] :: Space -> Char
+ Test.LeanCheck.Utils.Types: [unSpaces] :: Spaces -> String
+ Test.LeanCheck.Utils.Types: [unUpper] :: Upper -> Char
+ Test.LeanCheck.Utils.Types: [unUppers] :: Uppers -> String
+ Test.LeanCheck.Utils.Types: data Alpha
+ Test.LeanCheck.Utils.Types: data AlphaNum
+ Test.LeanCheck.Utils.Types: data AlphaNums
+ Test.LeanCheck.Utils.Types: data Alphas
+ Test.LeanCheck.Utils.Types: data Digit
+ Test.LeanCheck.Utils.Types: data Digits
+ Test.LeanCheck.Utils.Types: data Letter
+ Test.LeanCheck.Utils.Types: data Letters
+ Test.LeanCheck.Utils.Types: data Lower
+ Test.LeanCheck.Utils.Types: data Lowers
+ Test.LeanCheck.Utils.Types: data Space
+ Test.LeanCheck.Utils.Types: data Spaces
+ Test.LeanCheck.Utils.Types: data Upper
+ Test.LeanCheck.Utils.Types: data Uppers
+ Test.LeanCheck.Utils.Types: instance GHC.Show.Show Test.LeanCheck.Utils.Types.Alpha
+ Test.LeanCheck.Utils.Types: instance GHC.Show.Show Test.LeanCheck.Utils.Types.AlphaNum
+ Test.LeanCheck.Utils.Types: instance GHC.Show.Show Test.LeanCheck.Utils.Types.AlphaNums
+ Test.LeanCheck.Utils.Types: instance GHC.Show.Show Test.LeanCheck.Utils.Types.Alphas
+ Test.LeanCheck.Utils.Types: instance GHC.Show.Show Test.LeanCheck.Utils.Types.Digit
+ Test.LeanCheck.Utils.Types: instance GHC.Show.Show Test.LeanCheck.Utils.Types.Digits
+ Test.LeanCheck.Utils.Types: instance GHC.Show.Show Test.LeanCheck.Utils.Types.Letter
+ Test.LeanCheck.Utils.Types: instance GHC.Show.Show Test.LeanCheck.Utils.Types.Letters
+ Test.LeanCheck.Utils.Types: instance GHC.Show.Show Test.LeanCheck.Utils.Types.Lower
+ Test.LeanCheck.Utils.Types: instance GHC.Show.Show Test.LeanCheck.Utils.Types.Lowers
+ Test.LeanCheck.Utils.Types: instance GHC.Show.Show Test.LeanCheck.Utils.Types.Space
+ Test.LeanCheck.Utils.Types: instance GHC.Show.Show Test.LeanCheck.Utils.Types.Spaces
+ Test.LeanCheck.Utils.Types: instance GHC.Show.Show Test.LeanCheck.Utils.Types.Upper
+ Test.LeanCheck.Utils.Types: instance GHC.Show.Show Test.LeanCheck.Utils.Types.Uppers
+ Test.LeanCheck.Utils.Types: instance Test.LeanCheck.Core.Listable Test.LeanCheck.Utils.Types.Alpha
+ Test.LeanCheck.Utils.Types: instance Test.LeanCheck.Core.Listable Test.LeanCheck.Utils.Types.AlphaNum
+ Test.LeanCheck.Utils.Types: instance Test.LeanCheck.Core.Listable Test.LeanCheck.Utils.Types.AlphaNums
+ Test.LeanCheck.Utils.Types: instance Test.LeanCheck.Core.Listable Test.LeanCheck.Utils.Types.Alphas
+ Test.LeanCheck.Utils.Types: instance Test.LeanCheck.Core.Listable Test.LeanCheck.Utils.Types.Digit
+ Test.LeanCheck.Utils.Types: instance Test.LeanCheck.Core.Listable Test.LeanCheck.Utils.Types.Digits
+ Test.LeanCheck.Utils.Types: instance Test.LeanCheck.Core.Listable Test.LeanCheck.Utils.Types.Letter
+ Test.LeanCheck.Utils.Types: instance Test.LeanCheck.Core.Listable Test.LeanCheck.Utils.Types.Letters
+ Test.LeanCheck.Utils.Types: instance Test.LeanCheck.Core.Listable Test.LeanCheck.Utils.Types.Lower
+ Test.LeanCheck.Utils.Types: instance Test.LeanCheck.Core.Listable Test.LeanCheck.Utils.Types.Lowers
+ Test.LeanCheck.Utils.Types: instance Test.LeanCheck.Core.Listable Test.LeanCheck.Utils.Types.Space
+ Test.LeanCheck.Utils.Types: instance Test.LeanCheck.Core.Listable Test.LeanCheck.Utils.Types.Spaces
+ Test.LeanCheck.Utils.Types: instance Test.LeanCheck.Core.Listable Test.LeanCheck.Utils.Types.Upper
+ Test.LeanCheck.Utils.Types: instance Test.LeanCheck.Core.Listable Test.LeanCheck.Utils.Types.Uppers
- Test.LeanCheck: listIntegral :: (Enum a, Num a) => [a]
+ Test.LeanCheck: listIntegral :: (Ord a, Num a) => [a]
- Test.LeanCheck.Core: listIntegral :: (Enum a, Num a) => [a]
+ Test.LeanCheck.Core: listIntegral :: (Ord a, Num a) => [a]
- Test.LeanCheck.Error: listIntegral :: (Enum a, Num a) => [a]
+ Test.LeanCheck.Error: listIntegral :: (Ord a, Num a) => [a]
- Test.LeanCheck.Utils.Types: Natural :: Int -> Natural
+ Test.LeanCheck.Utils.Types: Natural :: Integer -> Natural
- Test.LeanCheck.Utils.Types: [unNatural] :: Natural -> Int
+ Test.LeanCheck.Utils.Types: [unNatural] :: Natural -> Integer

Files

.gitignore view
@@ -12,29 +12,36 @@ *.hi *.dyn_hi *.dyn_o-tests/test-main-tests/test-derive-tests/test-error-tests/test-fun-tests/test-funshow-tests/test-generic-tests/test-io-tests/test-most-tests/test-operators-tests/test-tiers-tests/test-types-tests/test-stats+TAGS+tags+test/main+test/derive+test/error+test/fun+test/funshow+test/generic+test/io+test/most+test/operators+test/tiers+test/types+test/stats bench/tiers bench/tiers-colistable bench/tiers-colistable.hs bench/tiers-listsofpairs bench/tiers-listsofpairs.hs+bench/tiers-default+bench/tiers-default.hs bench/tiers-funlistable bench/tiers-funlistable.hs bench/tiers-mixed bench/tiers-mixed.hs+bench/tiers-4cases+bench/tiers-4cases.hs eg/test-sort eg/test-bool+eg/test-float eg/test-list eg/higher-order eg/overflow
.travis.yml view
@@ -22,6 +22,7 @@ - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH - ghc --version - cabal --version+- haddock --version # Download and unpack the stack executable # "Once Travis whitelists the stack.dev files," simply include stack in the # addons section. -- https://docs.haskellstack.org/en/stable/travis_ci/@@ -68,6 +69,7 @@     - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH     - ghc --version     - cabal --version+    - haddock --version     script:     - make && make test     - make haddock HADDOCKFLAGS=@@ -80,6 +82,7 @@     - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH     - ghc --version     - cabal --version+    - haddock --version     script:     - make && make test     - make haddock HADDOCKFLAGS=@@ -92,6 +95,7 @@     - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH     - ghc --version     - cabal --version+    - haddock --version     script:     - make && make test     - make haddock HADDOCKFLAGS=
Makefile view
@@ -3,90 +3,91 @@ # Copyright:   (c) 2015-2018 Rudy Matela # License:     3-Clause BSD  (see the file LICENSE) # Maintainer:  Rudy Matela <rudy@matela.com.br>-TESTS = tests/test-main      \-        tests/test-derive    \-        tests/test-error     \-        tests/test-fun       \-        tests/test-funshow   \-        tests/test-generic   \-        tests/test-io        \-        tests/test-operators \-        tests/test-tiers     \-        tests/test-stats     \-        tests/test-types+TESTS = test/main      \+        test/derive    \+        test/error     \+        test/fun       \+        test/funshow   \+        test/generic   \+        test/io        \+        test/operators \+        test/tiers     \+        test/stats     \+        test/types EGS = \ 	eg/overflow \ 	eg/higher-order \ 	eg/test-bool \+	eg/test-float \ 	eg/test-list \ 	eg/test-sort BENCHS = \-	bench/tiers-colistable \-	bench/tiers-funlistable \-	bench/tiers-listsofpairs \-	bench/tiers-mixed \+	bench/tiers-default \+	bench/tiers-4cases \ 	bench/tiers-GHCIMPORTDIRS = src:tests-# -dynamic is needed only for src/Test/LeanCheck/Derive.hs and tests/test-derive.hs+GHCIMPORTDIRS = src:test+# -dynamic is needed only for src/Test/LeanCheck/Derive.hs and test/derive.hs GHCFLAGS = -O2 $(shell grep -q "Arch Linux" /etc/lsb-release && echo -dynamic) HADDOCKFLAGS = --no-print-missing-docs-HUGSIMPORTDIRS = .:./src:./tests:./etc/hugs-backports:/usr/lib/hugs/packages/*+HUGSIMPORTDIRS = .:./src:./test:./etc/hugs-backports:/usr/lib/hugs/packages/* HUGSFLAGS = -98 -h32M  all: mk/toplibs  all-all: mk/All.o -test: $(patsubst %,%.test,$(TESTS)) diff-test+test: $(patsubst %,%.run,$(TESTS)) diff-test test-sdist  diff-test: diff-test-tiers diff-test-funtiers $(patsubst %,%.diff-test,$(EGS))  update-diff-test: update-diff-test-tiers update-diff-test-funtiers $(patsubst %,%.update-diff-test,$(EGS)) -%.test: %+%.run: % 	./$<  eg/%.diff-test: eg/%-	./$< | diff -rud tests/diff/$<.out -+	./$< | diff -rud test/diff/$<.out -  eg/%.update-diff-test: eg/%-	./$< >           tests/diff/$<.out+	./$< >           test/diff/$<.out  # 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. eg/test-list.diff-test: eg/test-list-	./$< | sed -e "s/Exception '[^']*'/Exception '...'/" | diff -rud tests/diff/$<.out -+	./$< | sed -e "s/Exception '[^']*'/Exception '...'/" | diff -rud test/diff/$<.out -  eg/test-list.update-diff-test: eg/test-list-	./$< | sed -e "s/Exception '[^']*'/Exception '...'/" >           tests/diff/$<.out+	./$< | sed -e "s/Exception '[^']*'/Exception '...'/" >           test/diff/$<.out  clean: clean-hi-o clean-haddock-	rm -f bench/tiers-colistable.hs-	rm -f bench/tiers-listsofpairs.hs-	rm -f bench/tiers-funlistable.hs-	rm -f bench/tiers-mixed.hs+	rm -f bench/tiers-default.hs+	rm -f bench/tiers-4cases.hs 	rm -f $(TESTS) $(BENCHS) $(EGS) mk/toplibs +full-clean: clean+	rm -rf .stack-work+	rm -f tags TAGS+ ghci: mk/All.ghci  hugs: src/Test/LeanCheck.hugs  hugs-test: \-  tests/test-fun.runhugs \-  tests/test-io.runhugs \-  tests/test-operators.runhugs \-  tests/test-stats.runhugs \-  tests/test-tiers.runhugs \-  tests/test-main.runhugs-# tests/test-error.runhugs    # TODO: make this pass-# tests/test-funshow.runhugs  # TODO: make this pass-# tests/test-types.runhugs    # TODO: make this pass+  test/fun.runhugs \+  test/io.runhugs \+  test/operators.runhugs \+  test/stats.runhugs \+  test/tiers.runhugs \+  test/main.runhugs+# test/error.runhugs    # TODO: make this pass+# test/funshow.runhugs  # TODO: make this pass+# test/types.runhugs    # TODO: make this pass  install: 	@echo "use \`cabal install' instead"  test-sdist:-	./tests/test-sdist+	./test/sdist  test-via-cabal: 	cabal test@@ -130,195 +131,199 @@  diff-test-tiers: bench/tiers 	# simple types-	./bench/tiers "()"               | diff -rud tests/diff/tiers.out             --	./bench/tiers "Int"              | diff -rud tests/diff/tiers-Int.out         --	./bench/tiers "Nat"              | diff -rud tests/diff/tiers-Nat.out         --	./bench/tiers "Integer"          | diff -rud tests/diff/tiers-Integer.out     --	./bench/tiers "Bool"             | diff -rud tests/diff/tiers-Bool.out        --	./bench/tiers "Char"             | diff -rud tests/diff/tiers-Char.out        -+	./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    - 	# list s-	./bench/tiers "[()]"             | diff -rud tests/diff/tiers-Us.out          --	./bench/tiers "[Int]"          6 | diff -rud tests/diff/tiers-Ints.out        --	./bench/tiers "[Nat]"          6 | diff -rud tests/diff/tiers-Nats.out        --	./bench/tiers "[Bool]"         6 | diff -rud tests/diff/tiers-Bools.out       --	./bench/tiers "String"         6 | diff -rud tests/diff/tiers-String.out      -+	./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      - 	# pairs-	./bench/tiers "(Int,Int)"        | diff -rud tests/diff/tiers-Int,Int.out     --	./bench/tiers "(Nat,Nat)"        | diff -rud tests/diff/tiers-Nat,Nat.out     --	./bench/tiers "(Int,Int,Int)"  6 | diff -rud tests/diff/tiers-Int,Int,Int.out --	./bench/tiers "(Nat,Nat,Nat)"  6 | diff -rud tests/diff/tiers-Nat,Nat,Nat.out -+	./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 - 	# lists & pairs-	./bench/tiers "[((),())]"        | diff -rud tests/diff/tiers-U,Us.out        --	./bench/tiers "([()],[()])"      | diff -rud tests/diff/tiers-Us,Us.out       -+	./bench/tiers "[((),())]"        | diff -rud test/diff/tiers-U,Us.out        -+	./bench/tiers "([()],[()])"      | diff -rud test/diff/tiers-Us,Us.out       - 	# special lists-	./bench/tiers "Set Bool"         | diff -rud tests/diff/tiers-SetBool.out     --	./bench/tiers "Set ()"           | diff -rud tests/diff/tiers-SetU.out        --	./bench/tiers "Set Nat"          | diff -rud tests/diff/tiers-SetNat.out      --	./bench/tiers "Set Nat2"         | diff -rud tests/diff/tiers-SetNat2.out     --	./bench/tiers "Set Nat3"         | diff -rud tests/diff/tiers-SetNat3.out     --	./bench/tiers "Bag Bool"         | diff -rud tests/diff/tiers-BagBool.out     --	./bench/tiers "Bag ()"           | diff -rud tests/diff/tiers-BagU.out        --	./bench/tiers "Bag Nat"          | diff -rud tests/diff/tiers-BagNat.out      --	./bench/tiers "Bag Nat2"         | diff -rud tests/diff/tiers-BagNat2.out     --	./bench/tiers "Bag Nat3"         | diff -rud tests/diff/tiers-BagNat3.out     --	./bench/tiers "NoDup Bool"       | diff -rud tests/diff/tiers-NoDupBool.out   --	./bench/tiers "NoDup ()"         | diff -rud tests/diff/tiers-NoDupU.out      --	./bench/tiers "NoDup Nat"        | diff -rud tests/diff/tiers-NoDupNat.out    --	./bench/tiers "NoDup Nat2"       | diff -rud tests/diff/tiers-NoDupNat2.out   --	./bench/tiers "NoDup Nat3"       | diff -rud tests/diff/tiers-NoDupNat3.out   --	./bench/tiers "Map Bool Bool"    | diff -rud tests/diff/tiers-MapBoolBool.out --	./bench/tiers "Map () ()"        | diff -rud tests/diff/tiers-MapUU.out       --	./bench/tiers "Map Nat Nat"      | diff -rud tests/diff/tiers-MapNatNat.out   --	./bench/tiers "Map Nat2 Nat2"    | diff -rud tests/diff/tiers-MapNat2Nat2.out --	./bench/tiers "Map Nat3 Nat3"    | diff -rud tests/diff/tiers-MapNat3Nat3.out -+	./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 - 	# extreme integers-	./bench/tiers "X Int4"           | diff -rud tests/diff/tiers-XInt4.out       --	./bench/tiers "X Word4"          | diff -rud tests/diff/tiers-XWord4.out      --	./bench/tiers "X Nat7"           | diff -rud tests/diff/tiers-XNat7.out       --	./bench/tiers "Xs Int4"          | diff -rud tests/diff/tiers-XsInt4.out      --	./bench/tiers "Xs Word4"         | diff -rud tests/diff/tiers-XsWord4.out     --	./bench/tiers "Xs Nat7"          | diff -rud tests/diff/tiers-XsNat7.out      -+	./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      -  update-diff-test-tiers: bench/tiers 	# simple types-	./bench/tiers "()"               > tests/diff/tiers.out-	./bench/tiers "Int"              > tests/diff/tiers-Int.out-	./bench/tiers "Nat"              > tests/diff/tiers-Nat.out-	./bench/tiers "Integer"          > tests/diff/tiers-Integer.out-	./bench/tiers "Bool"             > tests/diff/tiers-Bool.out-	./bench/tiers "Char"             > tests/diff/tiers-Char.out+	./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 	# lists-	./bench/tiers "[()]"             > tests/diff/tiers-Us.out-	./bench/tiers "[Int]"          6 > tests/diff/tiers-Ints.out-	./bench/tiers "[Nat]"          6 > tests/diff/tiers-Nats.out-	./bench/tiers "[Bool]"         6 > tests/diff/tiers-Bools.out-	./bench/tiers "String"         6 > tests/diff/tiers-String.out+	./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 	# pairs-	./bench/tiers "(Int,Int)"        > tests/diff/tiers-Int,Int.out-	./bench/tiers "(Nat,Nat)"        > tests/diff/tiers-Nat,Nat.out-	./bench/tiers "(Int,Int,Int)"  6 > tests/diff/tiers-Int,Int,Int.out-	./bench/tiers "(Nat,Nat,Nat)"  6 > tests/diff/tiers-Nat,Nat,Nat.out+	./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 	# lists & pairs-	./bench/tiers "[((),())]"        > tests/diff/tiers-U,Us.out-	./bench/tiers "([()],[()])"      > tests/diff/tiers-Us,Us.out+	./bench/tiers "[((),())]"        > test/diff/tiers-U,Us.out+	./bench/tiers "([()],[()])"      > test/diff/tiers-Us,Us.out 	# special lists-	./bench/tiers "Set Bool"         > tests/diff/tiers-SetBool.out-	./bench/tiers "Set ()"           > tests/diff/tiers-SetU.out-	./bench/tiers "Set Nat"          > tests/diff/tiers-SetNat.out-	./bench/tiers "Set Nat2"         > tests/diff/tiers-SetNat2.out-	./bench/tiers "Set Nat3"         > tests/diff/tiers-SetNat3.out-	./bench/tiers "Bag Bool"         > tests/diff/tiers-BagBool.out-	./bench/tiers "Bag ()"           > tests/diff/tiers-BagU.out-	./bench/tiers "Bag Nat"          > tests/diff/tiers-BagNat.out-	./bench/tiers "Bag Nat2"         > tests/diff/tiers-BagNat2.out-	./bench/tiers "Bag Nat3"         > tests/diff/tiers-BagNat3.out-	./bench/tiers "NoDup Bool"       > tests/diff/tiers-NoDupBool.out-	./bench/tiers "NoDup ()"         > tests/diff/tiers-NoDupU.out-	./bench/tiers "NoDup Nat"        > tests/diff/tiers-NoDupNat.out-	./bench/tiers "NoDup Nat2"       > tests/diff/tiers-NoDupNat2.out-	./bench/tiers "NoDup Nat3"       > tests/diff/tiers-NoDupNat3.out-	./bench/tiers "Map Bool Bool"    > tests/diff/tiers-MapBoolBool.out-	./bench/tiers "Map () ()"        > tests/diff/tiers-MapUU.out-	./bench/tiers "Map Nat Nat"      > tests/diff/tiers-MapNatNat.out-	./bench/tiers "Map Nat2 Nat2"    > tests/diff/tiers-MapNat2Nat2.out-	./bench/tiers "Map Nat3 Nat3"    > tests/diff/tiers-MapNat3Nat3.out+	./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 	# extreme integers-	./bench/tiers "X Int4"           > tests/diff/tiers-XInt4.out-	./bench/tiers "X Word4"          > tests/diff/tiers-XWord4.out-	./bench/tiers "X Nat7"           > tests/diff/tiers-XNat7.out-	./bench/tiers "Xs Int4"          > tests/diff/tiers-XsInt4.out-	./bench/tiers "Xs Word4"         > tests/diff/tiers-XsWord4.out-	./bench/tiers "Xs Nat7"          > tests/diff/tiers-XsNat7.out+	./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 -prepare-depend: bench/tiers-listsofpairs.hs \-                bench/tiers-colistable.hs \-                bench/tiers-funlistable.hs \-                bench/tiers-mixed.hs+prepare-depend: bench/tiers-default.hs \+                bench/tiers-4cases.hs  prepare-depend-and-depend: prepare-depend 	make depend  TLF = "import\ Test.LeanCheck.Function" -bench/tiers-listsofpairs.hs: bench/tiers.hs-	sed -e "s/$(TLF)$$/$(TLF).Listable.ListsOfPairs\n$(TLF).Show/" $< > $@--bench/tiers-colistable.hs: bench/tiers.hs-	sed -e "s/$(TLF)$$/$(TLF).Listable.CoListable\n$(TLF).Show/" $< > $@--bench/tiers-funlistable.hs: bench/tiers.hs-	sed -e "s/$(TLF)$$/$(TLF).Listable.FunListable\n$(TLF).Show/" $< > $@--bench/tiers-mixed.hs: bench/tiers.hs-	sed -e "s/$(TLF)$$/$(TLF).Listable.Mixed\n$(TLF).Show/" $< > $@--bench/tiers-colistable:   bench/tiers-colistable.hs   src/Test/LeanCheck/Function/Listable/CoListable.hs+bench/tiers-default.hs: bench/tiers.hs+	cp $< $@ -bench/tiers-listsofpairs: bench/tiers-listsofpairs.hs src/Test/LeanCheck/Function/Listable/ListsOfPairs.hs+bench/tiers-4cases.hs: bench/tiers.hs+	sed -e "s/$(TLF)$$/$(TLF).Listable\n$(TLF).Show.FourCases/" $< > $@ -bench/tiers-funlistable:  bench/tiers-funlistable.hs  src/Test/LeanCheck/Function/Listable/FunListable.hs+bench/tiers-default: bench/tiers-default.hs src/Test/LeanCheck/Function/Listable/ListsOfPairs.hs -bench/tiers-mixed:        bench/tiers-mixed.hs        src/Test/LeanCheck/Function/Listable/Mixed.hs+bench/tiers-4cases: bench/tiers-4cases.hs -diff-test-funtiers: bench/tiers-listsofpairs.diff-test \-                    bench/tiers-funlistable.diff-test \-                    bench/tiers-colistable.diff-test \-                    bench/tiers-mixed.diff-test+diff-test-funtiers: bench/tiers-default.diff-test \+                    bench/tiers-4cases.diff-test -update-diff-test-funtiers: bench/tiers-listsofpairs.update-diff-test \-                           bench/tiers-funlistable.update-diff-test \-                           bench/tiers-colistable.update-diff-test \-                           bench/tiers-mixed.update-diff-test+update-diff-test-funtiers: bench/tiers-default.update-diff-test \+                           bench/tiers-4cases.update-diff-test  bench/tiers-%.diff-test: bench/tiers-% 	# functions-	$< "()->()"           | diff -rud tests/diff/tiers-$*-U-U.out         --	$< "Bool->Bool"       | diff -rud tests/diff/tiers-$*-Bool-Bool.out   --	$< "Bool->()"         | diff -rud tests/diff/tiers-$*-Bool-U.out      --	$< "()->Bool"         | diff -rud tests/diff/tiers-$*-U-Bool.out      --	$< "Int->Int"       6 | diff -rud tests/diff/tiers-$*-Int-Int.out     --	$< "Nat->Nat"       6 | diff -rud tests/diff/tiers-$*-Nat-Nat.out     --	$< "()->Nat"        6 | diff -rud tests/diff/tiers-$*-U-Nat.out       --	$< "Nat->()"        6 | diff -rud tests/diff/tiers-$*-Nat-U.out       --	$< "Int->Int->Int"  4 | diff -rud tests/diff/tiers-$*-Int-Int-Int.out --	$< "Nat->Nat->Nat"  4 | diff -rud tests/diff/tiers-$*-Nat-Nat-Nat.out --	$< "(Nat,Nat)->Nat" 4 | diff -rud tests/diff/tiers-$*-Nat,Nat-Nat.out --	$< "Maybe Bool->Bool" | diff -rud tests/diff/tiers-$*-MBool-Bool.out  --	$< "Bool->Maybe Bool" | diff -rud tests/diff/tiers-$*-Bool-MBool.out  --	$< "Maybe Bool->Maybe Bool" | diff -rud tests/diff/tiers-$*-MBool-MBool.out -+	$< "()->()"           | 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 -+	# 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 -+	# 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 - 	# functions of lists-	$< "[Bool]->[Bool]" 4 | diff -rud tests/diff/tiers-$*-Bools-Bools.out --	$< "[Nat]->[Nat]"   4 | diff -rud tests/diff/tiers-$*-Nats-Nats.out   --	$< "[Int]->[Int]"   4 | diff -rud tests/diff/tiers-$*-Ints-Ints.out   -+	$< "[Bool]->[Bool]" 6 | 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   - 	# more functions-	$< "Nat2->Nat2"       | diff -rud tests/diff/tiers-$*-Nat2-Nat2.out   --	$< "Nat2->Nat3"       | diff -rud tests/diff/tiers-$*-Nat2-Nat3.out   --	$< "Nat3->Nat2"       | diff -rud tests/diff/tiers-$*-Nat3-Nat2.out   --	$< "Nat3->Nat3"       | diff -rud tests/diff/tiers-$*-Nat3-Nat3.out   -+	$< "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   -  bench/tiers-%.update-diff-test: bench/tiers-% 	# functions-	$< "()->()"           > tests/diff/tiers-$*-U-U.out-	$< "Bool->Bool"       > tests/diff/tiers-$*-Bool-Bool.out-	$< "Bool->()"         > tests/diff/tiers-$*-Bool-U.out-	$< "()->Bool"         > tests/diff/tiers-$*-U-Bool.out-	$< "Int->Int"       6 > tests/diff/tiers-$*-Int-Int.out-	$< "Nat->Nat"       6 > tests/diff/tiers-$*-Nat-Nat.out-	$< "Nat->()"        6 > tests/diff/tiers-$*-Nat-U.out-	$< "()->Nat"        6 > tests/diff/tiers-$*-U-Nat.out-	$< "Int->Int->Int"  4 > tests/diff/tiers-$*-Int-Int-Int.out-	$< "Nat->Nat->Nat"  4 > tests/diff/tiers-$*-Nat-Nat-Nat.out-	$< "(Nat,Nat)->Nat" 4 > tests/diff/tiers-$*-Nat,Nat-Nat.out-	$< "Maybe Bool->Bool" > tests/diff/tiers-$*-MBool-Bool.out-	$< "Bool->Maybe Bool" > tests/diff/tiers-$*-Bool-MBool.out-	$< "Maybe Bool->Maybe Bool" > tests/diff/tiers-$*-MBool-MBool.out+	$< "()->()"           > 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+	# 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+	# 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 	# functions of lists-	$< "[()]->[()]"     4 > tests/diff/tiers-$*-Us-Us.out-	$< "[Bool]->[Bool]" 4 > tests/diff/tiers-$*-Bools-Bools.out-	$< "[Nat]->[Nat]"   4 > tests/diff/tiers-$*-Nats-Nats.out-	$< "[Int]->[Int]"   4 > tests/diff/tiers-$*-Ints-Ints.out+	$< "[()]->[()]"     6 > test/diff/tiers-$*-Us-Us.out+	$< "[Bool]->[Bool]" 6 > test/diff/tiers-$*-Bools-Bools.out+	$< "[Nat]->[Nat]"   6 > test/diff/tiers-$*-Nats-Nats.out+	$< "[Int]->[Int]"   6 > test/diff/tiers-$*-Ints-Ints.out 	# more functions-	$< "Nat2->Nat2"       > tests/diff/tiers-$*-Nat2-Nat2.out-	$< "Nat2->Nat3"       > tests/diff/tiers-$*-Nat2-Nat3.out-	$< "Nat3->Nat2"       > tests/diff/tiers-$*-Nat3-Nat2.out-	$< "Nat3->Nat3"       > tests/diff/tiers-$*-Nat3-Nat3.out+	$< "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
TODO.md view
@@ -18,50 +18,8 @@ * on data-invariant.md, write missing section;  + other improvements ------------------  * implement `conditionStatsT` (see `classStatsT`)---later--------* implement stub `Test.LeanCheck.Function.*` modules;--* somehow, improve the improve the enumeration of `Char`s:--   list = [ ['a'], ['b','c'], ['d','e','f'], ... ]-      ||| [ [' '], ['\n'] ]-      ||| [ ['0'], ['1'], ['2'], ...]-      ||| ...-     where-     ||| is something that interleaves tiers of different lists...--* further improve showing of functions, indead of showing:--    \p q -> case (p,q) of-            (False,False) -> False-            (False,True)  -> False-            (True,False)  -> True-            (True,True)   -> False--  actually show just:--    \p q -> case (p,q) of-            (True,False)  -> True-            _             -> False--  Some thinking may have to be done for:--    \x y -> case (x,y) of-            (0,0) -> 0-            (0,1) -> 0-            (1,1) -> 1-            (1,0) -> 1-            (0,2) -> 0-            (1,1) -> 1-            (2,0) -> 1-            ...--  Where: `const (const 1) ->/ [(1,const 0)]`.
bench/tiers.hs view
@@ -83,6 +83,9 @@     "Integer"          -> put t n (u :: Integer              )     "Bool"             -> put t n (u :: Bool                 )     "Char"             -> put t n (u :: Char                 )+    "Float"            -> put t n (u :: Float                )+    "Double"           -> put t n (u :: Double               )+    "Rational"         -> put t n (u :: Rational             )     -- lists     "[()]"             -> put t n (u :: [()]                 )     "[Int]"            -> put t n (u :: [Int]                )@@ -135,6 +138,12 @@     "Nat2->Nat3"       -> put t n (u :: Nat2 -> Nat3         )     "Nat3->Nat2"       -> put t n (u :: Nat3 -> Nat2         )     "Nat3->Nat3"       -> put t n (u :: Nat3 -> Nat3         )+    -- functions with mixed arguments+    "Bool->Int->Bool"  -> put t n (u :: Bool -> Int -> Bool  )+    "Int->Bool->Bool"  -> put t n (u :: Int -> Bool -> Bool  )+    -- functions with 3 arguments+    "Int->Int->Int->Int"     -> put t n (u :: Int -> Int -> Int -> Int)+    "Bool->Bool->Bool->Bool" -> put t n (u :: Bool -> Bool -> Bool -> Bool)     -- special lists     "Set Bool"         -> put t n (u :: Set Bool             )     "Set ()"           -> put t n (u :: Set ()               )
changelog.md view
@@ -1,6 +1,21 @@ Changelog for LeanCheck ======================= +v0.8.0+------++* export `tiersFractional` from `Core` and main module;+* improve `Listable` instance for `Float`s and `Double`s;+* improve `Show` instance for functions;+* improve Haddock documentation;+* remove experimental function enumeration modules,+  in favour of the working `ListsOfPairs` enumeration;+* add special `String` and `Char` types to `Utils.Types`;+* fix bug in the `Natural` type of the `Utils.Types` modules;+* force non-negativity in `Natural` and `Nat` types from `Utils.Types`;+* rename some exported symbols in the `ShowFunction` module;+* improve tests of LeanCheck itself.+  v0.7.7 ------
eg/higher-order.hs view
@@ -3,18 +3,18 @@  type A = Int -prop_foldlFoldr :: (A -> A -> A) -> A -> [A] -> Bool-prop_foldlFoldr f z xs  =  foldr f z xs == foldl f z xs+prop_foldlr :: (A -> A -> A) -> A -> [A] -> Bool+prop_foldlr f z xs  =  foldr f z xs == foldl f z xs -prop_foldl1Foldr1Reverse :: (A -> A -> A) -> [A] -> Bool-prop_foldl1Foldr1Reverse f xs  =-  not (null xs) ==> foldl1 f xs ==  foldr1 f (reverse xs)+-- correct version of the property above+prop_foldlr' :: (A -> A -> A) -> A -> [A] -> Bool+prop_foldlr' f z xs  =  foldl (flip f) z (reverse xs) == foldr f z xs  prop_mapFilter :: (A -> A) -> (A -> Bool) -> [A] -> Bool prop_mapFilter f p xs  =  filter p (map f xs) == map f (filter p xs)  main :: IO () main = do-  check prop_foldlFoldr-  check prop_foldl1Foldr1Reverse+  check prop_foldlr+  check prop_foldlr'   check prop_mapFilter
+ eg/test-float.hs view
@@ -0,0 +1,24 @@+-- test-list.hs -- example program, testing Float using LeanCheck+--+-- Copyright (c) 2017-2018 Rudy Matela.+-- Distributed under the 3-Clause BSD licence (see the file LICENSE).+import Test.LeanCheck++main :: IO ()+main = do+  -- identities on floats+  -- some of these properties fail due to rounding errors+  checkFor n $ \x y -> not (isInfinite y) ==> x - y + y == (x::Float)+  checkFor n $ \x y -> not (isInfinite y) ==> x + y - y == (x::Float)+  checkFor n $ \x y -> y /= 0 && not (isInfinite y) ==> x * y / y == (x::Float)+  checkFor n $ \x y -> y /= 0 && not (isInfinite y) ==> x / y * y == (x::Float)+  checkFor n $ \x -> x + x == x * (2::Float)+  checkFor n $ \x -> x + x + x == x * (3::Float)+  checkFor n $ \x -> x + x + x + x == x * (4::Float)+  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)+  where+  n = 10000
leancheck.cabal view
@@ -11,7 +11,7 @@ -- this cabal file too complicated.  -- Rudy  name:                leancheck-version:             0.7.7+version:             0.8.0 synopsis:            Enumerative property-based testing description:   LeanCheck is a simple enumerative property-based testing library.@@ -48,6 +48,7 @@                   , eg/higher-order.hs                   , eg/overflow.hs                   , eg/test-bool.hs+                  , eg/test-float.hs                   , eg/test-list.hs                   , eg/test-sort.hs                   , etc/hugs-backports/Data/Function.hs@@ -58,9 +59,9 @@                   , mk/haddock-i                   , mk/haskell.mk                   , stack.yaml-                  , tests/diff/*.out-                  , tests/diff/eg/*.out-                  , tests/test-sdist+                  , test/diff/*.out+                  , test/diff/eg/*.out+                  , test/sdist tested-with: GHC==8.4, GHC==8.2, GHC==8.0, GHC==7.10, GHC==7.8, GHC==7.6, GHC==7.4  @@ -71,7 +72,7 @@ source-repository this   type:            git   location:        https://github.com/rudymatela/leancheck-  tag:             v0.7.7+  tag:             v0.8.0  library   exposed-modules: Test.LeanCheck@@ -90,14 +91,11 @@                  , Test.LeanCheck.Function                  , Test.LeanCheck.Function.Eq                  , Test.LeanCheck.Function.Show+                 , Test.LeanCheck.Function.Show.EightLines+                 , Test.LeanCheck.Function.Show.FourCases                  , Test.LeanCheck.Function.Listable                  , Test.LeanCheck.Function.Listable.ListsOfPairs-                 , Test.LeanCheck.Function.Listable.FunListable-                 , Test.LeanCheck.Function.Listable.CoListable-                 , Test.LeanCheck.Function.Listable.Periodic-                 , Test.LeanCheck.Function.Listable.Mixed                  , Test.LeanCheck.Function.ListsOfPairs-                 , Test.LeanCheck.Function.CoListable                  , Test.LeanCheck.Function.ShowFunction   hs-source-dirs:      src   build-depends:     base >= 4 && < 5, template-haskell@@ -107,57 +105,57 @@  test-suite main   type:                exitcode-stdio-1.0-  main-is:             test-main.hs+  main-is:             main.hs   other-modules:       Test-  hs-source-dirs:      tests+  hs-source-dirs:      test   build-depends:       base >= 4 && < 5, leancheck   default-language:    Haskell2010  test-suite types   type:                exitcode-stdio-1.0-  main-is:             test-types.hs+  main-is:             types.hs   other-modules:       Test-  hs-source-dirs:      tests+  hs-source-dirs:      test   build-depends:       base >= 4 && < 5, leancheck   default-language:    Haskell2010  test-suite tiers   type:                exitcode-stdio-1.0-  main-is:             test-tiers.hs+  main-is:             tiers.hs   other-modules:       Test-  hs-source-dirs:      tests+  hs-source-dirs:      test   build-depends:       base >= 4 && < 5, leancheck   default-language:    Haskell2010  test-suite operators   type:                exitcode-stdio-1.0-  main-is:             test-operators.hs+  main-is:             operators.hs   other-modules:       Test-  hs-source-dirs:      tests+  hs-source-dirs:      test   build-depends:       base >= 4 && < 5, leancheck   default-language:    Haskell2010  test-suite derive   type:                exitcode-stdio-1.0-  main-is:             test-derive.hs+  main-is:             derive.hs   other-modules:       Test-  hs-source-dirs:      tests+  hs-source-dirs:      test   build-depends:       base >= 4 && < 5, leancheck   default-language:    Haskell2010  test-suite error   type:                exitcode-stdio-1.0-  main-is:             test-error.hs+  main-is:             error.hs   other-modules:       Test-  hs-source-dirs:      tests+  hs-source-dirs:      test   build-depends:       base >= 4 && < 5, leancheck   default-language:    Haskell2010  test-suite generic   type:                exitcode-stdio-1.0-  main-is:             test-generic.hs+  main-is:             generic.hs   other-modules:       Test-  hs-source-dirs:      tests+  hs-source-dirs:      test   build-depends:       base >= 4 && < 5, leancheck   if impl(ghc < 7.6)     build-depends:     ghc-prim@@ -165,32 +163,32 @@  test-suite io   type:                exitcode-stdio-1.0-  main-is:             test-io.hs+  main-is:             io.hs   other-modules:       Test-  hs-source-dirs:      tests+  hs-source-dirs:      test   build-depends:       base >= 4 && < 5, leancheck   default-language:    Haskell2010  test-suite fun   type:                exitcode-stdio-1.0-  main-is:             test-fun.hs+  main-is:             fun.hs   other-modules:       Test-  hs-source-dirs:      tests+  hs-source-dirs:      test   build-depends:       base >= 4 && < 5, leancheck   default-language:    Haskell2010  test-suite funshow   type:                exitcode-stdio-1.0-  main-is:             test-funshow.hs+  main-is:             funshow.hs   other-modules:       Test-  hs-source-dirs:      tests+  hs-source-dirs:      test   build-depends:       base >= 4 && < 5, leancheck   default-language:    Haskell2010  test-suite stats   type:                exitcode-stdio-1.0-  main-is:             test-stats.hs+  main-is:             stats.hs   other-modules:       Test-  hs-source-dirs:      tests+  hs-source-dirs:      test   build-depends:       base >= 4 && < 5, leancheck   default-language:    Haskell2010
mk/All.hs view
@@ -5,6 +5,7 @@   , module Test.LeanCheck.Utils   , module Test.LeanCheck.Tiers   , module Test.LeanCheck.Generic+  , module Test.LeanCheck.Function   ) where @@ -14,3 +15,4 @@ import Test.LeanCheck.Utils import Test.LeanCheck.Tiers import Test.LeanCheck.Generic+import Test.LeanCheck.Function
mk/depend.mk view
@@ -1,97 +1,57 @@-bench/tiers: \-  bench/tiers.hs \-  mk/toplibs-bench/tiers-colistable: \-  bench/tiers-colistable.hs \+bench/tiers-4cases: \+  bench/tiers-4cases.hs \   mk/toplibs-bench/tiers-colistable.o: \+bench/tiers-4cases.o: \   src/Test/LeanCheck/Utils/Types.hs \-  src/Test/LeanCheck/Utils/TypeBinding.hs \-  src/Test/LeanCheck/Utils.hs \-  src/Test/LeanCheck/Utils/Operators.hs \   src/Test/LeanCheck/Tiers.hs \   src/Test/LeanCheck/Stats.hs \   src/Test/LeanCheck.hs \   src/Test/LeanCheck/IO.hs \-  src/Test/LeanCheck/Function/Show.hs \   src/Test/LeanCheck/Function/ShowFunction.hs \-  src/Test/LeanCheck/Function/Listable/CoListable.hs \-  src/Test/LeanCheck/Function/Eq.hs \-  src/Test/LeanCheck/Function/CoListable.hs \-  src/Test/LeanCheck/Error.hs \-  src/Test/LeanCheck/Derive.hs \-  src/Test/LeanCheck/Core.hs \-  src/Test/LeanCheck/Basic.hs \-  bench/tiers-colistable.hs-bench/tiers-funlistable: \-  bench/tiers-funlistable.hs \-  mk/toplibs-bench/tiers-funlistable.o: \-  src/Test/LeanCheck/Utils/Types.hs \-  src/Test/LeanCheck/Utils/TypeBinding.hs \-  src/Test/LeanCheck/Utils.hs \-  src/Test/LeanCheck/Utils/Operators.hs \-  src/Test/LeanCheck/Tiers.hs \-  src/Test/LeanCheck/Stats.hs \-  src/Test/LeanCheck.hs \-  src/Test/LeanCheck/IO.hs \-  src/Test/LeanCheck/Function/Show.hs \-  src/Test/LeanCheck/Function/ShowFunction.hs \-  src/Test/LeanCheck/Function/Listable/FunListable.hs \-  src/Test/LeanCheck/Function/Eq.hs \-  src/Test/LeanCheck/Error.hs \-  src/Test/LeanCheck/Derive.hs \-  src/Test/LeanCheck/Core.hs \-  src/Test/LeanCheck/Basic.hs \-  bench/tiers-funlistable.hs-bench/tiers-listsofpairs: \-  bench/tiers-listsofpairs.hs \-  mk/toplibs-bench/tiers-listsofpairs.o: \-  src/Test/LeanCheck/Utils/Types.hs \-  src/Test/LeanCheck/Tiers.hs \-  src/Test/LeanCheck.hs \-  src/Test/LeanCheck/IO.hs \-  src/Test/LeanCheck/Function/Show.hs \-  src/Test/LeanCheck/Function/ShowFunction.hs \+  src/Test/LeanCheck/Function/Show/FourCases.hs \   src/Test/LeanCheck/Function/ListsOfPairs.hs \+  src/Test/LeanCheck/Function/Listable.hs \   src/Test/LeanCheck/Function/Listable/ListsOfPairs.hs \   src/Test/LeanCheck/Function/Eq.hs \   src/Test/LeanCheck/Error.hs \   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs \-  bench/tiers-listsofpairs.hs-bench/tiers-mixed: \-  bench/tiers-mixed.hs \+  bench/tiers-4cases.hs+bench/tiers: \+  bench/tiers.hs \   mk/toplibs-bench/tiers-mixed.o: \+bench/tiers-default: \+  bench/tiers-default.hs \+  mk/toplibs+bench/tiers-default.o: \   src/Test/LeanCheck/Utils/Types.hs \-  src/Test/LeanCheck/Utils/TypeBinding.hs \-  src/Test/LeanCheck/Utils.hs \-  src/Test/LeanCheck/Utils/Operators.hs \   src/Test/LeanCheck/Tiers.hs \   src/Test/LeanCheck/Stats.hs \   src/Test/LeanCheck.hs \   src/Test/LeanCheck/IO.hs \   src/Test/LeanCheck/Function/Show.hs \   src/Test/LeanCheck/Function/ShowFunction.hs \+  src/Test/LeanCheck/Function/Show/EightLines.hs \+  src/Test/LeanCheck/Function.hs \   src/Test/LeanCheck/Function/ListsOfPairs.hs \-  src/Test/LeanCheck/Function/Listable/Mixed.hs \+  src/Test/LeanCheck/Function/Listable.hs \+  src/Test/LeanCheck/Function/Listable/ListsOfPairs.hs \   src/Test/LeanCheck/Function/Eq.hs \-  src/Test/LeanCheck/Function/CoListable.hs \   src/Test/LeanCheck/Error.hs \   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs \-  bench/tiers-mixed.hs+  bench/tiers-default.hs bench/tiers.o: \   src/Test/LeanCheck/Utils/Types.hs \   src/Test/LeanCheck/Tiers.hs \+  src/Test/LeanCheck/Stats.hs \   src/Test/LeanCheck.hs \   src/Test/LeanCheck/IO.hs \   src/Test/LeanCheck/Function/Show.hs \   src/Test/LeanCheck/Function/ShowFunction.hs \+  src/Test/LeanCheck/Function/Show/EightLines.hs \   src/Test/LeanCheck/Function.hs \   src/Test/LeanCheck/Function/ListsOfPairs.hs \   src/Test/LeanCheck/Function/Listable.hs \@@ -108,10 +68,12 @@ eg/higher-order.o: \   src/Test/LeanCheck/Utils/Types.hs \   src/Test/LeanCheck/Tiers.hs \+  src/Test/LeanCheck/Stats.hs \   src/Test/LeanCheck.hs \   src/Test/LeanCheck/IO.hs \   src/Test/LeanCheck/Function/Show.hs \   src/Test/LeanCheck/Function/ShowFunction.hs \+  src/Test/LeanCheck/Function/Show/EightLines.hs \   src/Test/LeanCheck/Function.hs \   src/Test/LeanCheck/Function/ListsOfPairs.hs \   src/Test/LeanCheck/Function/Listable.hs \@@ -151,6 +113,7 @@   src/Test/LeanCheck/IO.hs \   src/Test/LeanCheck/Function/Show.hs \   src/Test/LeanCheck/Function/ShowFunction.hs \+  src/Test/LeanCheck/Function/Show/EightLines.hs \   src/Test/LeanCheck/Function.hs \   src/Test/LeanCheck/Function/ListsOfPairs.hs \   src/Test/LeanCheck/Function/Listable.hs \@@ -160,6 +123,17 @@   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs \   eg/test-bool.hs+eg/test-float: \+  eg/test-float.hs \+  mk/toplibs+eg/test-float.o: \+  src/Test/LeanCheck/Tiers.hs \+  src/Test/LeanCheck.hs \+  src/Test/LeanCheck/IO.hs \+  src/Test/LeanCheck/Derive.hs \+  src/Test/LeanCheck/Core.hs \+  src/Test/LeanCheck/Basic.hs \+  eg/test-float.hs eg/test-list: \   eg/test-list.hs \   mk/toplibs@@ -194,6 +168,14 @@   src/Test/LeanCheck.hs \   src/Test/LeanCheck/IO.hs \   src/Test/LeanCheck/Generic.hs \+  src/Test/LeanCheck/Function/Show.hs \+  src/Test/LeanCheck/Function/ShowFunction.hs \+  src/Test/LeanCheck/Function/Show/EightLines.hs \+  src/Test/LeanCheck/Function.hs \+  src/Test/LeanCheck/Function/ListsOfPairs.hs \+  src/Test/LeanCheck/Function/Listable.hs \+  src/Test/LeanCheck/Function/Listable/ListsOfPairs.hs \+  src/Test/LeanCheck/Error.hs \   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs \@@ -210,6 +192,7 @@   src/Test/LeanCheck/Generic.hs \   src/Test/LeanCheck/Function/Show.hs \   src/Test/LeanCheck/Function/ShowFunction.hs \+  src/Test/LeanCheck/Function/Show/EightLines.hs \   src/Test/LeanCheck/Function.hs \   src/Test/LeanCheck/Function/ListsOfPairs.hs \   src/Test/LeanCheck/Function/Listable.hs \@@ -241,117 +224,83 @@   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs-src/Test/LeanCheck/Function/CoListable.o: \-  src/Test/LeanCheck/Utils/Types.hs \-  src/Test/LeanCheck/Utils/TypeBinding.hs \-  src/Test/LeanCheck/Utils.hs \-  src/Test/LeanCheck/Utils/Operators.hs \-  src/Test/LeanCheck/Tiers.hs \-  src/Test/LeanCheck/Stats.hs \-  src/Test/LeanCheck.hs \-  src/Test/LeanCheck/IO.hs \-  src/Test/LeanCheck/Function/CoListable.hs \-  src/Test/LeanCheck/Derive.hs \-  src/Test/LeanCheck/Core.hs \-  src/Test/LeanCheck/Basic.hs src/Test/LeanCheck/Function/Eq.o: \   src/Test/LeanCheck/Function/Eq.hs \   src/Test/LeanCheck/Core.hs-src/Test/LeanCheck/Function/Listable/CoListable.o: \-  src/Test/LeanCheck/Utils/Types.hs \-  src/Test/LeanCheck/Utils/TypeBinding.hs \-  src/Test/LeanCheck/Utils.hs \-  src/Test/LeanCheck/Utils/Operators.hs \+src/Test/LeanCheck/Function/Listable/ListsOfPairs.o: \   src/Test/LeanCheck/Tiers.hs \-  src/Test/LeanCheck/Stats.hs \   src/Test/LeanCheck.hs \   src/Test/LeanCheck/IO.hs \-  src/Test/LeanCheck/Function/Listable/CoListable.hs \-  src/Test/LeanCheck/Function/CoListable.hs \-  src/Test/LeanCheck/Derive.hs \-  src/Test/LeanCheck/Core.hs \-  src/Test/LeanCheck/Basic.hs-src/Test/LeanCheck/Function/Listable/FunListable.o: \-  src/Test/LeanCheck/Utils/Types.hs \-  src/Test/LeanCheck/Utils/TypeBinding.hs \-  src/Test/LeanCheck/Utils.hs \-  src/Test/LeanCheck/Utils/Operators.hs \-  src/Test/LeanCheck/Tiers.hs \-  src/Test/LeanCheck/Stats.hs \-  src/Test/LeanCheck.hs \-  src/Test/LeanCheck/IO.hs \-  src/Test/LeanCheck/Function/Listable/FunListable.hs \+  src/Test/LeanCheck/Function/ListsOfPairs.hs \+  src/Test/LeanCheck/Function/Listable/ListsOfPairs.hs \   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs-src/Test/LeanCheck/Function/Listable/ListsOfPairs.o: \+src/Test/LeanCheck/Function/Listable.o: \   src/Test/LeanCheck/Tiers.hs \   src/Test/LeanCheck.hs \   src/Test/LeanCheck/IO.hs \   src/Test/LeanCheck/Function/ListsOfPairs.hs \+  src/Test/LeanCheck/Function/Listable.hs \   src/Test/LeanCheck/Function/Listable/ListsOfPairs.hs \   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs-src/Test/LeanCheck/Function/Listable/Mixed.o: \-  src/Test/LeanCheck/Utils/Types.hs \-  src/Test/LeanCheck/Utils/TypeBinding.hs \-  src/Test/LeanCheck/Utils.hs \-  src/Test/LeanCheck/Utils/Operators.hs \+src/Test/LeanCheck/Function/ListsOfPairs.o: \   src/Test/LeanCheck/Tiers.hs \-  src/Test/LeanCheck/Stats.hs \   src/Test/LeanCheck.hs \   src/Test/LeanCheck/IO.hs \   src/Test/LeanCheck/Function/ListsOfPairs.hs \-  src/Test/LeanCheck/Function/Listable/Mixed.hs \-  src/Test/LeanCheck/Function/CoListable.hs \   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs-src/Test/LeanCheck/Function/Listable.o: \+src/Test/LeanCheck/Function.o: \+  src/Test/LeanCheck/Utils/Types.hs \   src/Test/LeanCheck/Tiers.hs \+  src/Test/LeanCheck/Stats.hs \   src/Test/LeanCheck.hs \   src/Test/LeanCheck/IO.hs \+  src/Test/LeanCheck/Function/Show.hs \+  src/Test/LeanCheck/Function/ShowFunction.hs \+  src/Test/LeanCheck/Function/Show/EightLines.hs \+  src/Test/LeanCheck/Function.hs \   src/Test/LeanCheck/Function/ListsOfPairs.hs \   src/Test/LeanCheck/Function/Listable.hs \   src/Test/LeanCheck/Function/Listable/ListsOfPairs.hs \-  src/Test/LeanCheck/Derive.hs \-  src/Test/LeanCheck/Core.hs \-  src/Test/LeanCheck/Basic.hs-src/Test/LeanCheck/Function/Listable/Periodic.o: \-  src/Test/LeanCheck/Tiers.hs \-  src/Test/LeanCheck.hs \-  src/Test/LeanCheck/IO.hs \-  src/Test/LeanCheck/Function/Listable/Periodic.hs \+  src/Test/LeanCheck/Error.hs \   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs-src/Test/LeanCheck/Function/ListsOfPairs.o: \+src/Test/LeanCheck/Function/Show/EightLines.o: \+  src/Test/LeanCheck/Utils/Types.hs \   src/Test/LeanCheck/Tiers.hs \+  src/Test/LeanCheck/Stats.hs \   src/Test/LeanCheck.hs \   src/Test/LeanCheck/IO.hs \-  src/Test/LeanCheck/Function/ListsOfPairs.hs \+  src/Test/LeanCheck/Function/ShowFunction.hs \+  src/Test/LeanCheck/Function/Show/EightLines.hs \+  src/Test/LeanCheck/Error.hs \   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs-src/Test/LeanCheck/Function.o: \+src/Test/LeanCheck/Function/Show/FourCases.o: \   src/Test/LeanCheck/Utils/Types.hs \   src/Test/LeanCheck/Tiers.hs \+  src/Test/LeanCheck/Stats.hs \   src/Test/LeanCheck.hs \   src/Test/LeanCheck/IO.hs \-  src/Test/LeanCheck/Function/Show.hs \   src/Test/LeanCheck/Function/ShowFunction.hs \-  src/Test/LeanCheck/Function.hs \-  src/Test/LeanCheck/Function/ListsOfPairs.hs \-  src/Test/LeanCheck/Function/Listable.hs \-  src/Test/LeanCheck/Function/Listable/ListsOfPairs.hs \+  src/Test/LeanCheck/Function/Show/FourCases.hs \   src/Test/LeanCheck/Error.hs \   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs+src/Test/LeanCheck/Function/ShowFunction: \+  mk/toplibs src/Test/LeanCheck/Function/ShowFunction.o: \   src/Test/LeanCheck/Utils/Types.hs \   src/Test/LeanCheck/Tiers.hs \+  src/Test/LeanCheck/Stats.hs \   src/Test/LeanCheck.hs \   src/Test/LeanCheck/IO.hs \   src/Test/LeanCheck/Function/ShowFunction.hs \@@ -362,10 +311,12 @@ src/Test/LeanCheck/Function/Show.o: \   src/Test/LeanCheck/Utils/Types.hs \   src/Test/LeanCheck/Tiers.hs \+  src/Test/LeanCheck/Stats.hs \   src/Test/LeanCheck.hs \   src/Test/LeanCheck/IO.hs \   src/Test/LeanCheck/Function/Show.hs \   src/Test/LeanCheck/Function/ShowFunction.hs \+  src/Test/LeanCheck/Function/Show/EightLines.hs \   src/Test/LeanCheck/Error.hs \   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \@@ -427,9 +378,9 @@   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs-tests/test-derive.o: \-  tests/Test.hs \-  tests/test-derive.hs \+test/derive.o: \+  test/Test.hs \+  test/derive.hs \   src/Test/LeanCheck/Utils/Types.hs \   src/Test/LeanCheck/Utils/Operators.hs \   src/Test/LeanCheck/Tiers.hs \@@ -438,13 +389,13 @@   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs-tests/test-derive: \-  tests/Test.hs \-  tests/test-derive.hs \+test/derive: \+  test/Test.hs \+  test/derive.hs \   mk/toplibs-tests/test-error.o: \-  tests/Test.hs \-  tests/test-error.hs \+test/error.o: \+  test/Test.hs \+  test/error.hs \   src/Test/LeanCheck/Utils/Types.hs \   src/Test/LeanCheck/Tiers.hs \   src/Test/LeanCheck.hs \@@ -453,13 +404,13 @@   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs-tests/test-error: \-  tests/Test.hs \-  tests/test-error.hs \+test/error: \+  test/Test.hs \+  test/error.hs \   mk/toplibs-tests/test-fun.o: \-  tests/Test.hs \-  tests/test-fun.hs \+test/fun.o: \+  test/Test.hs \+  test/fun.hs \   src/Test/LeanCheck/Utils/Types.hs \   src/Test/LeanCheck/Utils/TypeBinding.hs \   src/Test/LeanCheck/Utils.hs \@@ -472,31 +423,33 @@   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs-tests/test-funshow.o: \-  tests/Test.hs \-  tests/test-funshow.hs \+test/funshow.o: \+  test/Test.hs \+  test/funshow.hs \   src/Test/LeanCheck/Utils/Types.hs \   src/Test/LeanCheck/Utils/TypeBinding.hs \   src/Test/LeanCheck/Tiers.hs \+  src/Test/LeanCheck/Stats.hs \   src/Test/LeanCheck.hs \   src/Test/LeanCheck/IO.hs \   src/Test/LeanCheck/Function/Show.hs \   src/Test/LeanCheck/Function/ShowFunction.hs \+  src/Test/LeanCheck/Function/Show/EightLines.hs \   src/Test/LeanCheck/Error.hs \   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs-tests/test-funshow: \-  tests/Test.hs \-  tests/test-funshow.hs \+test/funshow: \+  test/Test.hs \+  test/funshow.hs \   mk/toplibs-tests/test-fun: \-  tests/Test.hs \-  tests/test-fun.hs \+test/fun: \+  test/Test.hs \+  test/fun.hs \   mk/toplibs-tests/test-generic.o: \-  tests/Test.hs \-  tests/test-generic.hs \+test/generic.o: \+  test/Test.hs \+  test/generic.hs \   src/Test/LeanCheck/Utils/Types.hs \   src/Test/LeanCheck/Utils/Operators.hs \   src/Test/LeanCheck/Tiers.hs \@@ -506,13 +459,13 @@   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs-tests/test-generic: \-  tests/Test.hs \-  tests/test-generic.hs \+test/generic: \+  test/Test.hs \+  test/generic.hs \   mk/toplibs-tests/test-io.o: \-  tests/Test.hs \-  tests/test-io.hs \+test/io.o: \+  test/Test.hs \+  test/io.hs \   src/Test/LeanCheck/Utils/Types.hs \   src/Test/LeanCheck/Tiers.hs \   src/Test/LeanCheck.hs \@@ -520,13 +473,13 @@   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs-tests/test-io: \-  tests/Test.hs \-  tests/test-io.hs \+test/io: \+  test/Test.hs \+  test/io.hs \   mk/toplibs-tests/test-main.o: \-  tests/Test.hs \-  tests/test-main.hs \+test/main.o: \+  test/Test.hs \+  test/main.hs \   src/Test/LeanCheck/Utils/Types.hs \   src/Test/LeanCheck/Utils/TypeBinding.hs \   src/Test/LeanCheck/Utils.hs \@@ -538,13 +491,13 @@   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs-tests/test-main: \-  tests/Test.hs \-  tests/test-main.hs \+test/main: \+  test/Test.hs \+  test/main.hs \   mk/toplibs-tests/test-operators.o: \-  tests/Test.hs \-  tests/test-operators.hs \+test/operators.o: \+  test/Test.hs \+  test/operators.hs \   src/Test/LeanCheck/Utils/Types.hs \   src/Test/LeanCheck/Utils/TypeBinding.hs \   src/Test/LeanCheck/Utils.hs \@@ -556,37 +509,37 @@   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs-tests/test-operators: \-  tests/Test.hs \-  tests/test-operators.hs \+test/operators: \+  test/Test.hs \+  test/operators.hs \   mk/toplibs-tests/Test.o: \-  tests/Test.hs \+test/stats.o: \+  test/Test.hs \+  test/stats.hs \   src/Test/LeanCheck/Utils/Types.hs \   src/Test/LeanCheck/Tiers.hs \+  src/Test/LeanCheck/Stats.hs \   src/Test/LeanCheck.hs \   src/Test/LeanCheck/IO.hs \   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs-tests/test-stats.o: \-  tests/test-stats.hs \-  tests/Test.hs \+test/stats: \+  test/Test.hs \+  test/stats.hs \+  mk/toplibs+test/Test.o: \+  test/Test.hs \   src/Test/LeanCheck/Utils/Types.hs \   src/Test/LeanCheck/Tiers.hs \-  src/Test/LeanCheck/Stats.hs \   src/Test/LeanCheck.hs \   src/Test/LeanCheck/IO.hs \   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs-tests/test-stats: \-  tests/test-stats.hs \-  tests/Test.hs \-  mk/toplibs-tests/test-tiers.o: \-  tests/test-tiers.hs \-  tests/Test.hs \+test/tiers.o: \+  test/tiers.hs \+  test/Test.hs \   src/Test/LeanCheck/Utils/Types.hs \   src/Test/LeanCheck/Utils/TypeBinding.hs \   src/Test/LeanCheck/Utils.hs \@@ -598,13 +551,13 @@   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs-tests/test-tiers: \-  tests/test-tiers.hs \-  tests/Test.hs \+test/tiers: \+  test/tiers.hs \+  test/Test.hs \   mk/toplibs-tests/test-types.o: \-  tests/test-types.hs \-  tests/Test.hs \+test/types.o: \+  test/types.hs \+  test/Test.hs \   src/Test/LeanCheck/Utils/Types.hs \   src/Test/LeanCheck/Tiers.hs \   src/Test/LeanCheck.hs \@@ -612,7 +565,7 @@   src/Test/LeanCheck/Derive.hs \   src/Test/LeanCheck/Core.hs \   src/Test/LeanCheck/Basic.hs-tests/test-types: \-  tests/test-types.hs \-  tests/Test.hs \+test/types: \+  test/types.hs \+  test/Test.hs \   mk/toplibs
mk/haskell.mk view
@@ -44,6 +44,12 @@ ALL_HSS ?= $(shell $(LIST_ALL_HSS))  PKGNAME = $(shell cat *.cabal | grep "^name:"    | sed -e "s/name: *//")+HADDOCK_VERSION = $(shell haddock --version | grep version | sed -e 's/.*version //;s/,.*//')+HADDOCK_MAJOR = $(shell echo $(HADDOCK_VERSION) | sed -e 's/\..*//')+HADDOCK_MINOR = $(shell echo $(HADDOCK_VERSION) | sed -e 's/[0-9]*\.\([0-9]*\).[0-9]*/\1/')+HADDOCK_PKG_NAME = $(shell [ $(HADDOCK_MAJOR) -gt 2 ] \+                        || [ $(HADDOCK_MAJOR) -eq 2 -a $(HADDOCK_MINOR) -ge 20 ] \+                        && echo "--package-name=$(PKGNAME)")   # Implicit rules@@ -94,7 +100,7 @@  doc/index.html: $(LIB_HSS) 	./mk/haddock-i base template-haskell | xargs \-	haddock --html -odoc $(LIB_HSS) $(HADDOCKFLAGS) --title=$(PKGNAME)+	haddock --html -odoc $(LIB_HSS) $(HADDOCKFLAGS) --title=$(PKGNAME) $(HADDOCK_PKG_NAME)  # lists all Haskell source files list-all-hss:
src/Test/LeanCheck.hs view
@@ -117,6 +117,7 @@   , listsOfLength    -- ** Listing values+  , tiersFloating   , tiersFractional   , listIntegral   , (+|)
src/Test/LeanCheck/Basic.hs view
@@ -144,28 +144,73 @@           -> (a,b,c,d,e,f,g,h,i,j,k,l) -> m uncurry12 f (x,y,z,w,v,u,r,s,t,o,p,q) = f x y z w v u r s t o p q +-- | > list :: [Rational] =+--   >   [   0  % 1+--   >   ,   1  % 1+--   >   , (-1) % 1+--   >   ,   1  % 2,   2  % 1+--   >   , (-1) % 2, (-2) % 1+--   >   ,   1  % 3,   3  % 1+--   >   , (-1) % 3, (-3) % 1+--   >   ,   1  % 4,   2  % 3,   3  % 2,   4  % 1+--   >   , (-1) % 4, (-2) % 3, (-3) % 2, (-4) % 1+--   >   ,   1  % 5,   5  % 1+--   >   , (-1) % 5, (-5) % 1+--   >   , ...+--   >   ] instance (Integral a, Listable a) => Listable (Ratio a) where   tiers = mapT (uncurry (%)) . reset         $ tiers `suchThat` (\(n,d) -> d > 0 && n `gcd` d == 1) +-- | > list :: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...] instance Listable Word where-  list = [0..]+  list = listIntegral --- | Resets the weight of a constructor (or tiers)--- Typically used as an infix constructor when defining Listable instances:+-- | Resets the weight of a constructor or tiers. ----- > cons<N> `ofWeight` <W>+-- > > [ [], [], ..., xs, ys, zs, ... ] `ofWeight` 1+-- > [ [], xs, ys, zs, ... ] ----- Be careful: do not apply @`ofWeight` 0@ to recursive data structure+-- > > [ xs, ys, zs, ... ] `ofWeight` 2+-- > [ [], [], xs, ys, zs, ... ]+--+-- > > [ [], xs, ys, zs, ... ] `ofWeight` 3+-- > [ [], [], [], xs, ys, zs, ... ]+--+-- Typically used as an infix operator when defining 'Listable' instances:+--+-- > instance Listable <Type> where+-- >   tiers  =  ...+-- >          \/ cons<N> <Cons>  `ofWeight`  <W>+-- >          \/ ...+--+-- /Warning:/ do not apply @ \`ofWeight\` 0 @ to recursive data structure -- constructors.  In general this will make the list of size 0 infinite, -- breaking the tier invariant (each tier must be finite). ----- 'ofWeight' is closely related to 'reset'.+-- @ \`ofWeight\` /n/ @ is equivalent to 'reset' followed+-- by @/n/@ applications of 'delay'. ofWeight :: [[a]] -> Int -> [[a]] ofWeight xss w = dropWhile null xss `addWeight` w --- | Adds to the weight of tiers of a constructor+-- | Adds to the weight of a constructor or tiers. ----- 'addWeight' is closely related to 'delay'.+-- > instance Listable <Type> where+-- >   tiers  =  ...+-- >          \/ cons<N> <Cons>  `addWeight`  <W>+-- >          \/ ...+--+-- Typically used as an infix operator when defining 'Listable' instances:+--+-- > > [ xs, ys, zs, ... ] `addWeight` 1+-- > [ [], xs, ys, zs, ... ]+--+-- > > [ xs, ys, zs, ... ] `addWeight` 2+-- > [ [], [], xs, ys, zs, ... ]+--+-- > > [ [], xs, ys, zs, ... ] `addWeight` 3+-- > [ [], [], [], [], xs, ys, zs, ... ]+--+-- @ \`addWeight\` /n/ @ is equivalent to @/n/@ applications of 'delay'. addWeight :: [[a]] -> Int -> [[a]] addWeight xss w = replicate w [] ++ xss
src/Test/LeanCheck/Core.hs view
@@ -77,6 +77,7 @@   , (+|)   , listIntegral   , tiersFractional+  , tiersFloating   ) where @@ -102,6 +103,28 @@ -- -- where @N@ is the number of arguments of each constructor @A...Z@. --+-- Here is a datatype with 4 constructors and its listable instance:+--+-- > data MyType  =  MyConsA+-- >              |  MyConsB Int+-- >              |  MyConsC Int Char+-- >              |  MyConsD String+-- >+-- > instance Listable MyType where+-- >   tiers =  cons0 MyConsA+-- >         \/ cons1 MyConsB+-- >         \/ cons2 MyConsC+-- >         \/ cons1 MyConsD+--+-- The instance for Hutton's Razor is given by:+--+-- > data Expr  =  Val Int+-- >            |  Add Expr Expr+-- >+-- > instance Listable Expr where+-- >   tiers  =  cons1 Val+-- >          \/ cons2 Add+-- -- Instances can be alternatively defined by 'list'. -- In this case, each sub-list in 'tiers' is a singleton list -- (each succeeding element of 'list' has +1 size).@@ -122,26 +145,50 @@ -- | Takes a list of values @xs@ and transform it into tiers on which each --   tier is occupied by a single element from @xs@. --+-- > > toTiers [x, y, z, ...]+-- > [ [x], [y], [z], ...]+-- -- To convert back to a list, just 'concat'. toTiers :: [a] -> [[a]] toTiers = map (:[]) +-- | > list :: [()]  =  [()]+--   > tiers :: [[()]]  =  [[()]] instance Listable () where   list = [()]  -- | Tiers of 'Integral' values. --   Can be used as a default implementation of 'list' for 'Integral' types.-listIntegral :: (Enum a, Num a) => [a]-listIntegral = [0,-1..] +| [1..]+--+-- For types with negative values, like 'Int',+-- the list starts with 0 then intercalates between positives and negatives.+--+-- > listIntegral  =  [0, 1, -1, 2, -2, 3, -3, 4, -4, ...]+--+-- For types without negative values, like 'Word',+-- the list starts with 0 followed by positives of increasing magnitude.+--+-- > listIntegral  =  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ...]+--+-- This function will not work for types that throw errors when the result of+-- an arithmetic operation is negative such as 'GHC.Natural'.  For these, use+-- @[0..]@ as the 'list' implementation.+listIntegral :: (Ord a, Num a) => [a]+listIntegral = 0 : positives +| negatives+  where+  positives = takeWhile (>0) $ iterate (+1) 1  -- stop generating on overflow+  negatives = takeWhile (<0) $ iterate (subtract 1) (-1)  -- | > tiers :: [[Int]] = [[0], [1], [-1], [2], [-2], [3], [-3], ...] --   > list :: [Int] = [0, 1, -1, 2, -2, 3, -3, 4, -4, 5, -5, 6, ...] instance Listable Int where   list = listIntegral +-- | > list :: [Int] = [0, 1, -1, 2, -2, 3, -3, 4, -4, 5, -5, 6, ...] instance Listable Integer where   list = listIntegral +-- | > list :: [Char] = ['a', ' ', 'b', 'A', 'c', '\', 'n', 'd', ...] instance Listable Char where   list = ['a'..'z']       +| [' ','\n']@@ -163,6 +210,13 @@ instance Listable a => Listable (Maybe a) where   tiers = cons0 Nothing \/ cons1 Just +-- | > tiers :: [[Either Bool Bool]] =+--   >   [[Left False, Right False, Left True, Right True]]+--   > tiers :: [[Either Int Int]] = [ [Left 0, Right 0]+--   >                               , [Left 1, Right 1]+--   >                               , [Left (-1), Right (-1)]+--   >                               , [Left 2, Right 2]+--   >                               , ... ] instance (Listable a, Listable b) => Listable (Either a b) where   tiers = reset (cons1 Left)      \\// reset (cons1 Right)@@ -176,6 +230,7 @@ instance (Listable a, Listable b) => Listable (a,b) where   tiers = tiers >< tiers +-- | > list :: [(Int,Int,Int)] = [ (0,0,0), (0,0,1), (0,1,0), ...] instance (Listable a, Listable b, Listable c) => Listable (a,b,c) where   tiers = productWith (\x (y,z) -> (x,y,z)) tiers tiers @@ -199,33 +254,92 @@  -- | Tiers of 'Fractional' values. --   This can be used as the implementation of 'tiers' for 'Fractional' types.+--+-- > tiersFractional :: [[Rational]]  =+-- >   [ [  0  % 1]+-- >   , [  1  % 1]+-- >   , [(-1) % 1]+-- >   , [  1  % 2,   2  % 1]+-- >   , [(-1) % 2, (-2) % 1]+-- >   , [  1  % 3,   3  % 1]+-- >   , [(-1) % 3, (-3) % 1]+-- >   , [  1  % 4,   2  % 3,   3  % 2,   4  % 1]+-- >   , [(-1) % 4, (-2) % 3, (-3) % 2, (-4) % 1]+-- >   , [  1  % 5,   5  % 1]+-- >   , [(-1) % 5, (-5) % 1]+-- >   , [  1  % 6,   2 % 5,    3  % 4,   4  % 3,   5  % 2,   6  % 1]+-- >   , [(-1) % 6, (-2) % 5, (-3) % 4, (-4) % 3, (-5) % 2, (-6) % 1]+-- >   , ...+-- >   ] tiersFractional :: Fractional a => [[a]]-tiersFractional = productWith (+) tiersFractionalParts-                                  (mapT fromIntegral (tiers::[[Integer]]))-               \/ [ [], [], [1/0], [-1/0] {- , [-0], [0/0] -} ]-  where tiersFractionalParts :: Fractional a => [[a]]-        tiersFractionalParts = [0]-                             : [ [fromIntegral a / fromIntegral b]-                               | b <- iterate (*2) 2, a <- [1::Integer,3..b] ]--- The position of Infinity in the above enumeration is arbitrary.+tiersFractional = mapT (\(x,y) -> fromInteger x / fromInteger y) . reset+                $ tiers `suchThat` \(n,d) -> d > 0 && n `gcd` d == 1 --- Note that this instance ignores NaN's.+-- | Tiers of 'Floating' values.+--   This can be used as the implementation of 'tiers' for 'Floating' types.+--+--   This function is equivalent to 'tiersFractional'+--   with positive and negative infinities included: 1/0 and -1/0.+--+-- > tiersFloating :: [[Float]] =+-- >   [ [0.0]+-- >   , [1.0]+-- >   , [-1.0, Infinity]+-- >   , [ 0.5,  2.0, -Infinity]+-- >   , [-0.5, -2.0]+-- >   , [ 0.33333334,  3.0]+-- >   , [-0.33333334, -3.0]+-- >   , [ 0.25,  0.6666667,  1.5,  4.0]+-- >   , [-0.25, -0.6666667, -1.5, -4.0]+-- >   , [ 0.2,  5.0]+-- >   , [-0.2, -5.0]+-- >   , [ 0.16666667,  0.4,  0.75,  1.3333334,  2.5,  6.0]+-- >   , [-0.16666667, -0.4, -0.75, -1.3333334, -2.5, -6.0]+-- >   , ...+-- >   ]+--+--   @NaN@ and @-0@ are excluded from this enumeration.+tiersFloating :: Fractional a => [[a]]+tiersFloating = tiersFractional \/ [ [], [], [1/0], [-1/0] {- , [-0], [0/0] -} ]++-- | @NaN@ and @-0@ are not included in the list of 'Float's.+--+-- > list :: [Float] =+-- >   [ 0.0+-- >   , 1.0, -1.0, Infinity+-- >   , 0.5, 2.0, -Infinity, -0.5, -2.0+-- >   , 0.33333334, 3.0, -0.33333334, -3.0+-- >   , 0.25, 0.6666667, 1.5, 4.0, -0.25, -0.6666667, -1.5, -4.0+-- >   , ...+-- >   ] instance Listable Float where-  tiers = tiersFractional+  tiers = tiersFloating +-- | @NaN@ and @-0@ are not included in the list of 'Double's.+--+-- > list :: [Double]  =  [0.0, 1.0, -1.0, Infinity, 0.5, 2.0, ...] instance Listable Double where-  tiers = tiersFractional+  tiers = tiersFloating +-- | > list :: [Ordering]  = [LT, EQ, GT] instance Listable Ordering where   tiers = cons0 LT        \/ cons0 EQ        \/ cons0 GT  -- | 'map' over tiers+--+-- > mapT f [[x], [y,z], [w,...], ...]  =  [[f x], [f y, f z], [f w, ...], ...]+--+-- > mapT f [xs, ys, zs, ...]  =  [map f xs, map f ys, map f zs] mapT :: (a -> b) -> [[a]] -> [[b]] mapT = map . map  -- | 'filter' tiers+--+-- > filterT p [xs, yz, zs, ...]  =  [filter p xs, filter p ys, filter p zs]+--+-- > filterT odd tiers  =  [[], [1], [-1], [], [], [3], [-3], [], [], [5], ...] filterT :: (a -> Bool) -> [[a]] -> [[a]] filterT f = map (filter f) @@ -280,35 +394,68 @@  -- | Delays the enumeration of 'tiers'. -- Conceptually this function adds to the weight of a constructor.+--+-- > delay [xs, ys, zs, ... ]  =  [[], xs, ys, zs, ...]+--+-- > delay [[x,...], [y,...], ...]  =  [[], [x,...], [y,...], ...]+-- -- Typically used when defining 'Listable' instances: ----- > delay (cons<N> <Constr>)+-- > instance Listable <Type> where+-- >   tiers  =  ...+-- >          \/ delay (cons<N> <Constructor>)+-- >          \/ ... delay :: [[a]] -> [[a]] delay = ([]:)  -- | Resets any delays in a list-of 'tiers'. -- Conceptually this function makes a constructor "weightless", -- assuring the first tier is non-empty.--- Typically used when defining Listable instances: ----- > reset (cons<N> <Constr>)+-- > reset [[], [], ..., xs, ys, zs, ...]  =  [xs, ys, zs, ...] --+-- > reset [[], xs, ys, zs, ...]  =  [xs, ys, zs, ...]+--+-- > reset [[], [], ..., [x], [y], [z], ...]  =  [[x], [y], [z], ...]+--+-- Typically used when defining 'Listable' instances:+--+-- > instance Listable <Type> where+-- >   tiers  =  ...+-- >          \/ reset (cons<N> <Constructor>)+-- >          \/ ...+-- -- Be careful: do not apply @reset@ to recursive data structure -- constructors.  In general this will make the list of size 0 infinite, -- breaking the 'tiers' invariant (each tier must be finite). reset :: [[a]] -> [[a]] reset = dropWhile null --- | Tiers of values that follow a property+-- | Tiers of values that follow a property. ----- > cons<N> `suchThat` condition+-- Typically used in the definition of 'Listable' tiers:+--+-- > instance Listable <Type> where+-- >   tiers  =  ...+-- >          \/ cons<N> `suchThat` <condition>+-- >          \/ ...+--+-- Examples:+--+-- > > tiers `suchThat` odd+-- > [[], [1], [-1], [], [], [3], [-3], [], [], [5], ...]+--+-- > > tiers `suchThat` even+-- > [[0], [], [], [2], [-2], [], [], [4], [-4], [], ...]+--+-- This function is just a 'flip'ped version of `filterT`. suchThat :: [[a]] -> (a->Bool) -> [[a]] suchThat = flip filterT  -- | Lazily interleaves two lists, switching between elements of the two. --   Union/sum of the elements in the lists. ----- > [x,y,z] +| [a,b,c] == [x,a,y,b,z,c]+-- > [x,y,z,...] +| [a,b,c,...]  =  [x,a,y,b,z,c,...] (+|) :: [a] -> [a] -> [a] []     +| ys = ys (x:xs) +| ys = x:(ys +| xs)@@ -316,7 +463,7 @@  -- | Append tiers --- sum of two tiers enumerations. ----- > [xs,ys,zs,...] \/ [as,bs,cs,...] = [xs++as,ys++bs,zs++cs,...]+-- > [xs,ys,zs,...] \/ [as,bs,cs,...]  =  [xs++as, ys++bs, zs++cs, ...] (\/) :: [[a]] -> [[a]] -> [[a]] xss \/ []  = xss []  \/ yss = yss@@ -326,7 +473,7 @@ -- | Interleave tiers --- sum of two tiers enumerations. --   When in doubt, use '\/' instead. ----- > [xs,ys,zs,...] \/ [as,bs,cs,...] = [xs+|as,ys+|bs,zs+|cs,...]+-- > [xs,ys,zs,...] \/ [as,bs,cs,...]  =  [xs+|as, ys+|bs, zs+|cs, ...] (\\//) :: [[a]] -> [[a]] -> [[a]] xss \\// []  = xss []  \\// yss = yss@@ -335,23 +482,23 @@  -- | Take a tiered product of lists of tiers. ----- > [t0,t1,t2,...] >< [u0,u1,u2,...] =--- > [ t0**u0--- > , t0**u1 ++ t1**u0--- > , t0**u2 ++ t1**u1 ++ t2**u0--- > , ...       ...       ...       ...--- > ]--- > where xs ** ys = [(x,y) | x <- xs, y <- ys]+-- > [t0,t1,t2,...] >< [u0,u1,u2,...]  =+-- >   [ t0**u0+-- >   , t0**u1 ++ t1**u0+-- >   , t0**u2 ++ t1**u1 ++ t2**u0+-- >   , ...       ...       ...       ...+-- >   ]+-- >   where xs ** ys = [(x,y) | x <- xs, y <- ys] -- -- Example: ----- > [[0],[1],[2],...] >< [[0],[1],[2],...]--- > == [  [(0,0)]--- >    ,  [(1,0),(0,1)]--- >    ,  [(2,0),(1,1),(0,2)]--- >    ,  [(3,0),(2,1),(1,2),(0,3)]--- >    ...--- >    ]+-- > [[0],[1],[2],...] >< [[0],[1],[2],...]  =+-- >   [ [(0,0)]+-- >   , [(1,0),(0,1)]+-- >   , [(2,0),(1,1),(0,2)]+-- >   , [(3,0),(2,1),(1,2),(0,3)]+-- >   , ...+-- >   ] (><) :: [[a]] -> [[b]] -> [[(a,b)]] (><) = productWith (,) infixr 8 ><@@ -359,7 +506,7 @@ -- | Take a tiered product of lists of tiers. --   'productWith' can be defined by '><', as: ----- > productWith f xss yss = map (uncurry f) $ xss >< yss+-- > productWith f xss yss  =  map (uncurry f) $ xss >< yss productWith :: (a->b->c) -> [[a]] -> [[b]] -> [[c]] productWith _ _ [] = [] productWith _ [] _ = []@@ -368,12 +515,16 @@   where xs ** ys = [x `f` y | x <- xs, y <- ys]  -- | 'Testable' values are functions---   of 'Listable' arguments that return boolean values,---   e.g.:+--   of 'Listable' arguments that return boolean values. -- -- * @ Bool @ -- * @ Listable a => a -> Bool @--- * @ Listable a => a -> a -> Bool @+-- * @ (Listable a, Listable b) => a -> b -> Bool @+-- * @ (Listable a, Listable b, Listable c) => a -> b -> c -> Bool @+-- * @ (Listable a, Listable b, Listable c, ...) => a -> b -> c -> ... -> Bool @+--+-- For example:+-- -- * @ Int -> Bool @ -- * @ String -> [Int] -> Bool @ class Testable a where@@ -393,10 +544,34 @@ -- argument values for the property.  Each boolean paired with such a list -- indicates whether the property holds for this choice.  The outer list is -- potentially infinite and lazily evaluated.+--+-- > > results (<)+-- > [ (["0","0"],    False)+-- > , (["0","1"],    True)+-- > , (["1","0"],    False)+-- > , (["0","(-1)"], False)+-- > , (["1","1"],    False)+-- > , (["(-1)","0"], True)+-- > , (["0","2"],    True)+-- > , (["1","(-1)"], False)+-- > , ...+-- > ]+--+-- > > take 10 $ results (\xs -> xs == nub (xs :: [Int]))+-- > [ (["[]"],      True)+-- > , (["[0]"],     True)+-- > , (["[0,0]"],   False)+-- > , (["[1]"],     True)+-- > , (["[0,0,0]"], False)+-- > , ...+-- > ] results :: Testable a => a -> [([String],Bool)] results = concat . resultiers  -- | Lists all counter-examples for a number of tests to a property,+--+-- > > counterExamples 12 $ \xs -> xs == nub (xs :: [Int])+-- > [["[0,0]"],["[0,0,0]"],["[0,0,0,0]"],["[0,0,1]"],["[0,1,0]"]] counterExamples :: Testable a => Int -> a -> [[String]] counterExamples n p = [as | (as,False) <- take n (results p)] @@ -404,18 +579,24 @@ --   returns 'Just' the first counter-example --   or 'Nothing' if there is none. ----- > counterExample 100 $ \xs -> [] `union` xs == (xs::[Int])--- > -- > Just ["[0,0]"]+-- > > counterExample 100 $ \xs -> [] `union` xs == (xs::[Int])+-- > Just ["[0,0]"] counterExample :: Testable a => Int -> a -> Maybe [String] counterExample n = listToMaybe . counterExamples n --- | Lists all witnesses up to a number of tests to a property,+-- | Lists all witnesses up to a number of tests to a property.+--+-- > > witnesses 1000 (\x -> x > 1 && x < 77 && 77 `rem` x == 0)+-- > [["7"],["11"]] witnesses :: Testable a => Int -> a -> [[String]] witnesses n p = [as | (as,True) <- take n (results p)]  -- | Up to a number of tests to a property, --   returns 'Just' the first witness --   or 'Nothing' if there is none.+--+-- > > witness 1000 (\x -> x > 1 && x < 77 && 77 `rem` x == 0)+-- > Just ["7"] witness :: Testable a => Int -> a -> Maybe [String] witness n = listToMaybe . witnesses n @@ -450,6 +631,12 @@ -- | Boolean implication operator.  Useful for defining conditional properties: -- -- > prop_something x y = condition x y ==> something x y+--+-- Examples:+--+-- > > prop_addMonotonic x y  =  y > 0 ==> x + y > x+-- > > check prop_addMonotonic+-- > +++ OK, passed 200 tests. (==>) :: Bool -> Bool -> Bool False ==> _ = True True  ==> p = p
src/Test/LeanCheck/Function.hs view
@@ -11,8 +11,36 @@ -- These can be useful for testing higher-order properties --- properties that -- take functions as arguments. --+-- > > import Test.LeanCheck+-- > > import Test.LeanCheck.Function+--+-- > > check $ \f p xs -> filter p (map f xs) == map f (filter p xs :: [Int])+-- > *** Failed! Falsifiable (after 36 tests):+-- > \_ -> 0+-- > \x -> case x of+-- >       0 -> True+-- >       _ -> False+-- > [1]+--+-- > > check $ \f p xs -> filter p (map f xs) == map f (filter p xs :: [Bool])+-- > *** Failed! Falsifiable (after 20 tests):+-- > \_ -> False+-- > \x -> case x of+-- >       False -> False+-- >       True -> True+-- > [True]+--+-- > > check $ \f z xs -> foldr f z xs == foldl f z (xs :: [Int])+-- > *** Failed! Falsifiable (after 75 tests):+-- > \x _ -> case x of+-- >         0 -> 1+-- >         _ -> 0+-- > 0+-- > [0,0]+-- -- Warning: this is only intended to be used in testing modules.  Avoid -- importing this on modules that are used as libraries. module Test.LeanCheck.Function () where+import Test.LeanCheck.Core (Listable) -- for Haddock import Test.LeanCheck.Function.Listable () import Test.LeanCheck.Function.Show ()
− src/Test/LeanCheck/Function/CoListable.hs
@@ -1,108 +0,0 @@--- |--- Module      : Test.LeanCheck.Function.CoListable--- Copyright   : (c) 2015-2018 Rudy Matela--- License     : 3-Clause BSD  (see the file LICENSE)--- Maintainer  : Rudy Matela <rudy@matela.com.br>------ This module is part of LeanCheck,--- a simple enumerative property-based testing library.------ This module exports functions to define a 'Listable' instance for function--- enumeration by means of a 'CoListable' typeclass.  This is very similar to--- the coseries enumeration of SmallCheck.------ This module /does not currently work/, it it just a sketch and a stub.-module Test.LeanCheck.Function.CoListable-  ( CoListable (..)-  )-where---import Test.LeanCheck-import Test.LeanCheck.Tiers-import Test.LeanCheck.Utils (Nat(..), Nat2(..), Nat3(..))-import Data.Maybe (fromMaybe)---(\+:/) :: [[a]] -> [[a]] -> [[a]]-xss \+:/ yss = xss \/ ([]:yss)-infixr 9 \+:/----- | This _does not currently work_.  Its just a sketch and a stub.------   Generation of 'Listable' functions using 'cotiers'.---   This is similar to SmallCheck's coseries.------   The current implementation generates repetitions.-class CoListable a where-  cotiers :: [[b]] -> [[a -> b]]---instance CoListable () where-  cotiers rs = mapT (\r  () -> r) rs---instance CoListable Bool where-  cotiers rs = productWith (\r1 r2  b -> if b then r1 else r2) rs rs---instance CoListable a => CoListable (Maybe a) where-  cotiers rs = productWith (\z f  m -> case m of-                                         Nothing -> z-                                         Just x  -> f x) rs (cotiers rs)---instance (CoListable a, CoListable b) => CoListable (Either a b) where-  cotiers rs = productWith (\f g  e -> case e of-                                         Left x  -> f x-                                         Right x -> g x) (cotiers rs) (cotiers rs)---instance (CoListable a) => CoListable [a] where-  cotiers rss = mapT const rss-           \+:/ productWith-                  (\y f  xs -> case xs of-                                 []      -> y-                                 (x:xs') -> f x xs')-                  rss-                  (cotiers (cotiers rss))---instance (CoListable a, CoListable b) => CoListable (a,b) where-  cotiers = mapT uncurry . cotiers . cotiers---instance CoListable Int where-  cotiers rss = mapT const rss-           \+:/ productWith-                  (\f g  i -> if i >= 0 then f (i-1) else g (i+1))-                  (cotiers rss) (cotiers rss)--instance CoListable Nat where-  cotiers rss = mapT const rss-           \+:/ productWith-                  (\f g  i -> if even i then f (i`div`2) else g (i`div`2))-                  (cotiers rss) (cotiers rss)--instance CoListable Nat2 where-  cotiers rss = (\rs x -> rs !! fromIntegral x) `mapT` products [rss,rss]--instance CoListable Nat3 where-  cotiers rss = (\rs x -> rs !! fromIntegral x) `mapT` products [rss,rss,rss]---alts0 :: [[a]] -> [[a]]-alts0 = id--alts1 :: CoListable a => [[b]] -> [[a->b]]-alts1 bs = cotiers bs--alts2 :: (CoListable a, CoListable b) => [[c]] -> [[a->b->c]]-alts2 cs = cotiers (cotiers cs)--alts3 :: (CoListable a, CoListable b, CoListable c) => [[d]] -> [[a->b->c->d]]-alts3 ds = cotiers (cotiers (cotiers ds))--ftiers :: (CoListable a, Listable b) => [[a->b]]-ftiers = cotiers tiers
src/Test/LeanCheck/Function/Listable.hs view
@@ -9,23 +9,14 @@ -- -- This module exports a 'Listable' instance for functions. ----- LeanCheck provides several alternative definitions of 'Listable' functions:+-- LeanCheck provides one definition of 'Listable' functions: -- -- * "Test.LeanCheck.Function.Listable.ListsOfPairs": --   considers functions as a finite list of exceptional input-output cases to --   a default value (list of pairs of arguments and results). --   This is the LeanCheck default, and is the one exported by this module. ----- * "Test.LeanCheck.Function.Listable.CoListable":---   declares a 'CoListable' typeclass similar to SmallCheck's @CoSerial@.---   Currently a stub.------ * "Test.LeanCheck.Function.Listable.Periodic":---   similar to ListsOfPairs, but instead of having a default value, functions---   are periodic.------ Take care: all the above 'Listable' instances are __experimental__.  Only--- one of the above can be imported at a time.+-- In the future, alternative instances could be provided in sub-modules. -- -- Warning: this is only intended to be used in testing modules.  Avoid -- importing this on modules that are used as libraries.
− src/Test/LeanCheck/Function/Listable/CoListable.hs
@@ -1,21 +0,0 @@--- |--- Module      : Test.LeanCheck.Function.Listable.CoListable--- Copyright   : (c) 2015-2018 Rudy Matela--- License     : 3-Clause BSD  (see the file LICENSE)--- Maintainer  : Rudy Matela <rudy@matela.com.br>------ This module is part of LeanCheck,--- a simple enumerative property-based testing library.------ This module exports a 'Listable' instance for function enumeration by means--- of a 'CoListable' typeclass.  This is very similar to the coseries--- enumeration of SmallCheck.------ This module /does not currently work/, it it just a sketch and a stub.-module Test.LeanCheck.Function.Listable.CoListable () where--import Test.LeanCheck.Core-import Test.LeanCheck.Function.CoListable--instance (CoListable a, Listable b) => Listable (a -> b) where-  tiers = cotiers tiers
− src/Test/LeanCheck/Function/Listable/FunListable.hs
@@ -1,136 +0,0 @@--- |--- Module      : Test.LeanCheck.FunListable--- Copyright   : (c) 2015-2018 Rudy Matela--- License     : 3-Clause BSD  (see the file LICENSE)--- Maintainer  : Rudy Matela <rudy@matela.com.br>------ This module is part of LeanCheck,--- a simple enumerative property-based testing library.------ This module exports a 'Listable' instance for function enumeration by means--- of a 'FunListable' typeclass (similar to 'CoListable').------ This module /does not currently work/, it it just a sketch and a stub.-module Test.LeanCheck.Function.Listable.FunListable (FunListable (..)) where---import Test.LeanCheck-import Test.LeanCheck.Tiers-import Test.LeanCheck.Utils (Nat(..), Nat2(..), Nat3(..))-import Data.Maybe (fromMaybe)---sndArgTypeOf :: b -> (a -> b -> c) -> b-x `sndArgTypeOf` _ = x---instance (FunListable a, Listable b) => Listable (a -> b) where-  tiers = concatMapT mkfss funtiers-    where-    mkfss (n, mkf) = mapT mkf (products (replicate n tiers)-                    `suchThat` validResults (undefined `sndArgTypeOf` mkf))---(\+:/) :: [[a]] -> [[a]] -> [[a]]-xss \+:/ yss = xss \/ ([]:yss)-infixr 9 \+:/----- | This typeclass _does not currently work_.  It is a stub and a sketch.------ 'FunListable' is similar to 'CoListable' but a bit more complex to avoid--- some repetitions.-class FunListable a where-  validResults   :: a -> [b] -> Bool-  validResults   x  =  not . invalidResults x-  invalidResults :: a -> [b] -> Bool-  invalidResults x  =  not .   validResults x-  funtiers :: [[ (Int, [b] -> (a -> b)) ]]---- maybe the other function FunListable needs is a okResults that checks if--- results follow required pattern for each type:---   * for lists, there shouldnt be repeated element suffix---        a,a,a,a,a,b is ok---        a,b,c,d,e,e is not ok.---   * for integers, there shouldnt be adjacent repeated elements---        a,b,a,b,a,b,a,b is ok---        a,b,c,d,e,f,f,g is not ok---        of course, this for the enumeration where I have the points.---   * for pairs, apply the invariants accordingly in the matrix (is that---     possible?)---        I think it is.  Apply one invariant to columns, the other to lines.--instance FunListable () where-  validResults _ _ = True-  funtiers = [[ (1, \[r]  () -> r) ]]---instance FunListable Bool where-  validResults _ _ = True-  funtiers = [[ (2, \[r1,r2]  b -> if b then r1 else r2) ]]---- have funtiers = [[ (1, \[r1]  b -> r1) ]---                  ,[ (1, \[r1]  b -> if b then r1 else not r1 ]---                  ]---instance FunListable a => FunListable (Maybe a) where-  validResults _ _   =  True-  funtiers = mapT (\(n, mkf) -> (n+1, \(r:rs)  m -> case m of-                                                       Nothing -> r-                                                       Just x  -> mkf rs x)) funtiers---instance (FunListable a, FunListable b) => FunListable (Either a b) where-  validResults _ _  =  True-  funtiers = productWith-                (\(nf, mf) (ng, mg) -> (nf + ng, \rs  e -> case e of-                                                             Left  x -> mf (take nf rs) x-                                                             Right y -> mg (drop nf rs) y))-                funtiers-                funtiers----- NOTE: big problem: adding r1 == r2 below instroduces an Eq restriction on--- the result type.  Which does not exist for (a->b).  Maybe create a new--- typeclass: FunResult, then rename FunListable to FunArg.  This way we can--- have the equality check (or any other special checks) for types that have--- equality and ignore it for types that don't.-instance (FunListable a) => FunListable [a] where-  validResults _ [r1,r2]  {- -- | r1 == r2 -} =  False  -- The results cannot end with repetitions-  validResults x (r:rs)   =  validResults x rs-  validResults _ _        =  True-  funtiers = [[ (1, \[r]  xs -> r) ]]-         \+:/ mapT (\(n, f) -> (1 + n, \(r:rs)  xs -> case xs of-                                                        []     -> r-                                                        (x:xs) -> f rs (x,xs))) funtiers---instance (FunListable a, FunListable b) => FunListable (a,b) where-  validResults _ _  =  True  -- TODO: check lines and columns-  funtiers = productWith (\(n, f)  (m, g)-                            -> (n*m, \rs  (x,y) -> toMatrix m rs-                                                !! f [0..(n-1)] x-                                                !! g [0..(m-1)] y))-                funtiers-                funtiers---toMatrix :: Int -> [a] -> [[a]]-toMatrix n [] = []-toMatrix n xs = take n xs-              : toMatrix n (drop n xs)---instance FunListable Int where-  funtiers = [[]] -- TODO: implement funtiers :: [[...Int...]]-  -- mapT (... findInterval something ...) tiers--instance FunListable Nat where-  funtiers = [[]] -- TODO: implement funtiers :: [[...Nat...]]--instance FunListable Nat2 where-  funtiers = [[]] -- TODO: implement funtiers :: [[...Nat2...]]--instance FunListable Nat3 where-  funtiers = [[]] -- TODO: implement funtiers :: [[...Nat3...]]
− src/Test/LeanCheck/Function/Listable/Mixed.hs
@@ -1,20 +0,0 @@--- |--- Module      : Test.LeanCheck.Function.Mixed--- Copyright   : (c) 2015-2018 Rudy Matela--- License     : 3-Clause BSD  (see the file LICENSE)--- Maintainer  : Rudy Matela <rudy@matela.com.br>------ This module is part of LeanCheck,--- a simple enumerative property-based testing library.------ This module exports a 'Listable' instance for function enumeration--- by combining several enumeration strategies.-module Test.LeanCheck.Function.Listable.Mixed () where--import Test.LeanCheck.Core-import Test.LeanCheck.Function.ListsOfPairs-import Test.LeanCheck.Function.CoListable--instance (Eq a, Listable a, CoListable a, Listable b) => Listable (a -> b) where-  tiers = tiers -->> tiers-       \/ cotiers tiers
− src/Test/LeanCheck/Function/Listable/Periodic.hs
@@ -1,56 +0,0 @@--- |--- Module      : Test.LeanCheck.Function.Periodic--- Copyright   : (c) 2015-2018 Rudy Matela--- License     : 3-Clause BSD  (see the file LICENSE)--- Maintainer  : Rudy Matela <rudy@matela.com.br>------ This module is part of LeanCheck,--- a simple enumerative property-based testing library.------ This module exports a 'Listable' instance for enumeration of periodic--- functions.------ This module /barely works/ and is just a sketch.-module Test.LeanCheck.Function.Listable.Periodic () where---import Test.LeanCheck-import Data.List (inits)---instance (Eq a, Eq b, Listable a, Listable b) => Listable (a -> b) where-  tiers = mapT pairsToFunction $ functions list tiers--functions :: Eq b => [a] -> [[b]] -> [[[(a,b)]]]-functions xs yss = mapT (zip xs . cycle) $ lsPeriodsOfLimit xs yss--functionsz :: Eq b => [[a]] -> [[b]] -> [[[(a,b)]]]-functionsz xss = functions (concat xss)---lsPeriodsOf :: Eq a => [[a]] -> [[[a]]]-lsPeriodsOf xss = map (filter isPeriod) (listsOf xss)--lsPeriodsOfLimit :: Eq a => [b] -> [[a]] -> [[[a]]]-lsPeriodsOfLimit ys xss = map (filter isPeriod) (tiersOfLimit ys xss)---isPeriod :: Eq a => [a] -> Bool-isPeriod [] = False-isPeriod [x] = True-isPeriod xs = not $ any (`isPeriodOf` xs) $ (tail . init . inits) xs--isPeriodOf :: Eq a => [a] -> [a] -> Bool-xs `isPeriodOf` ys = length ys `mod` length xs == 0-                  && and (zipWith (==) (cycle xs) ys)---tiersOfLimit :: [b] -> [[a]] -> [[[a]]]-tiersOfLimit     [] xss = [[[]]]-tiersOfLimit (_:ys) xss = [[[]]] ++ productWith (:) xss (tiersOfLimit ys xss)---pairsToFunction :: Eq a => [(a,b)] -> (a -> b)-pairsToFunction ((x,y):ps) x' =  if x' == x-                                   then y-                                   else pairsToFunction ps x'
src/Test/LeanCheck/Function/Show.hs view
@@ -7,14 +7,69 @@ -- This module is part of LeanCheck, -- a simple enumerative property-based testing library. ----- A 'Show' instance for functions.+-- This module exports an orphan 'Show' instance for functions.+-- It shows functions as up to 8 case distinctions, one per line. ----- Warning: this is only intended to be used in testing modules.  Avoid--- importing this on modules that are used as libraries.+-- /Warning: this is only intended to be used in testing modules./+-- /Avoid importing this on modules that are used as libraries./+--+-- This is intended to 'Show' functions generated by the 'Listable' instance+-- for functions defined in "Test.LeanCheck.Function.Listable": functions that+-- have finite exceptions to a constant function.  It does work on other types+-- of functions, albeit using @"..."@.+--+-- > > print (&&)+-- > \x y -> case (x,y) of+-- >         (True,True) -> True+-- >         _ -> False+--+-- > > print (==>)+-- > \x y -> case (x,y) of+-- >         (True,False) -> False+-- >         _ -> True+--+-- > > print (==2)+-- > \x -> case x of+-- >       2 -> True+-- >       _ -> False+--+-- > > print (\x -> abs x < 2)+-- > \x -> case x of+-- >       0 -> True+-- >       1 -> True+-- >       -1 -> True+-- >       _ -> False+--+-- When the function cannot be defined by finite exceptions to a constant+-- function using 8 case-patterns, the rest of the function is represented by+-- @"..."@.+--+-- > > print (+)+-- > \x y -> case (x,y) of+-- >         (0,0) -> 0+-- >         (0,1) -> 1+-- >         (1,0) -> 1+-- >         (0,-1) -> -1+-- >         (1,1) -> 2+-- >         (-1,0) -> -1+-- >         (0,2) -> 2+-- >         (1,-1) -> 0+-- >         ...+--+-- The exported orphan 'Show' '->' instance is actually defined in+-- "Test.LeanCheck.Function.Show.EightLines".  An alternative is provided in+-- "Test.LeanCheck.Function.Show.FourCases".+--+-- The exported 'Show' instance only works for functions whose ultimate return+-- types are instances of 'Test.LeanCheck.Function.ShowFunction.ShowFunction'.+-- For user-defined algebraic datatypes that are instances of 'Show', their+-- ShowFunction instance can be defined by using+-- 'Test.LeanCheck.Function.ShowFunction.bindtiersShow':+--+-- > import Test.LeanCheck.Function.ShowFunction+-- >+-- > instance ShowFunction Ty where+-- >   bindtiers = bindtiersShow module Test.LeanCheck.Function.Show () where -import Test.LeanCheck.Function.ShowFunction--instance (Show a, Listable a, ShowFunction b) => Show (a->b) where-  showsPrec _ = (++) . showFunction 8-+import Test.LeanCheck.Function.Show.EightLines ()
+ src/Test/LeanCheck/Function/Show/EightLines.hs view
@@ -0,0 +1,72 @@+-- |+-- Module      : Test.LeanCheck.Function.Show.EightLines+-- Copyright   : (c) 2015-2018 Rudy Matela+-- License     : 3-Clause BSD  (see the file LICENSE)+-- Maintainer  : Rudy Matela <rudy@matela.com.br>+--+-- This module is part of LeanCheck,+-- a simple enumerative property-based testing library.+--+-- This module exports an orphan 'Show' instance for functions.+-- It shows functions as up to 8 case distinctions, one per line.+--+-- Please see "Test.LeanCheck.Function.Show.FourCases" for an alternative that+-- shows functions as up to 4 case distinctions in a single line.+--+-- The 'Show' '->' instance only works for functions of which ultimate return+-- types are instances of the 'ShowFunction' typeclass.  Please see+-- "Test.LeanCheck.Function.ShowFunction" for how to define these instances for+-- your user-defined algebraic datatypes.+--+-- Warning: this is only intended to be used in testing modules.  Avoid+-- importing this on modules that are used as libraries.+module Test.LeanCheck.Function.Show.EightLines () where++import Test.LeanCheck.Function.ShowFunction++-- | A multi-line show instance for functions.+--+-- This is intended to 'Show' functions generated by the 'Listable' instance+-- for functions defined in "Test.LeanCheck.Function.Listable": functions that+-- have finite exceptions to a constant function.  It does work on other types+-- of functions, albeit using @"..."@.+--+-- > > print (&&)+-- > \x y -> case (x,y) of+-- >         (True,True) -> True+-- >         _ -> False+--+-- > > print (==>)+-- > \x y -> case (x,y) of+-- >         (True,False) -> False+-- >         _ -> True+--+-- > > print (==2)+-- > \x -> case x of+-- >       2 -> True+-- >       _ -> False+--+-- > > print (\x -> abs x < 2)+-- > \x -> case x of+-- >       0 -> True+-- >       1 -> True+-- >       -1 -> True+-- >       _ -> False+--+-- When the function cannot be defined by finite exceptions to a constant+-- function using 8 case-patterns, the rest of the function is represented by+-- @"..."@.+--+-- > > print (+)+-- > \x y -> case (x,y) of+-- >         (0,0) -> 0+-- >         (0,1) -> 1+-- >         (1,0) -> 1+-- >         (0,-1) -> -1+-- >         (1,1) -> 2+-- >         (-1,0) -> -1+-- >         (0,2) -> 2+-- >         (1,-1) -> 0+-- >         ...+instance (Show a, Listable a, ShowFunction b) => Show (a->b) where+  showsPrec _ = (++) . showFunction 8
+ src/Test/LeanCheck/Function/Show/FourCases.hs view
@@ -0,0 +1,53 @@+-- |+-- Module      : Test.LeanCheck.Function.Show.FourCases+-- Copyright   : (c) 2015-2018 Rudy Matela+-- License     : 3-Clause BSD  (see the file LICENSE)+-- Maintainer  : Rudy Matela <rudy@matela.com.br>+--+-- This module is part of LeanCheck,+-- a simple enumerative property-based testing library.+--+-- This module exports an orphan 'Show' instance for functions.+-- It shows functions as up to 4 case distinctions in a single line.+--+-- Please see "Test.LeanCheck.Function.Show.EightLines" for an alternative that+-- shows functions as up to 8 case distinctions, one per line.+--+-- The 'Show' '->' instance only works for functions of which ultimate return+-- types are instances of the 'ShowFunction' typeclass.  Please see+-- "Test.LeanCheck.Function.ShowFunction" for how to define these instances for+-- your user-defined algebraic datatypes.+--+-- Warning: this is only intended to be used in testing modules.  Avoid+-- importing this on modules that are used as libraries.+module Test.LeanCheck.Function.Show.FourCases () where++import Test.LeanCheck.Function.ShowFunction++-- | A single-line show instance for functions.+--+-- This is intended to 'Show' functions generated by the 'Listable' instance+-- for functions defined in "Test.LeanCheck.Function.Listable": functions that+-- have finite exceptions to a constant function.  It does work on other types+-- of functions, albeit using @"..."@.+--+-- > > print (&&)+-- > \x y -> case (x,y) of (True,True) -> True; _ -> False+--+-- > > print (==>)+-- > \x y -> case (x,y) of (True,False) -> False; _ -> True+--+-- > > print (==2)+-- > \x -> case x of 2 -> True; _ -> False+--+-- > > print (\x -> abs x < 2)+-- > \x -> case x of 0 -> True; 1 -> True; -1 -> True; _ -> False+--+-- When the function cannot be defined by finite exceptions to a constant+-- function using 8 case-patterns, the rest of the function is represented by+-- @"..."@.+--+-- > > print (+)+-- > \x y -> case (x,y) of (0,0) -> 0; (0,1) -> 1; (1,0) -> 1; (0,-1) -> -1; ...+instance (Show a, Listable a, ShowFunction b) => Show (a->b) where+  showsPrec d = showParen (d>10) . (++) . showFunctionLine 4
src/Test/LeanCheck/Function/ShowFunction.hs view
@@ -11,7 +11,7 @@ -- its instances and related functions. -- -- Using this module, it is possible to implement--- a Show instance for functions:+-- a 'Show' instance for functions: -- -- > import Test.LeanCheck.ShowFunction -- > instance (Show a, Listable a, ShowFunction b) => Show (a->b) where@@ -19,16 +19,36 @@ -- -- This shows functions as a case pattern with up to 8 cases. ----- The module--- @Test.LeanCheck.Function.Show@ ('Test.LeanCheck.Function.Show')+-- It will only work for functions whose ultimate return value is an instance+-- of 'ShowFunction'.  This module provides instances for most standard data+-- types ('Int', 'Bool', 'Maybe', ...).  Please see the 'ShowFunction'+-- typeclass documentation for how to declare istances for user-defined data+-- types.+--+-- The modules+-- "Test.LeanCheck.Function"+-- and+-- "Test.LeanCheck.Function.Show" -- exports an instance like the one above. module Test.LeanCheck.Function.ShowFunction-  ( showFunction+  (+  -- * Showing functions+    showFunction   , showFunctionLine++  -- * Support for user-defined algebraic datatypes on return values+  , ShowFunction (..)+  , bindtiersShow++  -- * Listing functional bindings   , Binding   , bindings-  , ShowFunction (..)-  , tBindingsShow++  -- * Pipeline for explaining, describing and clarifying bindings+  , explainedBindings+  , describedBindings+  , clarifiedBindings+   -- * Re-exports   , Listable   )@@ -37,59 +57,133 @@ import Test.LeanCheck.Core import Test.LeanCheck.Error (errorToNothing) import Test.LeanCheck.Utils.Types-import Data.List+import Test.LeanCheck.Stats (classifyOn)+import Data.List (intercalate, sortBy) import Data.Maybe+import Data.Function (on)  -- | A functional binding in a showable format.+--   Argument values are represented as a list of strings.+--   The result value is represented by 'Just' a 'String' when defined+--   or by 'Nothing' when 'undefined'. type Binding = ([String], Maybe String)  -- | 'ShowFunction' values are those for which --   we can return a list of functional bindings. ----- As a user, you probably want 'showFunction' and 'showFunctionLine'.------ Non functional instances should be defined by:+-- Instances for 'show'able algebraic datatypes are defined using+-- 'bindtiersShow': ----- > instance ShowFunction Ty where tBindings = tBindingsShow+-- > instance ShowFunction Ty where bindtiers = bindtiersShow class ShowFunction a where-  tBindings :: a -> [[Binding]]+  bindtiers :: a -> [[Binding]] --- | Given a 'ShowFunction' value, return a list of bindings---   for printing.  Examples:+-- | Given a 'ShowFunction' value, return a list of 'Binding's.+--   If the domain of the given argument function is infinite,+--   the resulting list is infinite. ----- > bindings True == [([],True)]--- > bindings (id::Int) == [(["0"],"0"), (["1"],"1"), (["-1"],"-1"), ...--- > bindings (&&) == [ (["False","False"], "False")--- >                  , (["False","True"], "False")--- >                  , (["True","False"], "False")--- >                  , (["True","True"], "True")--- >                  ]+-- Some examples follow.  These are used as running examples in the definition+-- of 'explainedBindings', 'describedBindings' and 'clarifiedBindings'.+--+-- * Defined return values are represented as 'Just' 'String's:+--+--     > > bindings True+--     > [([],Just "True")]+--+-- * Undefined return values are represented as @Nothing@:+--+--     > > bindings undefined+--     > [([],Nothing)]+--+-- * Infinite domains result in an infinite bindings list:+--+--     > > bindings (id::Int->Int)+--     > [ (["0"], Just "0")+--     > , (["1"], Just "1")+--     > , (["-1"], Just "-1")+--     > , ...+--     > ]+--+-- * Finite domains result in a finite bindings list:+--+--     > > bindings (&&)+--     > [ (["False","False"], Just "False")+--     > , (["False","True"], Just "False")+--     > , (["True","False"], Just "False")+--     > , (["True","True"], Just "True")+--     > ]+--+--     > > bindings (||)+--     > [ (["False","False"], Just "False")+--     > , (["False","True"], Just "True")+--     > , (["True","False"], Just "True")+--     > , (["True","True"], Just "True")+--     > ]+--+-- * Even very simple functions are represented by an infinite list of bindings:+--+--     > > bindings (== 0)+--     > [ (["0"], Just "True")+--     > , (["1"], Just "False")+--     > , (["-1"], Just "False")+--     > , ...+--     > ]+--+--     > > bindings (== 1)+--     > [ (["0"], Just "False")+--     > , (["1"], Just "True")+--     > , (["-1"], Just "False")+--     > , ...+--     > ]+--+-- * Ignored arguments are still listed:+--+--     > > bindings ((\_ y -> y == 1) :: Int -> Int -> Bool)+--     > [ (["0","0"], Just "False")+--     > , (["0","1"], Just "True")+--     > , (["1","0"], Just "False")+--     > , ...+--     > ]+--+-- * Again, undefined values are represented as 'Nothing'.+--   Here, the 'head' of an empty list is undefined:+--+--     > > bindings (head :: [Int] -> Int)+--     > [ (["[]"], Nothing)+--     > , (["[0]"], Just "0")+--     > , (["[0,0]"], Just "0")+--     > , (["[1]"], Just "1")+--     > , ...+--     > ] bindings :: ShowFunction a => a -> [Binding]-bindings = concat . tBindings+bindings = concat . bindtiers  --- instances for (algebraic/numeric) data types ----- | A default implementation of tBindings for already 'Show'-able types.-tBindingsShow :: Show a => a -> [[Binding]]-tBindingsShow x = [[([],errorToNothing $ show x)]]+-- | A drop-in implementation of 'bindtiers' for 'show'able types.+--+-- Define instances for 'show'able algebraic datatypes as:+--+-- > instance ShowFunction Ty where bindtiers = bindtiersShow+bindtiersShow :: Show a => a -> [[Binding]]+bindtiersShow x = [[([],errorToNothing $ show x)]] -instance ShowFunction ()       where tBindings = tBindingsShow-instance ShowFunction Bool     where tBindings = tBindingsShow-instance ShowFunction Int      where tBindings = tBindingsShow-instance ShowFunction Integer  where tBindings = tBindingsShow-instance ShowFunction Char     where tBindings = tBindingsShow-instance ShowFunction Float    where tBindings = tBindingsShow-instance ShowFunction Double   where tBindings = tBindingsShow-instance ShowFunction Ordering where tBindings = tBindingsShow-instance Show a => ShowFunction [a]       where tBindings = tBindingsShow-instance Show a => ShowFunction (Maybe a) where tBindings = tBindingsShow-instance (Show a, Show b) => ShowFunction (Either a b) where tBindings = tBindingsShow-instance (Show a, Show b) => ShowFunction (a,b) where tBindings = tBindingsShow+instance ShowFunction ()       where bindtiers = bindtiersShow+instance ShowFunction Bool     where bindtiers = bindtiersShow+instance ShowFunction Int      where bindtiers = bindtiersShow+instance ShowFunction Integer  where bindtiers = bindtiersShow+instance ShowFunction Char     where bindtiers = bindtiersShow+instance ShowFunction Float    where bindtiers = bindtiersShow+instance ShowFunction Double   where bindtiers = bindtiersShow+instance ShowFunction Ordering where bindtiers = bindtiersShow+instance Show a => ShowFunction [a]       where bindtiers = bindtiersShow+instance Show a => ShowFunction (Maybe a) where bindtiers = bindtiersShow+instance (Show a, Show b) => ShowFunction (Either a b) where bindtiers = bindtiersShow+instance (Show a, Show b) => ShowFunction (a,b) where bindtiers = bindtiersShow  -- instance for functional value type -- instance (Show a, Listable a, ShowFunction b) => ShowFunction (a->b) where-  tBindings f = concatMapT tBindingsFor tiers-    where tBindingsFor x = mapFst (show x:) `mapT` tBindings (f x)+  bindtiers f = concatMapT bindtiersFor tiers+    where bindtiersFor x = mapFst (show x:) `mapT` bindtiers (f x)           mapFst f (x,y) = (f x, y)  paren :: String -> String@@ -100,16 +194,18 @@   where varnames = ["x","y","z","w"] ++ map (++"'") varnames  showTuple :: [String] -> String-showTuple [x] = x-showTuple xs  = paren $ intercalate "," xs+showTuple [x]  =  x+showTuple xs | all (== "_") xs  =  "_"+             | otherwise        =  paren $ intercalate "," xs -showNBindingsOf :: ShowFunction a => Int -> Int -> a -> [String]-showNBindingsOf m n f = take n bs-                     ++ ["..." | length bs' >= m || length bs > n]-  where bs' = take m $ bindings f-        bs = [ showTuple as ++ " -> " ++ r-             | (as, Just r) <- bs' ]+showBindings :: [Binding] -> [String]+showBindings bs = [ showTuple as ++ " -> " ++ r | (as, Just r) <- bs ] +showNBindings :: Bool -> Int -> [Binding] -> [String]+showNBindings infinite n bs' = take n bs ++ ["..." | infinite || length bs > n]+  where+  bs = showBindings bs'+ isValue :: ShowFunction a => a -> Bool isValue f = case bindings f of               [([],_)] -> True@@ -120,86 +216,389 @@                   Nothing -> "undefined"                   Just x' -> x' --- | Given a number of patterns to show, shows a 'ShowFunction' value.+-- | Given the number of patterns to show, shows a 'ShowFunction' value. ----- > showFunction undefined True == "True"--- > showFunction 3 (id::Int) == "\\x -> case x of\n\--- >                              \        0 -> 0\n\--- >                              \        1 -> 1\n\--- >                              \        -1 -> -1\n\--- >                              \        ...\n"--- > showFunction 4 (&&) == "\\x y -> case (x,y) of\n\--- >                         \          (False,False) -> False\n\--- >                         \          (False,True) -> False\n\--- >                         \          (True,False) -> False\n\--- >                         \          (True,True) -> True\n"+-- > > putStrLn $ showFunction undefined True+-- > True+-- >+-- > > putStrLn $ showFunction 3 (id::Int->Int)+-- > \x -> case x of+-- >       0 -> 0+-- >       1 -> 1+-- >       -1 -> -1+-- >       ...+-- >+-- > > putStrLn $ showFunction 4 (&&)+-- > \x y -> case (x,y) of+-- >         (True,True) -> True+-- >         _ -> False+-- > ----- This can be used as an implementation of show for functions:+-- In the examples above, "@...@" should be interpreted literally. --+-- This can be used as an implementation of 'show' for functions:+-- -- > instance (Show a, Listable a, ShowFunction b) => Show (a->b) where -- >   show = showFunction 8+--+-- See 'showFunctionLine' for an alternative without line breaks. showFunction :: ShowFunction a => Int -> a -> String showFunction n = showFunctionL False (n*n+1) n --- | Same as showFunction, but has no line breaks.+-- | Same as 'showFunction', but has no line breaks. ----- > showFunction 2 (id::Int) == "\\x -> case x of 0 -> 0; 1 -> 1; ..."+-- > > putStrLn $ showFunctionLine 3 (id::Int->Int)+-- > \x -> case x of 0 -> 0; 1 -> 1; -1 -> -1; ...+-- > > putStrLn $ showFunctionLine 3 (&&)+-- > \x y -> case (x,y) of (True,True) -> True; _ -> False+--+-- This can be used as an implementation of 'show' for functions:+--+-- > instance (Show a, Listable a, ShowFunction b) => Show (a->b) where+-- >   show = showFunction 8 showFunctionLine :: ShowFunction a => Int -> a -> String showFunctionLine n = showFunctionL True (n*n+1) n --- | isUndefined checks if a function is totally undefined.--- When it is not possible to check all values, it returns false+-- | isUndefined checks if a function is totally undefined+--   for the given maximum number of values isUndefined :: ShowFunction a => Int -> a -> Bool-isUndefined m f = length bs < m && all (isNothing . snd) bs-  where bs = take m $ bindings f+isUndefined m = all (isNothing . snd) . take m . bindings +-- | checks if a function is constant+--   for the given maximum number of values+isConstant :: ShowFunction a => Int -> a -> Bool+isConstant m f = case take m $ bindings f of+                 []          -> False -- uninhabited type?+                 ((_,r'):bs) -> all (\(_,r) -> r == r') bs++-- | shows a constant function+showConstant :: ShowFunction a => Int -> a -> String+showConstant m f = "\\" ++ unwords vs ++ " -> " ++ fromMaybe "undefined" r+  where+  (as,r) = head $ 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   where-    vs = varnamesFor f     lambdaPat = "\\" ++ unwords vs ++ " -> "-    casePat = "case " ++ showTuple vs ++ " of"-    bs = showNBindingsOf m n f+    casePat = "case " ++ showTuple (filter (/= "_") vs) ++ " of"+    (vs, bindings) = clarifiedBindings m n f+    bs = showNBindings (length bindings >= m) n bindings     sep | singleLine = " "         | otherwise = "\n"     cases | singleLine = intercalate "; " bs           | otherwise  = unlines-                       $ (replicate (length lambdaPat + 2) ' ' ++) `map` bs+                       $ (replicate (length lambdaPat) ' ' ++) `map` bs     caseExp = if isUndefined m f                 then "undefined"                 else casePat ++ sep ++ cases  -- instances for further tuple arities -- instance (Show a, Show b, Show c)-      => ShowFunction (a,b,c) where tBindings = tBindingsShow+      => ShowFunction (a,b,c) where bindtiers = bindtiersShow instance (Show a, Show b, Show c, Show d)-      => ShowFunction (a,b,c,d) where tBindings = tBindingsShow+      => ShowFunction (a,b,c,d) where bindtiers = bindtiersShow instance (Show a, Show b, Show c, Show d, Show e)-      => ShowFunction (a,b,c,d,e) where tBindings = tBindingsShow+      => ShowFunction (a,b,c,d,e) where bindtiers = bindtiersShow instance (Show a, Show b, Show c, Show d, Show e, Show f)-      => ShowFunction (a,b,c,d,e,f) where tBindings = tBindingsShow+      => ShowFunction (a,b,c,d,e,f) where bindtiers = bindtiersShow instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g)-      => ShowFunction (a,b,c,d,e,f,g) where tBindings = tBindingsShow+      => ShowFunction (a,b,c,d,e,f,g) where bindtiers = bindtiersShow instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h)-      => ShowFunction (a,b,c,d,e,f,g,h) where tBindings = tBindingsShow+      => ShowFunction (a,b,c,d,e,f,g,h) where bindtiers = bindtiersShow  -- instance for types from Test.LeanCheck.Utils.Types-instance ShowFunction Nat   where tBindings = tBindingsShow-instance ShowFunction Nat1  where tBindings = tBindingsShow-instance ShowFunction Nat2  where tBindings = tBindingsShow-instance ShowFunction Nat3  where tBindings = tBindingsShow-instance ShowFunction Nat4  where tBindings = tBindingsShow-instance ShowFunction Nat5  where tBindings = tBindingsShow-instance ShowFunction Nat6  where tBindings = tBindingsShow-instance ShowFunction Nat7  where tBindings = tBindingsShow-instance ShowFunction Int1  where tBindings = tBindingsShow-instance ShowFunction Int2  where tBindings = tBindingsShow-instance ShowFunction Int3  where tBindings = tBindingsShow-instance ShowFunction Int4  where tBindings = tBindingsShow-instance ShowFunction Word1 where tBindings = tBindingsShow-instance ShowFunction Word2 where tBindings = tBindingsShow-instance ShowFunction Word3 where tBindings = tBindingsShow-instance ShowFunction Word4 where tBindings = tBindingsShow+instance ShowFunction Nat   where bindtiers = bindtiersShow+instance ShowFunction Nat1  where bindtiers = bindtiersShow+instance ShowFunction Nat2  where bindtiers = bindtiersShow+instance ShowFunction Nat3  where bindtiers = bindtiersShow+instance ShowFunction Nat4  where bindtiers = bindtiersShow+instance ShowFunction Nat5  where bindtiers = bindtiersShow+instance ShowFunction Nat6  where bindtiers = bindtiersShow+instance ShowFunction Nat7  where bindtiers = bindtiersShow+instance ShowFunction Int1  where bindtiers = bindtiersShow+instance ShowFunction Int2  where bindtiers = bindtiersShow+instance ShowFunction Int3  where bindtiers = bindtiersShow+instance ShowFunction Int4  where bindtiers = bindtiersShow+instance ShowFunction Word1 where bindtiers = bindtiersShow+instance ShowFunction Word2 where bindtiers = bindtiersShow+instance ShowFunction Word3 where bindtiers = bindtiersShow+instance ShowFunction Word4 where bindtiers = bindtiersShow++-- | Hard coded function names and bindings+--   Search this list for a short name for your function.+functionNames :: [(String, [Binding])]+functionNames =+  [ "id"    `for` (id          :: () -> ())+  , "const" `for` (const       :: () -> () -> ())++  -- booleans+  , "id"    `for` (id          :: Bool -> Bool)+  , "not"   `for` (not         :: Bool -> Bool)+  , "const" `for` (const :: Bool -> Bool -> Bool)++  , "(&&)"  `for` (&&)+  , "(||)"  `for` (||)++  -- numeric types+  , "id"      `for` (id      :: Int -> Int)+  , "const"   `for` (const   :: Int -> Int -> Int)++  -- Num typeclass+  , "(+)"     `for` ((+)     :: Int -> Int -> Int)+  , "(-)"     `for` ((-)     :: Int -> Int -> Int)+  , "(*)"     `for` ((*)     :: Int -> Int -> Int)+  , "negate"  `for` (negate  :: Int -> Int)+  , "abs"     `for` (abs     :: Int -> Int)+  , "signum"  `for` (signum  :: Int -> Int)++  -- integer properties+  , "odd"     `for` (odd     :: Int -> Bool)+  , "even"    `for` (even    :: Int -> Bool)+  ]+  where+  n `for` f = (n, bindings f)++-- | Tries to name a function heuristically+name :: ShowFunction a => Int -> a -> Maybe String+name n f = listToMaybe [ nm | (nm, bs) <- functionNames+                            , take n bs == take n (bindings f)]++canName :: ShowFunction a => Int -> a -> Bool+canName n = isJust . name n++showName :: ShowFunction a => Int -> a -> String+showName n = fromMaybe "unknown" . name n++-- | Returns a set of variables and a set of bindings+--   describing how a function works.+--+-- Some argument values are generalized to "@_@" when possible.+-- If one of the function arguments is not used altogether, it is ommited in+-- the set of bindings and appears as "_" in the variables list.+--+-- This is the /last/ function in the clarification pipeline.+--+-- It takes two integer arguments:+--+-- 1. @m@: the maximum number of cases considered for computing the description;+-- 2. @n@: the maximum number of cases in the actual description.+--+-- As a general rule of thumb, set @m=n*n+1@.+--+-- Some examples follow:+--+-- * When all arguments are used, the result is the same as 'describedBindings':+--+--     > > clarifiedBindings 100 10 (==1)+--     > ( ["x"], [ (["1"],Just "True"),+--     >          , (["_"],Just "False") ] )+--+-- * When some arguments are unused, they are omitted in the list of bindings and+--   appear as @"_"@ in the list of variables.+--+--     > > clarifiedBindings 100 10 (\_ y -> y == 1)+--     > ( ["_", "y"], [ (["1"],Just "True")+--     >               , (["_"],Just "False") ] )+clarifiedBindings :: ShowFunction a => Int -> Int -> a -> ([String],[Binding])+clarifiedBindings m n = clarifyBindings . describedBindings m n++clarifyBindings :: [Binding] -> ([String],[Binding])+clarifyBindings bs  =  (varnamesByUsage used, map (mapFst $ select used) bs)+  where+  mapFst f (x,y) = (f x, y)+  used = usedArgs bs++varnamesByUsage :: [Bool] -> [String]+varnamesByUsage = zipWith used varnames+  where+  used s False = "_"+  used s True  = s+  varnames = ["x","y","z","w"] ++ map (++"'") varnames++usedArgs :: [Binding] -> [Bool]+usedArgs = foldr1 (zipWith (||))+         . map (map (/= "_") . fst)++-- | Returns a set of bindings describing how a function works.+-- Some argument values are generalized to "@_@" when possible.+-- It takes two integer arguments:+--+-- 1. @m@: the maximum number of cases considered for computing description;+-- 2. @n@: the maximum number of cases in the actual description.+--+-- As a general rule of thumb, set @m=n*n+1@.+--+-- This is the /second/ function in the clarification pipeline.+--+-- This function processes the result of 'explainedBindings'+-- to sometimes return shorter descriptions.+-- It chooses the shortest of the following (in order):+--+-- * regular unexplained-undescribed 'bindings';+-- * regular 'explainedBindings';+-- * 'explainedBindings' with least occurring cases generalized first;+--+-- Here are some examples:+--+-- * Sometimes the result is the same as 'explainedBindings':+--+--     > > describedBindings 100 10 (||)+--     > [ (["False","False"],Just "False")+--     > , (["_","_"],Just "True") ]+--+--     > > describedBindings 100 10 (==0)+--     > [ (["0"],Just "True")+--     > , (["_"],Just "False") ]+--+-- * but sometimes it is shorter because we consider generalizing least+--   occurring cases first:+--+--     > > describedBindings 100 10 (&&)+--     > [ ( ["True","True"],Just "True")+--     > , ( ["_","_"],Just "False") ]+--+--     > > describedBindings 100 10 (==1)+--     > [ (["1"],Just "True"),+--     > , (["_"],Just "False") ]+--+--     > > describedBindings 100 10 (\_ y -> y == 1)+--     > [ (["_","1"],Just "True")+--     > , (["_","_"],Just "False") ]+describedBindings :: ShowFunction a => Int -> Int -> a -> [Binding]+describedBindings m n f+  | length bs1 <= n  =  bs1+  | otherwise        =  bs0+  where+  bs0  =  take m $ bindings f+  bs1  =  describeBindings bs0++describeBindings :: [Binding] -> [Binding]+describeBindings bs = head $ sortOn length $+  [ bs+  , explainBindings bs+  , explainBindings . concat . sortOn length $ classifyOn snd bs+  ]++-- | Returns a set of bindings explaining how a function works.+--   Some argument values are generalized to "@_@" when possible.+--   It takes as argument the maximum number of cases+--   considered for computing the explanation.+--+-- A measure of success in this generalization process is if this function+-- returns less values than the asked maximum number of cases.+--+-- This is the /first/ function in the clarification pipeline.+--+-- * In some cases, 'bindings' cannot be "explained"+--   an almost unchanged result of 'bindings' is returned+--   with the last binding having variables replaced by "@_@":+--+--     > > explainedBindings 4 (id::Int->Int)+--     > [ (["0"],Just "0")+--     > , (["1"],Just "1")+--     > , (["-1"],Just "-1")+--     > , (["_"],Just "2") ]+--+-- * When possible, some cases are generalized using @_@:+--+--     > > explainedBindings 10 (||)+--     > [ (["False","False"],Just "False")+--     > , (["_","_"],Just "True") ]+--+--     but the resulting "explanation" might not be the shortest possible+--     (cf. 'describedBindings'):+--+--     > > explainedBindings 10 (&&)+--     > [ ( ["False","_"],Just "False")+--     > , (["_","False"],Just "False")+--     > , (["_","_"],Just "True") ]+--+-- * Generalization works for infinite domains (heuristically):+--+--     > > explainedBindings 10 (==0)+--     > [ (["0"],Just "True")+--     > , (["_"],Just "False") ]+--+-- * Generalization for each item is processed in the order they are generated by 'bindings'+--   hence explanations are not always the shortest possible (cf. 'describedBindings').+--   In the following examples, the first case is redundant.+--+--     > > explainedBindings 10 (==1)+--     > [ (["0"],Just "False")+--     > , (["1"],Just "True"),+--     > , (["_"],Just "False") ]+--+--     > > explainedBindings 10 (\_ y -> y == 1)+--     > [ (["_","0"],Just "False")+--     > , (["_","1"],Just "True")+--     > , (["_","_"],Just "False") ]+explainedBindings :: ShowFunction a => Int -> a -> [Binding]+explainedBindings m = explainBindings . take m . bindings++explainBindings :: [Binding] -> [Binding]+explainBindings = explain []+  where+  explain :: [Binding] -> [Binding] -> [Binding]+  explain bs' []           =  reverse bs'+  explain bs' ((as,r):bs)  =  explain (bs''++bs') [b | b <- bs, none (b <~~) bs'']+    where+    bs'' = discardLater (<~~)+         [ (gas,r) | gas <- generalizations as+                   , and [r' == r | (as',r') <- bs, as' <~ gas] ]++generalizations :: [String] -> [[String]]+generalizations []     = [[]]+generalizations (v:vs) = map ("_":) gvs ++ map (v:) gvs+  where+  gvs = generalizations vs++-- | Should be read as "is generalized by":+--+-- > > ["1","2","3"] <~ ["_","_","_"]+-- > True+-- > > ["_","_","_"] <~ ["1","2","3"]+-- > False+-- > > ["1","3"] <~ ["_","3"]+-- > True+-- > > ["_","3"] <~ ["_","4"]+-- > False+(<~) :: [String] -> [String] -> Bool+[]     <~ []       =  True+(v:vs) <~ ("_":ws) =  vs <~ ws+(v:vs) <~ (w:ws)   =  v == w && vs <~ ws+_      <~ _        =  False++-- | Should be read as "is generalized by".+(<~~) :: Binding -> Binding -> Bool+(as,r) <~~ (as',r') = as <~ as' && r == r'+++-- general auxiliary functions++discard :: (a -> Bool) -> [a] -> [a]+discard p = filter (not . p)++discardLater :: (a -> a -> Bool) -> [a] -> [a]+discardLater (?>) = dl+  where+  dl []     = []+  dl (x:xs) = x : discard (?> x) (dl xs)++none :: (a -> Bool) -> [a] -> Bool+none p = not . any p++-- sortOn is only available on GHC > 7.8+sortOn :: Ord b => (a -> b) -> [a] -> [a]+sortOn f = sortBy (compare `on` f)++select :: [Bool] -> [a] -> [a]+select [] _ = []+select _ [] = []+select (p:ps) (x:xs) = if p then x : xs' else xs' where xs' = select ps xs
src/Test/LeanCheck/IO.hs view
@@ -44,6 +44,9 @@  -- | Check a property for a given number of tests --   printing results on 'stdout'+--+-- > > checkFor 1000 $ \xs -> sort (sort xs) == sort (xs::[Int])+-- > +++ OK, passed 1000 tests. checkFor :: Testable a => Int -> a -> IO () checkFor n p = checkResultFor n p >> return () @@ -51,6 +54,14 @@ --   printing results on 'stdout' and --   returning 'True' on success. --+-- > > p <- checkResult $ \xs -> sort (sort xs) == sort (xs::[Int])+-- > +++ OK, passed 200 tests.+-- > > q <- checkResult $ \xs ys -> xs `union` ys == ys `union` (xs::[Int])+-- > *** Failed! Falsifiable (after 4 tests):+-- > [] [0,0]+-- > > p && q+-- > False+-- -- There is no option to silence this function: -- for silence, you should use 'Test.LeanCheck.holds'. checkResult :: Testable a => a -> IO Bool@@ -59,6 +70,10 @@ -- | Check a property for a given number of tests --   printing results on 'stdout' and --   returning 'True' on success.+--+-- > > checkResultFor 1000 $ \xs -> sort (sort xs) == sort (xs::[Int])+-- > +++ OK, passed 1000 tests.+-- > True -- -- There is no option to silence this function: -- for silence, you should use 'Test.LeanCheck.holds'.
src/Test/LeanCheck/Tiers.hs view
@@ -215,21 +215,21 @@ -- | Takes as argument tiers of element values; --   returns tiers of lists of elements. ----- > listsOf [[]] == [[[]]]+-- > listsOf [[]]  =  [[[]]] ----- > listsOf [[x]] == [ [[]]--- >                  , [[x]]--- >                  , [[x,x]]--- >                  , [[x,x,x]]--- >                  , ...--- >                  ]+-- > listsOf [[x]]  =  [ [[]]+-- >                   , [[x]]+-- >                   , [[x,x]]+-- >                   , [[x,x,x]]+-- >                   , ...+-- >                   ] ----- > listsOf [[x],[y]] == [ [[]]--- >                      , [[x]]--- >                      , [[x,x],[y]]--- >                      , [[x,x,x],[x,y],[y,x]]--- >                      , ...--- >                      ]+-- > listsOf [[x],[y]]  =  [ [[]]+-- >                       , [[x]]+-- >                       , [[x,x],[y]]+-- >                       , [[x,x,x],[x,y],[y,x]]+-- >                       , ...+-- >                       ] listsOf :: [[a]] -> [[[a]]] listsOf xss = cons0 []            \/ delay (productWith (:) xss (listsOf xss))@@ -240,9 +240,9 @@ -- takes as argument a list of lists of tiers of elements; -- returns lists combining elements of each list of tiers. ----- > products [xss] = mapT (:[]) xss--- > products [xss,yss] = mapT (\(x,y) -> [x,y]) (xss >< yss)--- > products [xss,yss,zss] = product3With (\x y z -> [x,y,z]) xss yss zss+-- > products [xss]  =  mapT (:[]) xss+-- > products [xss,yss]  =  mapT (\(x,y) -> [x,y]) (xss >< yss)+-- > products [xss,yss,zss]  =  product3With (\x y z -> [x,y,z]) xss yss zss products :: [ [[a]] ] -> [[ [a] ]] products = foldr (productWith (:)) [[[]]] @@ -286,6 +286,7 @@ catMaybesT :: [[Maybe a]] -> [[a]] catMaybesT = map catMaybes +-- | Like 'mapMaybe' but for tiers. mapMaybeT :: (a -> Maybe b) -> [[a]] -> [[b]] mapMaybeT f = catMaybesT . mapT f 
src/Test/LeanCheck/Utils/Operators.hs view
@@ -53,6 +53,7 @@   , okOrd   , okEqOrd   , okNum+  , okNumNonNegative   ) where @@ -253,18 +254,21 @@              && okOrd x y z              && (x == y) == (x `compare` y == EQ) -- consistent instances +okNumNonNegative :: (Eq a, Num a) => a -> a -> a -> Bool+okNumNonNegative x y z  =  commutative (+) x y+                        && commutative (*) x y+                        && associative (+) x y z+                        && associative (*) x y z+                        && distributive (*) (+) x y z+                        && idempotent (+0) x+                        && idempotent (*1) x+                        && idempotent abs x+                        && idempotent signum x+                        && abs x * signum x == x+ okNum :: (Eq a, Num a) => a -> a -> a -> Bool-okNum x y z  =  commutative (+) x y-             && commutative (*) x y-             && associative (+) x y z-             && associative (*) x y z-             && distributive (*) (+) x y z-             && idempotent (+0) x-             && idempotent (*1) x-             && idempotent abs x-             && idempotent signum x+okNum x y z  =  okNumNonNegative x y z              && negate (negate x) == x-             && abs x * signum x == x              && x - x == 0  -- | Equal under, a ternary operator with the same fixity as '=='.
src/Test/LeanCheck/Utils/Types.hs view
@@ -60,6 +60,24 @@   , Bag (..)   , Set (..)   , Map (..)++  -- * Character types+  , Space (..)+  , Lower (..)+  , Upper (..)+  , Alpha (..)+  , Digit (..)+  , AlphaNum (..)+  , Letter (..)++  -- * String types+  , Spaces (..)+  , Lowers (..)+  , Uppers (..)+  , Alphas (..)+  , Digits (..)+  , AlphaNums (..)+  , Letters (..)   ) where -- TODO: Add Ix and Bits instances@@ -135,14 +153,17 @@ -- Internally, this type is represented as an 'Integer' -- allowing for an infinity of possible values. ----- Its 'Enum' and 'Listable' instances only produce non-negative values.--- Negatives can still be generated by 'negate' or subtraction.-newtype Natural = Natural { unNatural :: Int } deriving (Eq, Ord)+-- Its 'Enum', 'Listable' and 'Num' instances only produce non-negative values.+-- When @x < y@ then @x - y = 0@.+newtype Natural = Natural { unNatural :: Integer } deriving (Eq, Ord)  -- | Natural numbers (including 0): 0, 1, 2, 3, 4, 5, 6, 7, ... -- -- Internally, this type is represented as an 'Int'. -- So, it is limited by the 'maxBound' of 'Int'.+--+-- Its 'Enum', 'Listable' and 'Num' instances only produce non-negative values.+-- When @x < y@ then @x - y = 0@. newtype Nat = Nat { unNat :: Int } deriving (Eq, Ord)  -- | Natural numbers modulo 1: 0@@ -181,6 +202,8 @@ nat5 :: Int -> Nat5;  nat5 = Nat5 . (`mod` 5) nat6 :: Int -> Nat6;  nat6 = Nat6 . (`mod` 6) nat7 :: Int -> Nat7;  nat7 = Nat7 . (`mod` 7)+nat  :: Int -> Nat;   nat  = Nat  . (\x -> if x < 0 then 0 else x)+natural :: Integer -> Natural;  natural = Natural . (\x -> if x < 0 then 0 else x)  oInt1  ::(Int->Int->Int)->(Int1->Int1->Int1)   ; oInt1  = oNewtype int1  unInt1 oInt2  ::(Int->Int->Int)->(Int2->Int2->Int2)   ; oInt2  = oNewtype int2  unInt2@@ -190,7 +213,7 @@ oWord2 ::(Int->Int->Int)->(Word2->Word2->Word2); oWord2 = oNewtype word2 unWord2 oWord3 ::(Int->Int->Int)->(Word3->Word3->Word3); oWord3 = oNewtype word3 unWord3 oWord4 ::(Int->Int->Int)->(Word4->Word4->Word4); oWord4 = oNewtype word4 unWord4-oNat   ::(Int->Int->Int)->(Nat->Nat->Nat)      ; oNat   = oNewtype Nat   unNat+oNat   ::(Int->Int->Int)->(Nat->Nat->Nat)      ; oNat   = oNewtype nat   unNat oNat1  ::(Int->Int->Int)->(Nat1->Nat1->Nat1)   ; oNat1  = oNewtype nat1  unNat1 oNat2  ::(Int->Int->Int)->(Nat2->Nat2->Nat2)   ; oNat2  = oNewtype nat2  unNat2 oNat3  ::(Int->Int->Int)->(Nat3->Nat3->Nat3)   ; oNat3  = oNewtype nat3  unNat3@@ -198,8 +221,8 @@ oNat5  ::(Int->Int->Int)->(Nat5->Nat5->Nat5)   ; oNat5  = oNewtype nat5  unNat5 oNat6  ::(Int->Int->Int)->(Nat6->Nat6->Nat6)   ; oNat6  = oNewtype nat6  unNat6 oNat7  ::(Int->Int->Int)->(Nat7->Nat7->Nat7)   ; oNat7  = oNewtype nat7  unNat7-oNatural :: (Int->Int->Int) -> (Natural->Natural->Natural)-oNatural = oNewtype Natural unNatural+oNatural :: (Integer->Integer->Integer) -> (Natural->Natural->Natural)+oNatural = oNewtype natural unNatural  fInt1  :: (Int->Int) -> (Int1->Int1)   ; fInt1  = fNewtype int1  unInt1 fInt2  :: (Int->Int) -> (Int2->Int2)   ; fInt2  = fNewtype int2  unInt2@@ -217,7 +240,7 @@ fNat5  :: (Int->Int) -> (Nat5->Nat5)   ; fNat5  = fNewtype nat5  unNat5 fNat6  :: (Int->Int) -> (Nat6->Nat6)   ; fNat6  = fNewtype nat6  unNat6 fNat7  :: (Int->Int) -> (Nat7->Nat7)   ; fNat7  = fNewtype nat7  unNat7-fNatural :: (Int->Int) -> (Natural->Natural)+fNatural :: (Integer->Integer) -> (Natural->Natural) fNatural = fNewtype Natural unNatural  instance Show Int1 where show = show . unInt1@@ -246,7 +269,7 @@ instance Read Word2 where readsPrec = readsPrecNewtype word2 instance Read Word3 where readsPrec = readsPrecNewtype word3 instance Read Word4 where readsPrec = readsPrecNewtype word4-instance Read Nat where readsPrec = readsPrecNewtype Nat+instance Read Nat where readsPrec = readsPrecNewtype nat instance Read Nat1 where readsPrec = readsPrecNewtype nat1 instance Read Nat2 where readsPrec = readsPrecNewtype nat2 instance Read Nat3 where readsPrec = readsPrecNewtype nat3@@ -254,7 +277,7 @@ instance Read Nat5 where readsPrec = readsPrecNewtype nat5 instance Read Nat6 where readsPrec = readsPrecNewtype nat6 instance Read Nat7 where readsPrec = readsPrecNewtype nat7-instance Read Natural where readsPrec = readsPrecNewtype Natural+instance Read Natural where readsPrec = readsPrecNewtype natural   instance Num Int1 where (+) = oInt1 (+);  abs    = fInt1 abs@@ -291,7 +314,7 @@  instance Num Nat where (+) = oNat (+);  abs    = fNat abs                        (-) = oNat (-);  signum = fNat signum-                       (*) = oNat (*);  fromInteger = Nat . fromInteger+                       (*) = oNat (*);  fromInteger = nat . fromInteger  instance Num Nat1 where (+) = oNat1 (+);  abs    = fNat1 abs                         (-) = oNat1 (-);  signum = fNat1 signum@@ -324,7 +347,7 @@ instance Num Natural where   (+) = oNatural (+);  abs    = fNatural abs   (-) = oNatural (-);  signum = fNatural signum-  (*) = oNatural (*);  fromInteger = Natural . fromInteger+  (*) = oNatural (*);  fromInteger = natural . fromInteger   instance Real Int1 where toRational (Int1 x) = fromIntegral x % 1@@ -393,7 +416,7 @@ instance Integral Nat7 where quotRem = otNewtype nat7 unNat7 quotRem                              toInteger = toInteger . unNat7 -instance Integral Natural where quotRem = otNewtype Natural unNatural quotRem+instance Integral Natural where quotRem = otNewtype natural unNatural quotRem                                 toInteger = toInteger . unNatural  instance Bounded Int1 where maxBound = Int1 0; minBound = Int1 (-1)@@ -437,7 +460,7 @@ instance Enum Word4 where toEnum   = word4;   enumFrom     = boundedEnumFrom                           fromEnum = unWord4; enumFromThen = boundedEnumFromThen -instance Enum Nat where toEnum   = Nat;   enumFrom     = boundedEnumFrom+instance Enum Nat where toEnum   = nat;   enumFrom     = boundedEnumFrom                         fromEnum = unNat; enumFromThen = boundedEnumFromThen  instance Enum Nat1 where toEnum   = nat1;   enumFrom     = boundedEnumFrom@@ -462,8 +485,8 @@                          fromEnum = unNat7; enumFromThen = boundedEnumFromThen  instance Enum Natural where-  toEnum   = Natural-  fromEnum = unNatural;+  toEnum   = natural . fromIntegral+  fromEnum = fromInteger . unNatural;   enumFrom     (Natural x)             = map Natural [x..]   enumFromThen (Natural x) (Natural s) = map Natural [x,s..] @@ -471,19 +494,19 @@ instance Listable Int2 where list = listIntegral instance Listable Int3 where list = listIntegral instance Listable Int4 where list = listIntegral-instance Listable Word1 where list = [0..]-instance Listable Word2 where list = [0..]-instance Listable Word3 where list = [0..]-instance Listable Word4 where list = [0..]-instance Listable Nat where list = [0..]-instance Listable Nat1 where list = [0..]-instance Listable Nat2 where list = [0..]-instance Listable Nat3 where list = [0..]-instance Listable Nat4 where list = [0..]-instance Listable Nat5 where list = [0..]-instance Listable Nat6 where list = [0..]-instance Listable Nat7 where list = [0..]-instance Listable Natural where list = [0..]+instance Listable Word1 where list = listIntegral+instance Listable Word2 where list = listIntegral+instance Listable Word3 where list = listIntegral+instance Listable Word4 where list = listIntegral+instance Listable Nat where list = listIntegral+instance Listable Nat1 where list = listIntegral+instance Listable Nat2 where list = listIntegral+instance Listable Nat3 where list = listIntegral+instance Listable Nat4 where list = listIntegral+instance Listable Nat5 where list = listIntegral+instance Listable Nat6 where list = listIntegral+instance Listable Nat7 where list = listIntegral+instance Listable Natural where list = listIntegral  -- | Deprecated.  Use 'Word1'. type UInt1 = Word1@@ -618,3 +641,51 @@ instance (Integral a, Bounded a) => Listable (Xs a) where   tiers = cons1 (Xs . map unX) -- ^ Lists with elements of the 'X' type.++data Space  =  Space {unSpace :: Char}+data Lower  =  Lower {unLower :: Char}+data Upper  =  Upper {unUpper :: Char}+data Alpha  =  Alpha {unAlpha :: Char}+data Digit  =  Digit {unDigit :: Char}+data AlphaNum  =  AlphaNum {unAlphaNum :: Char}+data Letter    =  Letter   {unLetter   :: Char}++instance Show Space where show = show . unSpace+instance Show Lower where show = show . unLower+instance Show Upper where show = show . unUpper+instance Show Alpha where show = show . unAlpha+instance Show Digit where show = show . unDigit+instance Show AlphaNum where show = show . unAlphaNum+instance Show Letter   where show = show . unLetter++instance Listable Space where list = map Space [' ', '\t', '\n', '\r', '\f', '\v']+instance Listable Lower where list = map Lower ['a'..'z']+instance Listable Upper where list = map Upper ['A'..'Z']+instance Listable Alpha where list = map Alpha $ ['a'..'z'] +| ['A'..'Z']+instance Listable Digit where list = map Digit ['0'..'9']+instance Listable AlphaNum where list = map AlphaNum $ ['0'..'9'] +| ['a'..'z'] +| ['A'..'Z']+instance Listable Letter   where list = map Letter $ ['a'..'z'] +| ['A'..'Z']++data Spaces  =  Spaces {unSpaces :: String}+data Lowers  =  Lowers {unLowers :: String}+data Uppers  =  Uppers {unUppers :: String}+data Alphas  =  Alphas {unAlphas :: String}+data Digits  =  Digits {unDigits :: String}+data AlphaNums  =  AlphaNums {unAlphaNums :: String}+data Letters    =  Letters   {unLetters   :: String}++instance Show Spaces where show = show . unSpaces+instance Show Lowers where show = show . unLowers+instance Show Uppers where show = show . unUppers+instance Show Alphas where show = show . unAlphas+instance Show Digits where show = show . unDigits+instance Show AlphaNums where show = show . unAlphaNums+instance Show Letters   where show = show . unLetters++instance Listable Spaces where tiers = cons1 (Spaces . map unSpace)+instance Listable Lowers where tiers = cons1 (Lowers . map unLower)+instance Listable Uppers where tiers = cons1 (Uppers . map unUpper)+instance Listable Alphas where tiers = cons1 (Alphas . map unAlpha)+instance Listable Digits where tiers = cons1 (Digits . map unDigit)+instance Listable AlphaNums where tiers = cons1 (AlphaNums . map unAlphaNum)+instance Listable Letters   where tiers = cons1 (Letters   . map unLetter)
+ test/Test.hs view
@@ -0,0 +1,143 @@+-- |+-- Module      : Test+-- Copyright   : (c) 2015-2018 Rudy Matela+-- License     : 3-Clause BSD  (see the file LICENSE)+-- Maintainer  : Rudy Matela <rudy@matela.com.br>+--+-- This module is part of LeanCheck,+-- a simple enumerative property-based testing library.+--+-- Some helper functios to test LeanCheck itself.+module Test+  ( module Test.LeanCheck++  , tNatPairOrd+  , tNatTripleOrd+  , tNatQuadrupleOrd+  , tNatQuintupleOrd+  , tNatListOrd+  , tListsOfNatOrd+  , tPairEqParams+  , tTripleEqParams+  , tProductsIsFilterByLength++  , ordered+  , orderedBy+  , orderedOn+  , strictlyOrdered+  , strictlyOrderedBy+  , strictlyOrderedOn+  )+where++import Test.LeanCheck+import Data.List+import Data.Ord+import Test.LeanCheck.Utils.Types (Nat(..))++-- | check if a list is ordered+ordered :: Ord a => [a] -> Bool+ordered = orderedBy compare+-- ordered [] = True+-- ordered [_] = True+-- ordered (x:y:xs) = x <= y && ordered (y:xs)++strictlyOrdered :: Ord a => [a] -> Bool+strictlyOrdered = strictlyOrderedBy compare++-- | check if a list is ordered by a given ordering function+orderedBy :: (a -> a -> Ordering) -> [a] -> Bool+orderedBy _ [] = True+orderedBy _ [_] = True+orderedBy cmp (x:y:xs) = case x `cmp` y of+                           GT -> False+                           _  -> orderedBy cmp (y:xs)++orderedOn :: Ord b => (a -> b) -> [a] -> Bool+orderedOn f = orderedBy (comparing f)++-- | check if a list is strictly ordered by a given ordering function+strictlyOrderedBy :: (a -> a -> Ordering) -> [a] -> Bool+strictlyOrderedBy _ [] = True+strictlyOrderedBy _ [_] = True+strictlyOrderedBy cmp (x:y:xs) = case x `cmp` y of+                                   LT -> strictlyOrderedBy cmp (y:xs)+                                   _  -> False++strictlyOrderedOn :: Ord b => (a -> b) -> [a] -> Bool+strictlyOrderedOn f = strictlyOrderedBy (comparing f)++ifNotEq :: Ordering -> Ordering -> Ordering+-- Could be implemented as:  ifNotEq = mappend+ifNotEq EQ p = p+ifNotEq  o _ = o++thn :: (a->a->Ordering) -> (a->a->Ordering) -> a -> a -> Ordering+thn cmp1 cmp2 x y = (x `cmp1` y) `ifNotEq` (x `cmp2` y)+infixr 9 `thn`+++-- | checks if the first 'n' elements on tiers are ordered by 'cmp'.+--+-- > (n `seriesOrderedBy`) comparing (id :: Type)+tOrderedBy :: Listable a => Int -> (a -> a -> Ordering) -> Bool+tOrderedBy n cmp = orderedBy cmp $ take n list+infixr 9 `tOrderedBy`++tStrictlyOrderedBy :: Listable a => Int -> (a -> a -> Ordering) -> Bool+tStrictlyOrderedBy n cmp = strictlyOrderedBy cmp $ take n list+infixr 9 `tStrictlyOrderedBy`++tNatPairOrd :: Int -> Bool+tNatPairOrd n = n `tStrictlyOrderedBy`  comparing sum' `thn` compare+  where sum' (x,y) = x+y :: Nat++tNatTripleOrd :: Int -> Bool+tNatTripleOrd n = n `tStrictlyOrderedBy`  comparing sum' `thn` compare+  where sum' (x,y,z) = x+y+z :: Nat++tNatQuadrupleOrd :: Int -> Bool+tNatQuadrupleOrd n = n `tStrictlyOrderedBy`  comparing sum' `thn` compare+  where sum' (x,y,z,w) = x+y+z+w :: Nat++tNatQuintupleOrd :: Int -> Bool+tNatQuintupleOrd n = n `tStrictlyOrderedBy`  comparing sum' `thn` compare+  where sum' (x,y,z,w,v) = x+y+z+w+v :: Nat++tNatListOrd :: Int -> Bool+tNatListOrd n = n `tStrictlyOrderedBy`  comparing sum' `thn` compare+  where sum' = sum . map (+1) :: [Nat] -> Nat++tListsOfStrictlyOrderedBy :: Int+                           -> (a -> a -> Ordering)+                           -> [[a]]+                           -> Bool+tListsOfStrictlyOrderedBy n cmp = strictlyOrderedBy cmp . take n . concat+infixr 9 `tListsOfStrictlyOrderedBy`++tListsOfNatOrd :: Int -> Bool+tListsOfNatOrd n = tListsOfStrictlyOrderedBy n (comparing sum' `thn` compare) tiers+  where sum' = sum . map (+1) :: [Nat] -> Nat++tPairEqParams :: Int -> Bool+tPairEqParams n = ces == srs+  where+    ces = map (map read) $ counterExamples n fail+    srs = map pairToList $ take n list+    pairToList (x,y) = [x,y :: Nat]+    fail :: Nat -> Nat -> Bool+    fail x y = False++tTripleEqParams :: Int -> Bool+tTripleEqParams n = ces == srs+  where+    ces = map (map read) $ counterExamples n fail+    srs = map tripleToList $ take n list+    tripleToList (x,y,z) = [x,y,z :: Nat]+    fail :: Nat -> Nat -> Nat -> Bool+    fail x y z = False++tProductsIsFilterByLength :: Eq a => [[a]] -> Int -> Int -> Bool+tProductsIsFilterByLength values m n = concat (take m byProduct) `isPrefixOf` concat byFilter+  where byProduct = products $ replicate n values+        byFilter  = ((==n) . length) `filterT` listsOf values
+ test/derive.hs view
@@ -0,0 +1,106 @@+-- Copyright (c) 2015-2018 Rudy Matela.+-- Distributed under the 3-Clause BSD licence (see the file LICENSE).+{-# LANGUAGE TemplateHaskell, CPP #-}+import Test+import Test.LeanCheck+import Test.LeanCheck.Derive+import System.Exit (exitFailure)+import Data.List (elemIndices,sort)+import Test.LeanCheck.Utils.Operators++data D0       = D0                    deriving Show+data 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+data C2 a b   = C22 a b | C21 a | C20 deriving Show+data I a b    = a :+ b                deriving Show++deriveListable ''D0+deriveListable ''D1+deriveListable ''D2+deriveListable ''D3+deriveListable ''C1+deriveListable ''C2+deriveListable ''I++-- Nested datatype cascade+data Nested = Nested N0 (N1 Int) (N2 Int Int)+data N0     = R0 Int+data N1 a   = R1 a+data N2 a b = R2 a b+deriveListableCascading ''Nested++-- Recursive nested datatype cascade+data RN      = RN RN0 (RN1 Int) (RN2 Int RN)+data RN0     = Nest0 Int | Recurse0 RN+data RN1 a   = Nest1 a   | Recurse1 RN+data RN2 a b = Nest2 a b | Recurse2 RN+deriveListableCascading ''RN++-- Type synonyms+data Pair a = Pair a a+type Alias a = Pair a+-- deriveListable ''Alias -- this will fail+deriveListableCascading ''Alias+deriveListableIfNeeded ''Alias -- only works because instance already exists++-- Nested type synonyms+data Triple a = Triple a a a+type Tralias a = Triple a+data Pairiple a = Pairriple (Tralias a) (Tralias a)+deriveListableCascading ''Pairiple++-- Those should have no effect (instance already exists):+{- uncommenting those should generate warnings+deriveListable ''Bool+deriveListable ''Maybe+deriveListable ''Either+-}++-- Those should not generate warnings+deriveListableIfNeeded ''Bool+deriveListableIfNeeded ''Maybe+deriveListableIfNeeded ''Either++main :: IO ()+main =+  case elemIndices False (tests 100) of+    [] -> putStrLn "Tests passed!"+    is -> do putStrLn ("Failed tests:" ++ show is)+             exitFailure++tests n =+  [ True++  , map unD0 list =| n |= list+  , map unD1 list =| n |= (list :: [Int])+  , map unD2 list =| n |= (list :: [(Int,Int)])+  , map unD3 list =| n |= (list :: [(Int,Int,Int)])++  , map unD1 list == (list :: [()])+  , map unD2 list == (list :: [((),())])+  , map unD3 list == (list :: [((),(),())])++  , map unD1 list == (list :: [Bool])+  , map unD2 list == (list :: [(Bool,Bool)])+  , map unD3 list == (list :: [(Bool,Bool,Bool)])++  , (tiers :: [[ Bool       ]]) =| 6 |= $(deriveTiers ''Bool)+  , (tiers :: [[ [Int]      ]]) =| 6 |= $(deriveTiers ''[])+  , (tiers :: [[ [Bool]     ]]) =| 6 |= $(deriveTiers ''[])+  , (tiers :: [[ Maybe Int  ]]) =| 6 |= $(deriveTiers ''Maybe)+  , (tiers :: [[ Maybe Bool ]]) =| 6 |= $(deriveTiers ''Maybe)+  , ([]:tiers :: [[Either Bool Int]]) =$ map sort . take 6 $= $(deriveTiers ''Either)++  , (list :: [ Bool       ]) =| n |= $(deriveList ''Bool)+  , (list :: [ [Int]      ]) =| n |= $(deriveList ''[])+  , (list :: [ [Bool]     ]) =| n |= $(deriveList ''[])+  , (list :: [ Maybe Int  ]) =| n |= $(deriveList ''Maybe)+  , (list :: [ Maybe Bool ]) =| n |= $(deriveList ''Maybe)+  ]+  where+  unD0 (D0)       = ()+  unD1 (D1 x)     = (x)+  unD2 (D2 x y)   = (x,y)+  unD3 (D3 x y z) = (x,y,z)
+ test/diff/eg/higher-order.out view
@@ -0,0 +1,15 @@+*** 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]+
+ test/diff/eg/overflow.out view
@@ -0,0 +1,2 @@+*** Failed! Falsifiable (after 8792 tests):+(T [] [] [] [-1] [-32768])
+ test/diff/eg/test-bool.out view
@@ -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+
+ test/diff/eg/test-float.out view
@@ -0,0 +1,19 @@+*** Failed! Falsifiable (after 74 tests):+0.33333334 1.0+*** Failed! Falsifiable (after 74 tests):+0.33333334 1.0+*** Failed! Falsifiable (after 1188 tests):+0.2 0.2+*** Failed! Falsifiable (after 584 tests):+0.2 0.33333334++++ OK, passed 10000 tests.++++ OK, passed 10000 tests.++++ OK, passed 10000 tests.++++ OK, passed 10000 tests.+*** Failed! Falsifiable (after 38 tests):+0.14285715+*** Failed! Falsifiable (after 1 tests):+()++++ OK, passed 10000 tests.+*** Failed! Falsifiable (after 5 tests):+0.5
+ test/diff/eg/test-list.out view
@@ -0,0 +1,6 @@+*** Failed! Falsifiable (after 4 tests):+[] [0,0]+*** Failed! Falsifiable (after 1 tests):+[]+*** Failed! Exception '...' (after 1 tests):+[]
+ test/diff/eg/test-sort.out view
@@ -0,0 +1,4 @@++++ OK, passed 200 tests.+*** Failed! Falsifiable (after 4 tests):+0 [0,0]++++ OK, passed 200 tests.
+ test/diff/tiers-4cases-Bool-Bool-Bool-Bool.out view
@@ -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+    ]+  ]
+ test/diff/tiers-4cases-Bool-Bool-Bool.out view
@@ -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+    ]+  ]
+ test/diff/tiers-4cases-Bool-Bool.out view
@@ -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+    ]+  ]
+ test/diff/tiers-4cases-Bool-Int-Bool.out view
@@ -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+    ]+  , ...+  ]
+ test/diff/tiers-4cases-Bool-MBool.out view
@@ -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+    ]+  ]
+ test/diff/tiers-4cases-Bool-U.out view
@@ -0,0 +1,10 @@+map length (tiers :: [[ Bool->() ]])  =  [1]++length (list :: [ Bool->() ])  =  1++allUnique (list :: [ Bool->() ])  =  True++ratioRepetitions (list :: [ Bool->() ])  =  0 % 1++tiers :: [Bool->()]  =+  [[\_ -> ()]]
+ test/diff/tiers-4cases-Bools-Bools.out view
@@ -0,0 +1,419 @@+map length (tiers :: [[ [Bool]->[Bool] ]])  =  [1,2,8,26,88,278,...]++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]+    ]+  , [ \x -> case x of [] -> [False,False,False,False]; _ -> []+    , \x -> case x of [] -> [False,False,False,True]; _ -> []+    , \x -> case x of [] -> [False,False,True,False]; _ -> []+    , \x -> case x of [] -> [False,False,True,True]; _ -> []+    , \x -> case x of [] -> [False,True,False,False]; _ -> []+    , \x -> case x of [] -> [False,True,False,True]; _ -> []+    , \x -> case x of [] -> [False,True,True,False]; _ -> []+    , \x -> case x of [] -> [False,True,True,True]; _ -> []+    , \x -> case x of [] -> [True,False,False,False]; _ -> []+    , \x -> case x of [] -> [True,False,False,True]; _ -> []+    , \x -> case x of [] -> [True,False,True,False]; _ -> []+    , \x -> case x of [] -> [True,False,True,True]; _ -> []+    , \x -> case x of [] -> [True,True,False,False]; _ -> []+    , \x -> case x of [] -> [True,True,False,True]; _ -> []+    , \x -> case x of [] -> [True,True,True,False]; _ -> []+    , \x -> case x of [] -> [True,True,True,True]; _ -> []+    , \x -> case x of [False] -> [False,False,False]; _ -> []+    , \x -> case x of [False] -> [False,False,True]; _ -> []+    , \x -> case x of [False] -> [False,True,False]; _ -> []+    , \x -> case x of [False] -> [False,True,True]; _ -> []+    , \x -> case x of [False] -> [True,False,False]; _ -> []+    , \x -> case x of [False] -> [True,False,True]; _ -> []+    , \x -> case x of [False] -> [True,True,False]; _ -> []+    , \x -> case x of [False] -> [True,True,True]; _ -> []+    , \x -> case x of [True] -> [False,False,False]; _ -> []+    , \x -> case x of [True] -> [False,False,True]; _ -> []+    , \x -> case x of [True] -> [False,True,False]; _ -> []+    , \x -> case x of [True] -> [False,True,True]; _ -> []+    , \x -> case x of [True] -> [True,False,False]; _ -> []+    , \x -> case x of [True] -> [True,False,True]; _ -> []+    , \x -> case x of [True] -> [True,True,False]; _ -> []+    , \x -> case x of [True] -> [True,True,True]; _ -> []+    , \x -> case x of [] -> [False]; [False] -> [False]; _ -> []+    , \x -> case x of [] -> [False]; [False] -> [True]; _ -> []+    , \x -> case x of [] -> [True]; [False] -> [False]; _ -> []+    , \x -> case x of [] -> [True]; [False] -> [True]; _ -> []+    , \x -> case x of [] -> [False]; [True] -> [False]; _ -> []+    , \x -> case x of [] -> [False]; [True] -> [True]; _ -> []+    , \x -> case x of [] -> [True]; [True] -> [False]; _ -> []+    , \x -> case x of [] -> [True]; [True] -> [True]; _ -> []+    , \x -> case x of [False,False] -> [False,False]; _ -> []+    , \x -> case x of [False,False] -> [False,True]; _ -> []+    , \x -> case x of [False,False] -> [True,False]; _ -> []+    , \x -> case x of [False,False] -> [True,True]; _ -> []+    , \x -> case x of [False,True] -> [False,False]; _ -> []+    , \x -> case x of [False,True] -> [False,True]; _ -> []+    , \x -> case x of [False,True] -> [True,False]; _ -> []+    , \x -> case x of [False,True] -> [True,True]; _ -> []+    , \x -> case x of [True,False] -> [False,False]; _ -> []+    , \x -> case x of [True,False] -> [False,True]; _ -> []+    , \x -> case x of [True,False] -> [True,False]; _ -> []+    , \x -> case x of [True,False] -> [True,True]; _ -> []+    , \x -> case x of [True,True] -> [False,False]; _ -> []+    , \x -> case x of [True,True] -> [False,True]; _ -> []+    , \x -> case x of [True,True] -> [True,False]; _ -> []+    , \x -> case x of [True,True] -> [True,True]; _ -> []+    , \x -> case x of [False,False,False] -> [False]; _ -> []+    , \x -> case x of [False,False,False] -> [True]; _ -> []+    , \x -> case x of [False,False,True] -> [False]; _ -> []+    , \x -> case x of [False,False,True] -> [True]; _ -> []+    , \x -> case x of [False,True,False] -> [False]; _ -> []+    , \x -> case x of [False,True,False] -> [True]; _ -> []+    , \x -> case x of [False,True,True] -> [False]; _ -> []+    , \x -> case x of [False,True,True] -> [True]; _ -> []+    , \x -> case x of [True,False,False] -> [False]; _ -> []+    , \x -> case x of [True,False,False] -> [True]; _ -> []+    , \x -> case x of [True,False,True] -> [False]; _ -> []+    , \x -> case x of [True,False,True] -> [True]; _ -> []+    , \x -> case x of [True,True,False] -> [False]; _ -> []+    , \x -> case x of [True,True,False] -> [True]; _ -> []+    , \x -> case x of [True,True,True] -> [False]; _ -> []+    , \x -> case x of [True,True,True] -> [True]; _ -> []+    , \x -> case x of [] -> [False,False,False]; _ -> [False]+    , \x -> case x of [] -> [False,False,True]; _ -> [False]+    , \x -> case x of [] -> [False,True,False]; _ -> [False]+    , \x -> case x of [] -> [False,True,True]; _ -> [False]+    , \x -> case x of [] -> [True,False,False]; _ -> [False]+    , \x -> case x of [] -> [True,False,True]; _ -> [False]+    , \x -> case x of [] -> [True,True,False]; _ -> [False]+    , \x -> case x of [] -> [True,True,True]; _ -> [False]+    , \x -> case x of [False] -> [False,False]; _ -> [False]+    , \x -> case x of [False] -> [False,True]; _ -> [False]+    , \x -> case x of [False] -> [True,False]; _ -> [False]+    , \x -> case x of [False] -> [True,True]; _ -> [False]+    , \x -> case x of [True] -> [False,False]; _ -> [False]+    , \x -> case x of [True] -> [False,True]; _ -> [False]+    , \x -> case x of [True] -> [True,False]; _ -> [False]+    , \x -> case x of [True] -> [True,True]; _ -> [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 [] -> [True]; [True] -> []; _ -> [False]+    , \x -> case x of [False,False] -> [True]; _ -> [False]+    , \x -> case x of [False,True] -> [True]; _ -> [False]+    , \x -> case x of [True,False] -> [True]; _ -> [False]+    , \x -> case x of [True,True] -> [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] -> []; [True] -> []; _ -> [False]+    , \x -> case x of [False,False,False] -> []; _ -> [False]+    , \x -> case x of [False,False,True] -> []; _ -> [False]+    , \x -> case x of [False,True,False] -> []; _ -> [False]+    , \x -> case x of [False,True,True] -> []; _ -> [False]+    , \x -> case x of [True,False,False] -> []; _ -> [False]+    , \x -> case x of [True,False,True] -> []; _ -> [False]+    , \x -> case x of [True,True,False] -> []; _ -> [False]+    , \x -> case x of [True,True,True] -> []; _ -> [False]+    , \x -> case x of [] -> [False,False,False]; _ -> [True]+    , \x -> case x of [] -> [False,False,True]; _ -> [True]+    , \x -> case x of [] -> [False,True,False]; _ -> [True]+    , \x -> case x of [] -> [False,True,True]; _ -> [True]+    , \x -> case x of [] -> [True,False,False]; _ -> [True]+    , \x -> case x of [] -> [True,False,True]; _ -> [True]+    , \x -> case x of [] -> [True,True,False]; _ -> [True]+    , \x -> case x of [] -> [True,True,True]; _ -> [True]+    , \x -> case x of [False] -> [False,False]; _ -> [True]+    , \x -> case x of [False] -> [False,True]; _ -> [True]+    , \x -> case x of [False] -> [True,False]; _ -> [True]+    , \x -> case x of [False] -> [True,True]; _ -> [True]+    , \x -> case x of [True] -> [False,False]; _ -> [True]+    , \x -> case x of [True] -> [False,True]; _ -> [True]+    , \x -> case x of [True] -> [True,False]; _ -> [True]+    , \x -> case x of [True] -> [True,True]; _ -> [True]+    , \x -> case x of [] -> []; [False] -> [False]; _ -> [True]+    , \x -> case x of [] -> [False]; [False] -> []; _ -> [True]+    , \x -> case x of [] -> []; [True] -> [False]; _ -> [True]+    , \x -> case x of [] -> [False]; [True] -> []; _ -> [True]+    , \x -> case x of [False,False] -> [False]; _ -> [True]+    , \x -> case x of [False,True] -> [False]; _ -> [True]+    , \x -> case x of [True,False] -> [False]; _ -> [True]+    , \x -> case x of [True,True] -> [False]; _ -> [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] -> []; [True] -> []; _ -> [True]+    , \x -> case x of [False,False,False] -> []; _ -> [True]+    , \x -> case x of [False,False,True] -> []; _ -> [True]+    , \x -> case x of [False,True,False] -> []; _ -> [True]+    , \x -> case x of [False,True,True] -> []; _ -> [True]+    , \x -> case x of [True,False,False] -> []; _ -> [True]+    , \x -> case x of [True,False,True] -> []; _ -> [True]+    , \x -> case x of [True,True,False] -> []; _ -> [True]+    , \x -> case x of [True,True,True] -> []; _ -> [True]+    , \x -> case x of [] -> [False,True]; _ -> [False,False]+    , \x -> case x of [] -> [True,False]; _ -> [False,False]+    , \x -> case x of [] -> [True,True]; _ -> [False,False]+    , \x -> case x of [False] -> [False]; _ -> [False,False]+    , \x -> case x of [False] -> [True]; _ -> [False,False]+    , \x -> case x of [True] -> [False]; _ -> [False,False]+    , \x -> case x of [True] -> [True]; _ -> [False,False]+    , \x -> case x of [] -> []; [False] -> []; _ -> [False,False]+    , \x -> case x of [] -> []; [True] -> []; _ -> [False,False]+    , \x -> case x of [False,False] -> []; _ -> [False,False]+    , \x -> case x of [False,True] -> []; _ -> [False,False]+    , \x -> case x of [True,False] -> []; _ -> [False,False]+    , \x -> case x of [True,True] -> []; _ -> [False,False]+    , \x -> case x of [] -> [False,False]; _ -> [False,True]+    , \x -> case x of [] -> [True,False]; _ -> [False,True]+    , \x -> case x of [] -> [True,True]; _ -> [False,True]+    , \x -> case x of [False] -> [False]; _ -> [False,True]+    , \x -> case x of [False] -> [True]; _ -> [False,True]+    , \x -> case x of [True] -> [False]; _ -> [False,True]+    , \x -> case x of [True] -> [True]; _ -> [False,True]+    , \x -> case x of [] -> []; [False] -> []; _ -> [False,True]+    , \x -> case x of [] -> []; [True] -> []; _ -> [False,True]+    , \x -> case x of [False,False] -> []; _ -> [False,True]+    , \x -> case x of [False,True] -> []; _ -> [False,True]+    , \x -> case x of [True,False] -> []; _ -> [False,True]+    , \x -> case x of [True,True] -> []; _ -> [False,True]+    , \x -> case x of [] -> [False,False]; _ -> [True,False]+    , \x -> case x of [] -> [False,True]; _ -> [True,False]+    , \x -> case x of [] -> [True,True]; _ -> [True,False]+    , \x -> case x of [False] -> [False]; _ -> [True,False]+    , \x -> case x of [False] -> [True]; _ -> [True,False]+    , \x -> case x of [True] -> [False]; _ -> [True,False]+    , \x -> case x of [True] -> [True]; _ -> [True,False]+    , \x -> case x of [] -> []; [False] -> []; _ -> [True,False]+    , \x -> case x of [] -> []; [True] -> []; _ -> [True,False]+    , \x -> case x of [False,False] -> []; _ -> [True,False]+    , \x -> case x of [False,True] -> []; _ -> [True,False]+    , \x -> case x of [True,False] -> []; _ -> [True,False]+    , \x -> case x of [True,True] -> []; _ -> [True,False]+    , \x -> case x of [] -> [False,False]; _ -> [True,True]+    , \x -> case x of [] -> [False,True]; _ -> [True,True]+    , \x -> case x of [] -> [True,False]; _ -> [True,True]+    , \x -> case x of [False] -> [False]; _ -> [True,True]+    , \x -> case x of [False] -> [True]; _ -> [True,True]+    , \x -> case x of [True] -> [False]; _ -> [True,True]+    , \x -> case x of [True] -> [True]; _ -> [True,True]+    , \x -> case x of [] -> []; [False] -> []; _ -> [True,True]+    , \x -> case x of [] -> []; [True] -> []; _ -> [True,True]+    , \x -> case x of [False,False] -> []; _ -> [True,True]+    , \x -> case x of [False,True] -> []; _ -> [True,True]+    , \x -> case x of [True,False] -> []; _ -> [True,True]+    , \x -> case x of [True,True] -> []; _ -> [True,True]+    , \x -> case x of [] -> [False]; _ -> [False,False,False]+    , \x -> case x of [] -> [True]; _ -> [False,False,False]+    , \x -> case x of [False] -> []; _ -> [False,False,False]+    , \x -> case x of [True] -> []; _ -> [False,False,False]+    , \x -> case x of [] -> [False]; _ -> [False,False,True]+    , \x -> case x of [] -> [True]; _ -> [False,False,True]+    , \x -> case x of [False] -> []; _ -> [False,False,True]+    , \x -> case x of [True] -> []; _ -> [False,False,True]+    , \x -> case x of [] -> [False]; _ -> [False,True,False]+    , \x -> case x of [] -> [True]; _ -> [False,True,False]+    , \x -> case x of [False] -> []; _ -> [False,True,False]+    , \x -> case x of [True] -> []; _ -> [False,True,False]+    , \x -> case x of [] -> [False]; _ -> [False,True,True]+    , \x -> case x of [] -> [True]; _ -> [False,True,True]+    , \x -> case x of [False] -> []; _ -> [False,True,True]+    , \x -> case x of [True] -> []; _ -> [False,True,True]+    , \x -> case x of [] -> [False]; _ -> [True,False,False]+    , \x -> case x of [] -> [True]; _ -> [True,False,False]+    , \x -> case x of [False] -> []; _ -> [True,False,False]+    , \x -> case x of [True] -> []; _ -> [True,False,False]+    , \x -> case x of [] -> [False]; _ -> [True,False,True]+    , \x -> case x of [] -> [True]; _ -> [True,False,True]+    , \x -> case x of [False] -> []; _ -> [True,False,True]+    , \x -> case x of [True] -> []; _ -> [True,False,True]+    , \x -> case x of [] -> [False]; _ -> [True,True,False]+    , \x -> case x of [] -> [True]; _ -> [True,True,False]+    , \x -> case x of [False] -> []; _ -> [True,True,False]+    , \x -> case x of [True] -> []; _ -> [True,True,False]+    , \x -> case x of [] -> [False]; _ -> [True,True,True]+    , \x -> case x of [] -> [True]; _ -> [True,True,True]+    , \x -> case x of [False] -> []; _ -> [True,True,True]+    , \x -> case x of [True] -> []; _ -> [True,True,True]+    , \x -> case x of [] -> []; _ -> [False,False,False,False]+    , \x -> case x of [] -> []; _ -> [False,False,False,True]+    , \x -> case x of [] -> []; _ -> [False,False,True,False]+    , \x -> case x of [] -> []; _ -> [False,False,True,True]+    , \x -> case x of [] -> []; _ -> [False,True,False,False]+    , \x -> case x of [] -> []; _ -> [False,True,False,True]+    , \x -> case x of [] -> []; _ -> [False,True,True,False]+    , \x -> case x of [] -> []; _ -> [False,True,True,True]+    , \x -> case x of [] -> []; _ -> [True,False,False,False]+    , \x -> case x of [] -> []; _ -> [True,False,False,True]+    , \x -> case x of [] -> []; _ -> [True,False,True,False]+    , \x -> case x of [] -> []; _ -> [True,False,True,True]+    , \x -> case x of [] -> []; _ -> [True,True,False,False]+    , \x -> case x of [] -> []; _ -> [True,True,False,True]+    , \x -> case x of [] -> []; _ -> [True,True,True,False]+    , \x -> case x of [] -> []; _ -> [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]+    ]+  , ...+  ]
+ test/diff/tiers-4cases-Int-Bool-Bool.out view
@@ -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+    ]+  , ...+  ]
+ test/diff/tiers-4cases-Int-Int-Int-Int.out view
@@ -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+    ]+  , ...+  ]
+ test/diff/tiers-4cases-Int-Int-Int.out view
@@ -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+    ]+  , ...+  ]
+ test/diff/tiers-4cases-Int-Int.out view
@@ -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+    ]+  , ...+  ]
+ test/diff/tiers-4cases-Ints-Ints.out view
@@ -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]+    ]+  , ...+  ]
+ test/diff/tiers-4cases-MBool-Bool.out view
@@ -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+    ]+  ]
+ test/diff/tiers-4cases-MBool-MBool.out view
@@ -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+    ]+  ]
+ test/diff/tiers-4cases-Nat,Nat-Nat.out view
@@ -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+    ]+  , ...+  ]
+ test/diff/tiers-4cases-Nat-Nat-Nat.out view
@@ -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+    ]+  , ...+  ]
+ test/diff/tiers-4cases-Nat-Nat.out view
@@ -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+    ]+  , ...+  ]
+ test/diff/tiers-4cases-Nat-U.out view
@@ -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->()]  =+  [ [\_ -> ()]+  , []+  , []+  , []+  , []+  , []+  , ...+  ]
+ test/diff/tiers-4cases-Nat2-Nat2.out view
@@ -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]+  ]
+ test/diff/tiers-4cases-Nat2-Nat3.out view
@@ -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]+  ]
+ test/diff/tiers-4cases-Nat3-Nat2.out view
@@ -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]+  ]
+ test/diff/tiers-4cases-Nat3-Nat3.out view
@@ -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]+  ]
+ test/diff/tiers-4cases-Nats-Nats.out view
@@ -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]+    ]+  , ...+  ]
+ test/diff/tiers-4cases-U-Bool.out view
@@ -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+    ]+  ]
+ test/diff/tiers-4cases-U-Nat.out view
@@ -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]+  , ...+  ]
+ test/diff/tiers-4cases-U-U.out view
@@ -0,0 +1,10 @@+map length (tiers :: [[ ()->() ]])  =  [1]++length (list :: [ ()->() ])  =  1++allUnique (list :: [ ()->() ])  =  True++ratioRepetitions (list :: [ ()->() ])  =  0 % 1++tiers :: [()->()]  =+  [[\_ -> ()]]
+ test/diff/tiers-4cases-Us-Us.out view
@@ -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 [] -> []; _ -> [(),(),(),()]+    , \_ -> [(),(),(),(),()]+    ]+  , ...+  ]
+ test/diff/tiers-BagBool.out view
@@ -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]+    ]+  , ...+  ]
+ test/diff/tiers-BagNat.out view
@@ -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]+    ]+  , ...+  ]
+ test/diff/tiers-BagNat2.out view
@@ -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]+    ]+  , ...+  ]
+ test/diff/tiers-BagNat3.out view
@@ -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]+    ]+  , ...+  ]
+ test/diff/tiers-BagU.out view
@@ -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 [(),(),(),(),(),(),(),(),(),(),()]]+  , ...+  ]
+ test/diff/tiers-Bool.out view
@@ -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+    ]+  ]
+ test/diff/tiers-Bools.out view
@@ -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]+    ]+  , ...+  ]
+ test/diff/tiers-Char.out view
@@ -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']+  , ['!']+  , ...+  ]
+ test/diff/tiers-Double.out view
@@ -0,0 +1,52 @@+map length (tiers :: [[ Double ]])  =  [1,1,2,3,2,2,2,4,4,2,2,6,...]++length (list :: [ Double ])  =  Infinity++allUnique (list :: [ Double ])  =  True++ratioRepetitions (list :: [ Double ])  =  0 % 1++tiers :: [Double]  =+  [ [0.0]+  , [1.0]+  , [ -1.0+    , Infinity+    ]+  , [ 0.5+    , 2.0+    , -Infinity+    ]+  , [ -0.5+    , -2.0+    ]+  , [ 0.3333333333333333+    , 3.0+    ]+  , [ -0.3333333333333333+    , -3.0+    ]+  , [ 0.25+    , 0.6666666666666666+    , 1.5+    , 4.0+    ]+  , [ -0.25+    , -0.6666666666666666+    , -1.5+    , -4.0+    ]+  , [ 0.2+    , 5.0+    ]+  , [ -0.2+    , -5.0+    ]+  , [ 0.16666666666666666+    , 0.4+    , 0.75+    , 1.3333333333333333+    , 2.5+    , 6.0+    ]+  , ...+  ]
+ test/diff/tiers-Float.out view
@@ -0,0 +1,52 @@+map length (tiers :: [[ Float ]])  =  [1,1,2,3,2,2,2,4,4,2,2,6,...]++length (list :: [ Float ])  =  Infinity++allUnique (list :: [ Float ])  =  True++ratioRepetitions (list :: [ Float ])  =  0 % 1++tiers :: [Float]  =+  [ [0.0]+  , [1.0]+  , [ -1.0+    , Infinity+    ]+  , [ 0.5+    , 2.0+    , -Infinity+    ]+  , [ -0.5+    , -2.0+    ]+  , [ 0.33333334+    , 3.0+    ]+  , [ -0.33333334+    , -3.0+    ]+  , [ 0.25+    , 0.6666667+    , 1.5+    , 4.0+    ]+  , [ -0.25+    , -0.6666667+    , -1.5+    , -4.0+    ]+  , [ 0.2+    , 5.0+    ]+  , [ -0.2+    , -5.0+    ]+  , [ 0.16666667+    , 0.4+    , 0.75+    , 1.3333334+    , 2.5+    , 6.0+    ]+  , ...+  ]
+ test/diff/tiers-Int,Int,Int.out view
@@ -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)+    ]+  , ...+  ]
+ test/diff/tiers-Int,Int.out view
@@ -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)+    ]+  , ...+  ]
+ test/diff/tiers-Int.out view
@@ -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]+  , ...+  ]
+ test/diff/tiers-Integer.out view
@@ -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]+  , ...+  ]
+ test/diff/tiers-Ints.out view
@@ -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]+    ]+  , ...+  ]
+ test/diff/tiers-MapBoolBool.out view
@@ -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)]+    ]+  ]
+ test/diff/tiers-MapNat2Nat2.out view
@@ -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)]]+  ]
+ test/diff/tiers-MapNat3Nat3.out view
@@ -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)]+    ]+  , ...+  ]
+ test/diff/tiers-MapNatNat.out view
@@ -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)]+    ]+  , ...+  ]
+ test/diff/tiers-MapUU.out view
@@ -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 [((),())]]+  ]
+ test/diff/tiers-Nat,Nat,Nat.out view
@@ -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)+    ]+  , ...+  ]
+ test/diff/tiers-Nat,Nat.out view
@@ -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)+    ]+  , ...+  ]
+ test/diff/tiers-Nat.out view
@@ -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]+  , ...+  ]
+ test/diff/tiers-Nats.out view
@@ -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]+    ]+  , ...+  ]
+ test/diff/tiers-NoDupBool.out view
@@ -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]+    ]+  ]
+ test/diff/tiers-NoDupNat.out view
@@ -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]+    ]+  , ...+  ]
+ test/diff/tiers-NoDupNat2.out view
@@ -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]+    ]+  ]
+ test/diff/tiers-NoDupNat3.out view
@@ -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]+    ]+  ]
+ test/diff/tiers-NoDupU.out view
@@ -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 [()]]+  ]
+ test/diff/tiers-Rational.out view
@@ -0,0 +1,49 @@+map length (tiers :: [[ Rational ]])  =  [1,1,1,2,2,2,2,4,4,2,2,6,...]++length (list :: [ Rational ])  =  Infinity++allUnique (list :: [ Rational ])  =  True++ratioRepetitions (list :: [ Rational ])  =  0 % 1++tiers :: [Rational]  =+  [ [0 % 1]+  , [1 % 1]+  , [(-1) % 1]+  , [ 1 % 2+    , 2 % 1+    ]+  , [ (-1) % 2+    , (-2) % 1+    ]+  , [ 1 % 3+    , 3 % 1+    ]+  , [ (-1) % 3+    , (-3) % 1+    ]+  , [ 1 % 4+    , 2 % 3+    , 3 % 2+    , 4 % 1+    ]+  , [ (-1) % 4+    , (-2) % 3+    , (-3) % 2+    , (-4) % 1+    ]+  , [ 1 % 5+    , 5 % 1+    ]+  , [ (-1) % 5+    , (-5) % 1+    ]+  , [ 1 % 6+    , 2 % 5+    , 3 % 4+    , 4 % 3+    , 5 % 2+    , 6 % 1+    ]+  , ...+  ]
+ test/diff/tiers-SetBool.out view
@@ -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]]+  ]
+ test/diff/tiers-SetNat.out view
@@ -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]+    ]+  , ...+  ]
+ test/diff/tiers-SetNat2.out view
@@ -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]]+  ]
+ test/diff/tiers-SetNat3.out view
@@ -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]]+  ]
+ test/diff/tiers-SetU.out view
@@ -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 [()]]+  ]
+ test/diff/tiers-String.out view
@@ -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"+    ]+  , ...+  ]
+ test/diff/tiers-U,Us.out view
@@ -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 :: [[((),())]]  =+  [ [[]]+  , [[((),())]]+  , [[((),()),((),())]]+  , [[((),()),((),()),((),())]]+  , [[((),()),((),()),((),()),((),())]]+  , [[((),()),((),()),((),()),((),()),((),())]]+  , [[((),()),((),()),((),()),((),()),((),()),((),())]]+  , [[((),()),((),()),((),()),((),()),((),()),((),()),((),())]]+  , [[((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),())]]+  , [[((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),())]]+  , [[((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),())]]+  , [[((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),())]]+  , ...+  ]
+ test/diff/tiers-Us,Us.out view
@@ -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 :: [([()],[()])]  =+  [ [([],[])]+  , [ ([],[()])+    , ([()],[])+    ]+  , [ ([],[(),()])+    , ([()],[()])+    , ([(),()],[])+    ]+  , [ ([],[(),(),()])+    , ([()],[(),()])+    , ([(),()],[()])+    , ([(),(),()],[])+    ]+  , [ ([],[(),(),(),()])+    , ([()],[(),(),()])+    , ([(),()],[(),()])+    , ([(),(),()],[()])+    , ([(),(),(),()],[])+    ]+  , [ ([],[(),(),(),(),()])+    , ([()],[(),(),(),()])+    , ([(),()],[(),(),()])+    , ([(),(),()],[(),()])+    , ([(),(),(),()],[()])+    , ([(),(),(),(),()],[])+    ]+  , [ ([],[(),(),(),(),(),()])+    , ([()],[(),(),(),(),()])+    , ([(),()],[(),(),(),()])+    , ([(),(),()],[(),(),()])+    , ([(),(),(),()],[(),()])+    , ([(),(),(),(),()],[()])+    , ([(),(),(),(),(),()],[])+    ]+  , [ ([],[(),(),(),(),(),(),()])+    , ([()],[(),(),(),(),(),()])+    , ([(),()],[(),(),(),(),()])+    , ([(),(),()],[(),(),(),()])+    , ([(),(),(),()],[(),(),()])+    , ([(),(),(),(),()],[(),()])+    , ([(),(),(),(),(),()],[()])+    , ([(),(),(),(),(),(),()],[])+    ]+  , [ ([],[(),(),(),(),(),(),(),()])+    , ([()],[(),(),(),(),(),(),()])+    , ([(),()],[(),(),(),(),(),()])+    , ([(),(),()],[(),(),(),(),()])+    , ([(),(),(),()],[(),(),(),()])+    , ([(),(),(),(),()],[(),(),()])+    , ([(),(),(),(),(),()],[(),()])+    , ([(),(),(),(),(),(),()],[()])+    , ([(),(),(),(),(),(),(),()],[])+    ]+  , [ ([],[(),(),(),(),(),(),(),(),()])+    , ([()],[(),(),(),(),(),(),(),()])+    , ([(),()],[(),(),(),(),(),(),()])+    , ([(),(),()],[(),(),(),(),(),()])+    , ([(),(),(),()],[(),(),(),(),()])+    , ([(),(),(),(),()],[(),(),(),()])+    , ([(),(),(),(),(),()],[(),(),()])+    , ([(),(),(),(),(),(),()],[(),()])+    , ([(),(),(),(),(),(),(),()],[()])+    , ([(),(),(),(),(),(),(),(),()],[])+    ]+  , [ ([],[(),(),(),(),(),(),(),(),(),()])+    , ([()],[(),(),(),(),(),(),(),(),()])+    , ([(),()],[(),(),(),(),(),(),(),()])+    , ([(),(),()],[(),(),(),(),(),(),()])+    , ([(),(),(),()],[(),(),(),(),(),()])+    , ([(),(),(),(),()],[(),(),(),(),()])+    , ([(),(),(),(),(),()],[(),(),(),()])+    , ([(),(),(),(),(),(),()],[(),(),()])+    , ([(),(),(),(),(),(),(),()],[(),()])+    , ([(),(),(),(),(),(),(),(),()],[()])+    , ([(),(),(),(),(),(),(),(),(),()],[])+    ]+  , [ ([],[(),(),(),(),(),(),(),(),(),(),()])+    , ([()],[(),(),(),(),(),(),(),(),(),()])+    , ([(),()],[(),(),(),(),(),(),(),(),()])+    , ([(),(),()],[(),(),(),(),(),(),(),()])+    , ([(),(),(),()],[(),(),(),(),(),(),()])+    , ([(),(),(),(),()],[(),(),(),(),(),()])+    , ([(),(),(),(),(),()],[(),(),(),(),()])+    , ([(),(),(),(),(),(),()],[(),(),(),()])+    , ([(),(),(),(),(),(),(),()],[(),(),()])+    , ([(),(),(),(),(),(),(),(),()],[(),()])+    , ([(),(),(),(),(),(),(),(),(),()],[()])+    , ([(),(),(),(),(),(),(),(),(),(),()],[])+    ]+  , ...+  ]
+ test/diff/tiers-Us.out view
@@ -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 :: [[()]]  =+  [ [[]]+  , [[()]]+  , [[(),()]]+  , [[(),(),()]]+  , [[(),(),(),()]]+  , [[(),(),(),(),()]]+  , [[(),(),(),(),(),()]]+  , [[(),(),(),(),(),(),()]]+  , [[(),(),(),(),(),(),(),()]]+  , [[(),(),(),(),(),(),(),(),()]]+  , [[(),(),(),(),(),(),(),(),(),()]]+  , [[(),(),(),(),(),(),(),(),(),(),()]]+  , ...+  ]
+ test/diff/tiers-XInt4.out view
@@ -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]+  , ...+  ]
+ test/diff/tiers-XNat7.out view
@@ -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]+  ]
+ test/diff/tiers-XWord4.out view
@@ -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]+  , ...+  ]
+ test/diff/tiers-XsInt4.out view
@@ -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]+    ]+  , ...+  ]
+ test/diff/tiers-XsNat7.out view
@@ -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]+    ]+  , ...+  ]
+ test/diff/tiers-XsWord4.out view
@@ -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]+    ]+  , ...+  ]
+ test/diff/tiers-default-Bool-Bool-Bool-Bool.out view
@@ -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+    ]+  ]
+ test/diff/tiers-default-Bool-Bool-Bool.out view
@@ -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+    ]+  ]
+ test/diff/tiers-default-Bool-Bool.out view
@@ -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+    ]+  ]
+ test/diff/tiers-default-Bool-Int-Bool.out view
@@ -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+    ]+  , ...+  ]
+ test/diff/tiers-default-Bool-MBool.out view
@@ -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+    ]+  ]
+ test/diff/tiers-default-Bool-U.out view
@@ -0,0 +1,10 @@+map length (tiers :: [[ Bool->() ]])  =  [1]++length (list :: [ Bool->() ])  =  1++allUnique (list :: [ Bool->() ])  =  True++ratioRepetitions (list :: [ Bool->() ])  =  0 % 1++tiers :: [Bool->()]  =+  [[\_ -> ()]]
+ test/diff/tiers-default-Bools-Bools.out view
@@ -0,0 +1,1137 @@+map length (tiers :: [[ [Bool]->[Bool] ]])  =  [1,2,8,26,88,278,...]++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]+    ]+  , [ \x -> case x of+            [] -> [False,False,False,False]+            _ -> []+    , \x -> case x of+            [] -> [False,False,False,True]+            _ -> []+    , \x -> case x of+            [] -> [False,False,True,False]+            _ -> []+    , \x -> case x of+            [] -> [False,False,True,True]+            _ -> []+    , \x -> case x of+            [] -> [False,True,False,False]+            _ -> []+    , \x -> case x of+            [] -> [False,True,False,True]+            _ -> []+    , \x -> case x of+            [] -> [False,True,True,False]+            _ -> []+    , \x -> case x of+            [] -> [False,True,True,True]+            _ -> []+    , \x -> case x of+            [] -> [True,False,False,False]+            _ -> []+    , \x -> case x of+            [] -> [True,False,False,True]+            _ -> []+    , \x -> case x of+            [] -> [True,False,True,False]+            _ -> []+    , \x -> case x of+            [] -> [True,False,True,True]+            _ -> []+    , \x -> case x of+            [] -> [True,True,False,False]+            _ -> []+    , \x -> case x of+            [] -> [True,True,False,True]+            _ -> []+    , \x -> case x of+            [] -> [True,True,True,False]+            _ -> []+    , \x -> case x of+            [] -> [True,True,True,True]+            _ -> []+    , \x -> case x of+            [False] -> [False,False,False]+            _ -> []+    , \x -> case x of+            [False] -> [False,False,True]+            _ -> []+    , \x -> case x of+            [False] -> [False,True,False]+            _ -> []+    , \x -> case x of+            [False] -> [False,True,True]+            _ -> []+    , \x -> case x of+            [False] -> [True,False,False]+            _ -> []+    , \x -> case x of+            [False] -> [True,False,True]+            _ -> []+    , \x -> case x of+            [False] -> [True,True,False]+            _ -> []+    , \x -> case x of+            [False] -> [True,True,True]+            _ -> []+    , \x -> case x of+            [True] -> [False,False,False]+            _ -> []+    , \x -> case x of+            [True] -> [False,False,True]+            _ -> []+    , \x -> case x of+            [True] -> [False,True,False]+            _ -> []+    , \x -> case x of+            [True] -> [False,True,True]+            _ -> []+    , \x -> case x of+            [True] -> [True,False,False]+            _ -> []+    , \x -> case x of+            [True] -> [True,False,True]+            _ -> []+    , \x -> case x of+            [True] -> [True,True,False]+            _ -> []+    , \x -> case x of+            [True] -> [True,True,True]+            _ -> []+    , \x -> case x of+            [] -> [False]+            [False] -> [False]+            _ -> []+    , \x -> case x of+            [] -> [False]+            [False] -> [True]+            _ -> []+    , \x -> case x of+            [] -> [True]+            [False] -> [False]+            _ -> []+    , \x -> case x of+            [] -> [True]+            [False] -> [True]+            _ -> []+    , \x -> case x of+            [] -> [False]+            [True] -> [False]+            _ -> []+    , \x -> case x of+            [] -> [False]+            [True] -> [True]+            _ -> []+    , \x -> case x of+            [] -> [True]+            [True] -> [False]+            _ -> []+    , \x -> case x of+            [] -> [True]+            [True] -> [True]+            _ -> []+    , \x -> case x of+            [False,False] -> [False,False]+            _ -> []+    , \x -> case x of+            [False,False] -> [False,True]+            _ -> []+    , \x -> case x of+            [False,False] -> [True,False]+            _ -> []+    , \x -> case x of+            [False,False] -> [True,True]+            _ -> []+    , \x -> case x of+            [False,True] -> [False,False]+            _ -> []+    , \x -> case x of+            [False,True] -> [False,True]+            _ -> []+    , \x -> case x of+            [False,True] -> [True,False]+            _ -> []+    , \x -> case x of+            [False,True] -> [True,True]+            _ -> []+    , \x -> case x of+            [True,False] -> [False,False]+            _ -> []+    , \x -> case x of+            [True,False] -> [False,True]+            _ -> []+    , \x -> case x of+            [True,False] -> [True,False]+            _ -> []+    , \x -> case x of+            [True,False] -> [True,True]+            _ -> []+    , \x -> case x of+            [True,True] -> [False,False]+            _ -> []+    , \x -> case x of+            [True,True] -> [False,True]+            _ -> []+    , \x -> case x of+            [True,True] -> [True,False]+            _ -> []+    , \x -> case x of+            [True,True] -> [True,True]+            _ -> []+    , \x -> case x of+            [False,False,False] -> [False]+            _ -> []+    , \x -> case x of+            [False,False,False] -> [True]+            _ -> []+    , \x -> case x of+            [False,False,True] -> [False]+            _ -> []+    , \x -> case x of+            [False,False,True] -> [True]+            _ -> []+    , \x -> case x of+            [False,True,False] -> [False]+            _ -> []+    , \x -> case x of+            [False,True,False] -> [True]+            _ -> []+    , \x -> case x of+            [False,True,True] -> [False]+            _ -> []+    , \x -> case x of+            [False,True,True] -> [True]+            _ -> []+    , \x -> case x of+            [True,False,False] -> [False]+            _ -> []+    , \x -> case x of+            [True,False,False] -> [True]+            _ -> []+    , \x -> case x of+            [True,False,True] -> [False]+            _ -> []+    , \x -> case x of+            [True,False,True] -> [True]+            _ -> []+    , \x -> case x of+            [True,True,False] -> [False]+            _ -> []+    , \x -> case x of+            [True,True,False] -> [True]+            _ -> []+    , \x -> case x of+            [True,True,True] -> [False]+            _ -> []+    , \x -> case x of+            [True,True,True] -> [True]+            _ -> []+    , \x -> case x of+            [] -> [False,False,False]+            _ -> [False]+    , \x -> case x of+            [] -> [False,False,True]+            _ -> [False]+    , \x -> case x of+            [] -> [False,True,False]+            _ -> [False]+    , \x -> case x of+            [] -> [False,True,True]+            _ -> [False]+    , \x -> case x of+            [] -> [True,False,False]+            _ -> [False]+    , \x -> case x of+            [] -> [True,False,True]+            _ -> [False]+    , \x -> case x of+            [] -> [True,True,False]+            _ -> [False]+    , \x -> case x of+            [] -> [True,True,True]+            _ -> [False]+    , \x -> case x of+            [False] -> [False,False]+            _ -> [False]+    , \x -> case x of+            [False] -> [False,True]+            _ -> [False]+    , \x -> case x of+            [False] -> [True,False]+            _ -> [False]+    , \x -> case x of+            [False] -> [True,True]+            _ -> [False]+    , \x -> case x of+            [True] -> [False,False]+            _ -> [False]+    , \x -> case x of+            [True] -> [False,True]+            _ -> [False]+    , \x -> case x of+            [True] -> [True,False]+            _ -> [False]+    , \x -> case x of+            [True] -> [True,True]+            _ -> [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+            [] -> [True]+            [True] -> []+            _ -> [False]+    , \x -> case x of+            [False,False] -> [True]+            _ -> [False]+    , \x -> case x of+            [False,True] -> [True]+            _ -> [False]+    , \x -> case x of+            [True,False] -> [True]+            _ -> [False]+    , \x -> case x of+            [True,True] -> [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] -> []+            [True] -> []+            _ -> [False]+    , \x -> case x of+            [False,False,False] -> []+            _ -> [False]+    , \x -> case x of+            [False,False,True] -> []+            _ -> [False]+    , \x -> case x of+            [False,True,False] -> []+            _ -> [False]+    , \x -> case x of+            [False,True,True] -> []+            _ -> [False]+    , \x -> case x of+            [True,False,False] -> []+            _ -> [False]+    , \x -> case x of+            [True,False,True] -> []+            _ -> [False]+    , \x -> case x of+            [True,True,False] -> []+            _ -> [False]+    , \x -> case x of+            [True,True,True] -> []+            _ -> [False]+    , \x -> case x of+            [] -> [False,False,False]+            _ -> [True]+    , \x -> case x of+            [] -> [False,False,True]+            _ -> [True]+    , \x -> case x of+            [] -> [False,True,False]+            _ -> [True]+    , \x -> case x of+            [] -> [False,True,True]+            _ -> [True]+    , \x -> case x of+            [] -> [True,False,False]+            _ -> [True]+    , \x -> case x of+            [] -> [True,False,True]+            _ -> [True]+    , \x -> case x of+            [] -> [True,True,False]+            _ -> [True]+    , \x -> case x of+            [] -> [True,True,True]+            _ -> [True]+    , \x -> case x of+            [False] -> [False,False]+            _ -> [True]+    , \x -> case x of+            [False] -> [False,True]+            _ -> [True]+    , \x -> case x of+            [False] -> [True,False]+            _ -> [True]+    , \x -> case x of+            [False] -> [True,True]+            _ -> [True]+    , \x -> case x of+            [True] -> [False,False]+            _ -> [True]+    , \x -> case x of+            [True] -> [False,True]+            _ -> [True]+    , \x -> case x of+            [True] -> [True,False]+            _ -> [True]+    , \x -> case x of+            [True] -> [True,True]+            _ -> [True]+    , \x -> case x of+            [] -> []+            [False] -> [False]+            _ -> [True]+    , \x -> case x of+            [] -> [False]+            [False] -> []+            _ -> [True]+    , \x -> case x of+            [] -> []+            [True] -> [False]+            _ -> [True]+    , \x -> case x of+            [] -> [False]+            [True] -> []+            _ -> [True]+    , \x -> case x of+            [False,False] -> [False]+            _ -> [True]+    , \x -> case x of+            [False,True] -> [False]+            _ -> [True]+    , \x -> case x of+            [True,False] -> [False]+            _ -> [True]+    , \x -> case x of+            [True,True] -> [False]+            _ -> [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] -> []+            [True] -> []+            _ -> [True]+    , \x -> case x of+            [False,False,False] -> []+            _ -> [True]+    , \x -> case x of+            [False,False,True] -> []+            _ -> [True]+    , \x -> case x of+            [False,True,False] -> []+            _ -> [True]+    , \x -> case x of+            [False,True,True] -> []+            _ -> [True]+    , \x -> case x of+            [True,False,False] -> []+            _ -> [True]+    , \x -> case x of+            [True,False,True] -> []+            _ -> [True]+    , \x -> case x of+            [True,True,False] -> []+            _ -> [True]+    , \x -> case x of+            [True,True,True] -> []+            _ -> [True]+    , \x -> case x of+            [] -> [False,True]+            _ -> [False,False]+    , \x -> case x of+            [] -> [True,False]+            _ -> [False,False]+    , \x -> case x of+            [] -> [True,True]+            _ -> [False,False]+    , \x -> case x of+            [False] -> [False]+            _ -> [False,False]+    , \x -> case x of+            [False] -> [True]+            _ -> [False,False]+    , \x -> case x of+            [True] -> [False]+            _ -> [False,False]+    , \x -> case x of+            [True] -> [True]+            _ -> [False,False]+    , \x -> case x of+            [] -> []+            [False] -> []+            _ -> [False,False]+    , \x -> case x of+            [] -> []+            [True] -> []+            _ -> [False,False]+    , \x -> case x of+            [False,False] -> []+            _ -> [False,False]+    , \x -> case x of+            [False,True] -> []+            _ -> [False,False]+    , \x -> case x of+            [True,False] -> []+            _ -> [False,False]+    , \x -> case x of+            [True,True] -> []+            _ -> [False,False]+    , \x -> case x of+            [] -> [False,False]+            _ -> [False,True]+    , \x -> case x of+            [] -> [True,False]+            _ -> [False,True]+    , \x -> case x of+            [] -> [True,True]+            _ -> [False,True]+    , \x -> case x of+            [False] -> [False]+            _ -> [False,True]+    , \x -> case x of+            [False] -> [True]+            _ -> [False,True]+    , \x -> case x of+            [True] -> [False]+            _ -> [False,True]+    , \x -> case x of+            [True] -> [True]+            _ -> [False,True]+    , \x -> case x of+            [] -> []+            [False] -> []+            _ -> [False,True]+    , \x -> case x of+            [] -> []+            [True] -> []+            _ -> [False,True]+    , \x -> case x of+            [False,False] -> []+            _ -> [False,True]+    , \x -> case x of+            [False,True] -> []+            _ -> [False,True]+    , \x -> case x of+            [True,False] -> []+            _ -> [False,True]+    , \x -> case x of+            [True,True] -> []+            _ -> [False,True]+    , \x -> case x of+            [] -> [False,False]+            _ -> [True,False]+    , \x -> case x of+            [] -> [False,True]+            _ -> [True,False]+    , \x -> case x of+            [] -> [True,True]+            _ -> [True,False]+    , \x -> case x of+            [False] -> [False]+            _ -> [True,False]+    , \x -> case x of+            [False] -> [True]+            _ -> [True,False]+    , \x -> case x of+            [True] -> [False]+            _ -> [True,False]+    , \x -> case x of+            [True] -> [True]+            _ -> [True,False]+    , \x -> case x of+            [] -> []+            [False] -> []+            _ -> [True,False]+    , \x -> case x of+            [] -> []+            [True] -> []+            _ -> [True,False]+    , \x -> case x of+            [False,False] -> []+            _ -> [True,False]+    , \x -> case x of+            [False,True] -> []+            _ -> [True,False]+    , \x -> case x of+            [True,False] -> []+            _ -> [True,False]+    , \x -> case x of+            [True,True] -> []+            _ -> [True,False]+    , \x -> case x of+            [] -> [False,False]+            _ -> [True,True]+    , \x -> case x of+            [] -> [False,True]+            _ -> [True,True]+    , \x -> case x of+            [] -> [True,False]+            _ -> [True,True]+    , \x -> case x of+            [False] -> [False]+            _ -> [True,True]+    , \x -> case x of+            [False] -> [True]+            _ -> [True,True]+    , \x -> case x of+            [True] -> [False]+            _ -> [True,True]+    , \x -> case x of+            [True] -> [True]+            _ -> [True,True]+    , \x -> case x of+            [] -> []+            [False] -> []+            _ -> [True,True]+    , \x -> case x of+            [] -> []+            [True] -> []+            _ -> [True,True]+    , \x -> case x of+            [False,False] -> []+            _ -> [True,True]+    , \x -> case x of+            [False,True] -> []+            _ -> [True,True]+    , \x -> case x of+            [True,False] -> []+            _ -> [True,True]+    , \x -> case x of+            [True,True] -> []+            _ -> [True,True]+    , \x -> case x of+            [] -> [False]+            _ -> [False,False,False]+    , \x -> case x of+            [] -> [True]+            _ -> [False,False,False]+    , \x -> case x of+            [False] -> []+            _ -> [False,False,False]+    , \x -> case x of+            [True] -> []+            _ -> [False,False,False]+    , \x -> case x of+            [] -> [False]+            _ -> [False,False,True]+    , \x -> case x of+            [] -> [True]+            _ -> [False,False,True]+    , \x -> case x of+            [False] -> []+            _ -> [False,False,True]+    , \x -> case x of+            [True] -> []+            _ -> [False,False,True]+    , \x -> case x of+            [] -> [False]+            _ -> [False,True,False]+    , \x -> case x of+            [] -> [True]+            _ -> [False,True,False]+    , \x -> case x of+            [False] -> []+            _ -> [False,True,False]+    , \x -> case x of+            [True] -> []+            _ -> [False,True,False]+    , \x -> case x of+            [] -> [False]+            _ -> [False,True,True]+    , \x -> case x of+            [] -> [True]+            _ -> [False,True,True]+    , \x -> case x of+            [False] -> []+            _ -> [False,True,True]+    , \x -> case x of+            [True] -> []+            _ -> [False,True,True]+    , \x -> case x of+            [] -> [False]+            _ -> [True,False,False]+    , \x -> case x of+            [] -> [True]+            _ -> [True,False,False]+    , \x -> case x of+            [False] -> []+            _ -> [True,False,False]+    , \x -> case x of+            [True] -> []+            _ -> [True,False,False]+    , \x -> case x of+            [] -> [False]+            _ -> [True,False,True]+    , \x -> case x of+            [] -> [True]+            _ -> [True,False,True]+    , \x -> case x of+            [False] -> []+            _ -> [True,False,True]+    , \x -> case x of+            [True] -> []+            _ -> [True,False,True]+    , \x -> case x of+            [] -> [False]+            _ -> [True,True,False]+    , \x -> case x of+            [] -> [True]+            _ -> [True,True,False]+    , \x -> case x of+            [False] -> []+            _ -> [True,True,False]+    , \x -> case x of+            [True] -> []+            _ -> [True,True,False]+    , \x -> case x of+            [] -> [False]+            _ -> [True,True,True]+    , \x -> case x of+            [] -> [True]+            _ -> [True,True,True]+    , \x -> case x of+            [False] -> []+            _ -> [True,True,True]+    , \x -> case x of+            [True] -> []+            _ -> [True,True,True]+    , \x -> case x of+            [] -> []+            _ -> [False,False,False,False]+    , \x -> case x of+            [] -> []+            _ -> [False,False,False,True]+    , \x -> case x of+            [] -> []+            _ -> [False,False,True,False]+    , \x -> case x of+            [] -> []+            _ -> [False,False,True,True]+    , \x -> case x of+            [] -> []+            _ -> [False,True,False,False]+    , \x -> case x of+            [] -> []+            _ -> [False,True,False,True]+    , \x -> case x of+            [] -> []+            _ -> [False,True,True,False]+    , \x -> case x of+            [] -> []+            _ -> [False,True,True,True]+    , \x -> case x of+            [] -> []+            _ -> [True,False,False,False]+    , \x -> case x of+            [] -> []+            _ -> [True,False,False,True]+    , \x -> case x of+            [] -> []+            _ -> [True,False,True,False]+    , \x -> case x of+            [] -> []+            _ -> [True,False,True,True]+    , \x -> case x of+            [] -> []+            _ -> [True,True,False,False]+    , \x -> case x of+            [] -> []+            _ -> [True,True,False,True]+    , \x -> case x of+            [] -> []+            _ -> [True,True,True,False]+    , \x -> case x of+            [] -> []+            _ -> [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]+    ]+  , ...+  ]
+ test/diff/tiers-default-Int-Bool-Bool.out view
@@ -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+    ]+  , ...+  ]
+ test/diff/tiers-default-Int-Int-Int-Int.out view
@@ -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+    ]+  , ...+  ]
+ test/diff/tiers-default-Int-Int-Int.out view
@@ -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+    ]+  , ...+  ]
+ test/diff/tiers-default-Int-Int.out view
@@ -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+    ]+  , ...+  ]
+ test/diff/tiers-default-Ints-Ints.out view
@@ -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]+    ]+  , ...+  ]
+ test/diff/tiers-default-MBool-Bool.out view
@@ -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+    ]+  ]
+ test/diff/tiers-default-MBool-MBool.out view
@@ -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+    ]+  ]
+ test/diff/tiers-default-Nat,Nat-Nat.out view
@@ -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+    ]+  , ...+  ]
+ test/diff/tiers-default-Nat-Nat-Nat.out view
@@ -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+    ]+  , ...+  ]
+ test/diff/tiers-default-Nat-Nat.out view
@@ -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+    ]+  , ...+  ]
+ test/diff/tiers-default-Nat-U.out view
@@ -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->()]  =+  [ [\_ -> ()]+  , []+  , []+  , []+  , []+  , []+  , ...+  ]
+ test/diff/tiers-default-Nat2-Nat2.out view
@@ -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]+  ]
+ test/diff/tiers-default-Nat2-Nat3.out view
@@ -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]+  ]
+ test/diff/tiers-default-Nat3-Nat2.out view
@@ -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]+  ]
+ test/diff/tiers-default-Nat3-Nat3.out view
@@ -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]+  ]
+ test/diff/tiers-default-Nats-Nats.out view
@@ -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]+    ]+  , ...+  ]
+ test/diff/tiers-default-U-Bool.out view
@@ -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+    ]+  ]
+ test/diff/tiers-default-U-Nat.out view
@@ -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]+  , ...+  ]
+ test/diff/tiers-default-U-U.out view
@@ -0,0 +1,10 @@+map length (tiers :: [[ ()->() ]])  =  [1]++length (list :: [ ()->() ])  =  1++allUnique (list :: [ ()->() ])  =  True++ratioRepetitions (list :: [ ()->() ])  =  0 % 1++tiers :: [()->()]  =+  [[\_ -> ()]]
+ test/diff/tiers-default-Us-Us.out view
@@ -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+            [] -> []+            _ -> [(),(),(),()]+    , \_ -> [(),(),(),(),()]+    ]+  , ...+  ]
+ test/diff/tiers.out view
@@ -0,0 +1,10 @@+map length (tiers :: [[ () ]])  =  [1]++length (list :: [ () ])  =  1++allUnique (list :: [ () ])  =  True++ratioRepetitions (list :: [ () ])  =  0 % 1++tiers :: [()]  =+  [[()]]
+ test/error.hs view
@@ -0,0 +1,64 @@+-- Copyright (c) 2015-2018 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.Error+import Test.LeanCheck.Utils.Types (Nat)+import Data.List (sort)++main :: IO ()+main =+  case elemIndices False (tests 100) of+    [] -> putStrLn "Tests passed!"+    is -> do putStrLn ("Failed tests:" ++ show is)+             exitFailure++tests n =+  [ True++  , not $ holds     n prop_sortMinE+  , fails           n prop_sortMinE+  , counterExample  n prop_sortMinE == Just ["[]"]+  , counterExamples n prop_sortMinE == [["[]"]]++  , holds           n prop_sortMin+  , not $ fails     n prop_sortMin+  , counterExample  n prop_sortMin == Nothing+  , counterExamples n prop_sortMin == []++  , exists          n someNumbers+  , witness         n someNumbers == Just ["2"]+  , witnesses       n someNumbers == map ((:[]).show) [2,3,5,7,11,13,17]++  , exists          n someOthers+  , witness         n someOthers == Just ["2","2"]+  , witnesses (100*n) someOthers == (map.map) show [[2,2],[2,4],[3,3]+                                                   ,[2,8],[3,9],[3,27]]+  ]++prop_sortMinE :: [Nat] -> Bool+prop_sortMinE xs = head (sort xs) == minimum (xs::[Nat])++prop_sortMin :: [Nat] -> Bool+prop_sortMin xs = not (null xs)+              ==> head (sort xs) == minimum (xs::[Nat])++someNumbers :: Int -> Bool+someNumbers  2 = True+someNumbers  3 = True+someNumbers  5 = True+someNumbers  7 = True+someNumbers 11 = True+someNumbers 13 = True+someNumbers 17 = True++someOthers :: Int -> Int -> Bool+someOthers = \x -> case x of 2 -> \y -> case y of 2 -> True+                                                  4 -> True+                                                  8 -> True+                             3 -> \y -> case y of 3 -> True+                                                  9 -> True+                                                  27 -> True
+ test/fun.hs view
@@ -0,0 +1,29 @@+-- Copyright (c) 2015-2018 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+import Test.LeanCheck.Function.ListsOfPairs+import Test.LeanCheck.Utils+++main :: IO ()+main =+  case elemIndices False tests of+    [] -> putStrLn "Tests passed!"+    is -> do putStrLn ("Failed tests:" ++ show is)+             exitFailure++tests =+  [ True+  -- TODO: add some tests here+  ]++allUnique :: Ord a => [a] -> Bool+allUnique [] = True+allUnique (x:xs) = x `notElem` xs+                && allUnique (filter (< x) xs)+                && allUnique (filter (> x) xs)
+ test/funshow.hs view
@@ -0,0 +1,158 @@+-- Copyright (c) 2015-2018 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.Function.ShowFunction+import Test.LeanCheck.Function.Show+import Test.LeanCheck.Utils.TypeBinding++main :: IO ()+main =+  case elemIndices False tests of+    [] -> putStrLn "Tests passed!"+    is -> do putStrLn ("Failed tests:" ++ show is)+             exitFailure+++tests =+  [ True++  -- undefined values --+  , showFunction 2 int == "undefined"+  , showFunction 2 bool == "undefined"+  , showFunction 2 char == "undefined"+  , showFunctionLine 10 (int  >- int) == "\\_ -> undefined"+  , showFunctionLine 10 (bool >- bool) == "\\_ -> undefined"++  -- partially defined --+  , showFunctionLine 2 (\x -> case x of True -> True)+                   == "\\x -> case x of True -> True"+  , showFunctionLine 10 (\x -> case (x::Int) of 3 -> (4::Int); 5 -> 6)+                    == "\\x -> case x of 3 -> 4; 5 -> 6"+  , showFunctionLine 10 (\x y -> case (x::Int,y::Int) of (1,2) -> (3::Int); (2,1) -> 3)+                    == "\\x y -> case (x,y) of (1,2) -> 3; (2,1) -> 3"++  -- fully defined, infinite --+  , showFunction 3 ((+) -:> int)+    == "\\x y -> case (x,y) of\n"+    ++ "        (0,0) -> 0\n"+    ++ "        (0,1) -> 1\n"+    ++ "        (1,0) -> 1\n"+    ++ "        ...\n"+  , showFunction 3 ((++) -:> [int])+    == "\\x y -> case (x,y) of\n"+    ++ "        ([],[]) -> []\n"+    ++ "        ([],[0]) -> [0]\n"+    ++ "        ([0],[]) -> [0]\n"+    ++ "        ...\n"+  , showFunction 4 (sort -:> [char])+    == "\\x -> case x of\n"+    ++ "      \"\" -> \"\"\n"+    ++ "      \"a\" -> \"a\"\n"+    ++ "      \"aa\" -> \"aa\"\n"+    ++ "      \" \" -> \" \"\n"+    ++ "      ...\n"+++  -- fully defined, finite --+  , showFunction 1 not+    == "\\x -> case x of\n"+    ++ "      False -> True\n"+    ++ "      ...\n"+  , showFunction 2 not+    == "\\x -> case x of\n"+    ++ "      False -> True\n"+    ++ "      True -> False\n"+  , showFunction 3 (&&)+    == "\\x y -> case (x,y) of\n"+    ++ "        (True,True) -> True\n"+    ++ "        _ -> False\n"+  , showFunction 4 (&&)+    == "\\x y -> case (x,y) of\n"+    ++ "        (True,True) -> True\n"+    ++ "        _ -> False\n"+  , showFunction 3 (||)+    == "\\x y -> case (x,y) of\n"+    ++ "        (False,False) -> False\n"+    ++ "        _ -> True\n"+  , showFunction 4 (||)+    == "\\x y -> case (x,y) of\n"+    ++ "        (False,False) -> False\n"+    ++ "        _ -> True\n"++  , showFunction 4 arg1of1is0+    == "\\x -> case x of\n"+    ++ "      0 -> True\n"+    ++ "      _ -> False\n"+  , showFunction 4 arg1of1isnt1+    == "\\x -> case x of\n"+    ++ "      1 -> False\n"+    ++ "      _ -> True\n"++  , showFunction 4 arg1of2is0+    == "\\x _ -> case x of\n"+    ++ "        0 -> True\n"+    ++ "        _ -> False\n"+  , showFunction 4 arg2of2is0+    == "\\_ y -> case y of\n"+    ++ "        0 -> True\n"+    ++ "        _ -> False\n"+  , showFunction 4 arg2of3isnt2+    == "\\_ y _ -> case y of\n"+    ++ "          2 -> False\n"+    ++ "          _ -> True\n"+  , showFunction 4 args1or3of3are0+    == "\\x _ z -> case (x,z) of\n"+    ++ "          (0,_) -> True\n"+    ++ "          (_,0) -> True\n"+    ++ "          _ -> False\n"+  , showFunction 4 args13of3arent0+    == "\\x _ z -> case (x,z) of\n"+    ++ "          (0,0) -> False\n"+    ++ "          _ -> True\n"+  ]++arg1of1is0 :: Int -> Bool+arg1of1is0 =+  \x -> case x of+        0 -> True+        _ -> False++arg1of1isnt1 :: Int -> Bool+arg1of1isnt1 =+  \x -> case x of+        1 -> False+        _ -> True++arg1of2is0 :: Int -> Int -> Bool+arg1of2is0 =+  \x y -> case (x,y) of+          (0,_) -> True+          _ -> False++arg2of2is0 :: Int -> Int -> Bool+arg2of2is0 =+  \x y -> case (x,y) of+          (_,0) -> True+          _ -> False++arg2of3isnt2 :: Int -> Int -> Int -> Bool+arg2of3isnt2 =+  \x y z -> case (x,y,z) of+            (_,2,_) -> False+            _ -> True++args1or3of3are0 :: Int -> Int -> Int -> Bool+args1or3of3are0 =+  \x y z -> case (x,y,z) of+            (0,_,_) -> True+            (_,_,0) -> True+            _ -> False++args13of3arent0 :: Int -> Int -> Int -> Bool+args13of3arent0 =+  \x y z -> case (x,y,z) of+            (0,_,0) -> False+            _ -> True
+ test/generic.hs view
@@ -0,0 +1,65 @@+-- Copyright (c) 2015-2018 Rudy Matela.+-- Distributed under the 3-Clause BSD licence (see the file LICENSE).+{-# LANGUAGE DeriveGeneric, StandaloneDeriving #-}+import Test+import Test.LeanCheck+import Test.LeanCheck.Generic+import System.Exit (exitFailure)+import Data.List (elemIndices,sort)+import Test.LeanCheck.Utils.Operators+import GHC.Generics (Generic)++data D0       = D0                    deriving (Eq, Show, Generic)+data 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)+data C2 a b   = C22 a b | C21 a | C20 deriving (Eq, Show, Generic)+data I a b    = a :+ b                deriving (Eq, Show, Generic)++instance Listable D0                   where tiers = genericTiers++instance Listable a => Listable (D1 a) where tiers = genericTiers++instance (Listable a, Listable b)+      => Listable (D2 a b)             where tiers = genericTiers++instance (Listable a, Listable b, Listable c)+      => Listable (D3 a b c)           where tiers = genericTiers++instance Listable a => Listable (C1 a) where tiers = genericTiers++instance (Listable a, Listable b)+      => Listable (C2 a b)             where tiers = genericTiers++instance (Listable a, Listable b)+      => Listable (I a b)              where tiers = genericTiers++main :: IO ()+main =+  case elemIndices False (tests 100) of+    [] -> putStrLn "Tests passed!"+    is -> do putStrLn ("Failed tests:" ++ show is)+             exitFailure++tests n =+  [ True++  , map unD0 list =| n |= list+  , map unD1 list =| n |= (list :: [Int])+  , map unD2 list =| n |= (list :: [(Int,Int)])+  , map unD3 list =| n |= (list :: [(Int,Int,Int)])++  , map unD1 list == (list :: [()])+  , map unD2 list == (list :: [((),())])+  , map unD3 list == (list :: [((),(),())])++  , map unD1 list == (list :: [Bool])+  , map unD2 list == (list :: [(Bool,Bool)])+  , map unD3 list == (list :: [(Bool,Bool,Bool)])+  ]+  where+  unD0 (D0)       = ()+  unD1 (D1 x)     = (x)+  unD2 (D2 x y)   = (x,y)+  unD3 (D3 x y z) = (x,y,z)
+ test/io.hs view
@@ -0,0 +1,10 @@+-- Copyright (c) 2015-2018 Rudy Matela.+-- Distributed under the 3-Clause BSD licence (see the file LICENSE).+import Test+import Test.LeanCheck.IO++main :: IO ()+main = do+  check $ \x -> (x::Int) + x == 2*x    -- should pass+--check $ \x -> (x::Int) + x == x      -- should fail, falsifiable+--check $ \x -> (x::Int) `div` x == 1  -- should fail, exception
+ test/main.hs view
@@ -0,0 +1,101 @@+-- Copyright (c) 2015-2018 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+import Test.LeanCheck.Utils++import Data.Ratio+import Data.Word (Word)++main :: IO ()+main =+  case elemIndices False tests of+    [] -> putStrLn "Tests passed!"+    is -> do putStrLn ("Failed tests:" ++ show is)+             exitFailure++tests :: [Bool]+tests =+  [ True++  -- interleave+  , [1,2,3] +| [0,0,0] == [1,0,2,0,3,0]+  , take 3 ([1,2] +| (0:undefined)) == [1,0,2]+  , [0,2..] +| [1,3..] =| 100 |= [0,1..]++  -- etc+  , tNatPairOrd 100+  , tNatTripleOrd 200+  , tNatQuadrupleOrd 300+  , tNatQuintupleOrd 400+  , tNatListOrd 500+  , tListsOfNatOrd 500+  , listsOf (tiers::[[Nat]]) =| 10 |= tiers++  -- tests!+  , counterExample 10 (\x y -> x + y /= (x::Int)) == Just ["0", "0"]+  , counterExample 10 (\x y -> x + y == (x::Int)) == Just ["0", "1"]+  , counterExample 10 (maybe True (==(0::Int))) == Just ["(Just 1)"]+  , holds 100 (\x -> x == (x::Int))++  -- For when NaN is in the enumeration (by default, it is not):+  --, fails 100 (\x -> x == (x::Float))  -- NaN != NaN  :-)+  --, counterExample 100 (\x -> x == (x::Float)) == Just ["NaN"]+  , counterExample 10 (\x y -> x + y == (x::Float))  == Just ["0.0","1.0"]+  , counterExample 10 (\x y -> x + y == (x::Double)) == Just ["0.0","1.0"]+  , holds          50 (\x -> x + 1 /= (x::Int))+  , counterExample 50 (\x -> x + 1 /= (x::Float))  == Just ["Infinity"]+    || counterExample 50 (\x -> x + 1 /= (x::Float)) == Just ["inf"] -- bug on Hugs 2006-09?+  , counterExample 50 (\x -> x + 1 /= (x::Double)) == Just ["Infinity"]+    || counterExample 50 (\x -> x + 1 /= (x::Float)) == Just ["inf"] -- bug on Hugs 2006-09?+  , allUnique (take 100 list :: [Float])+  , allUnique (take 500 list :: [Double])++  , allUnique (take 500 list :: [Rational])+  , allUnique (take 100 list :: [Ratio Nat])+  , orderedOn (\r -> numerator r + denominator r) (take 500 (list :: [Ratio Nat]))+  , orderedOn (\r -> abs (numerator r) + abs(denominator r)) (take 500 (list :: [Rational]))++  , list == [LT, EQ, GT]+  , orderedOn length (take 500 (list :: [[Ordering]]))+  , orderedOn length (take 500 (list :: [[Bool]]))++  , strictlyOrderedOn (\xs -> (sum $ map (+1) xs, xs)) (take 500 (list :: [[Word]]))++  , tPairEqParams 100+  , tTripleEqParams 100++  , tProductsIsFilterByLength (tiers :: [[ Nat ]])   10 `all` [1..10]+  , tProductsIsFilterByLength (tiers :: [[ Bool ]])   6 `all` [1..10]+  , tProductsIsFilterByLength (tiers :: [[ [Nat] ]])  6 `all` [1..10]++  , holds 100 $  (\/)  ==== zipWith' (++) [] [] -:> [[uint2]]+  , holds 100 $  (\/)  ==== zipWith' (++) [] [] -:> [[bool]]+  , holds 100 $ (\\//) ==== zipWith' (+|) [] [] -:> [[uint2]]+  , holds 100 $ (\\//) ==== zipWith' (+|) [] [] -:> [[bool]]+  ]++allUnique :: Ord a => [a] -> Bool+allUnique [] = True+allUnique (x:xs) = x `notElem` xs+                && allUnique (filter (< x) xs)+                && allUnique (filter (> x) xs)+++-- | 'zipwith\'' works similarly to 'zipWith', but takes neutral elements to+--   operate when one of the lists is exhausted, so, you don't loose elements.+--+-- > zipWith' f z e [x,y] [a,b,c,d] == [f x a, f y b, f z c, f z d]+--+-- > zipWith' f z e [x,y,z] [a] == [f x a, f y e, f z e]+--+-- > zipWith' (+) 0 0 [1,2,3] [1,2,3,4,5,6] == [2,4,6,4,5,6]+zipWith' :: (a->b->c) -> a -> b  -> [a] -> [b] -> [c]+zipWith' _ _  _  []     [] = []+zipWith' f _  zy xs     [] = map (`f` zy) xs+zipWith' f zx _  []     ys = map (f zx) ys+zipWith' f zx zy (x:xs) (y:ys) = f x y : zipWith' f zx zy xs ys
+ test/operators.hs view
@@ -0,0 +1,143 @@+-- Copyright (c) 2015-2018 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+import Test.LeanCheck.Utils++import Data.List (isPrefixOf)+import Data.Function (on)++main :: IO ()+main =+  case elemIndices False (tests 100) of+    [] -> putStrLn "Tests passed!"+    is -> do putStrLn ("Failed tests:" ++ show is)+             exitFailure++tests :: Int -> [Bool]+tests n =+  [ True++  , holds n $ (not . not) === id+  , fails n $ abs === (* (-1))             -:> int+  , holds n $ (+) ==== (\x y -> sum [x,y]) -:> int+  , fails n $ (+) ==== (*)                 -:> int++  , holds n $ const True  &&& const True  -:> bool+  , fails n $ const False &&& const True  -:> int+  , holds n $ const False ||| const True  -:> int+  , fails n $ const False ||| const False -:> int++  , holds n $ commutative (+)  -:> int+  , holds n $ commutative (*)  -:> int+  , holds n $ commutative (++) -:> [()]+  , holds n $ commutative (&&)+  , holds n $ commutative (||)+  , fails n $ commutative (-)  -:> int+  , fails n $ commutative (++) -:> [bool]+  , fails n $ commutative (==>)++  , holds n $ associative (+)  -:> int+  , holds n $ associative (*)  -:> int+  , holds n $ associative (++) -:> [int]+  , holds n $ associative (&&)+  , holds n $ associative (||)+  , fails n $ associative (-)  -:> int+  , fails n $ associative (==>)++  , holds n $ distributive (*) (+) -:> int+  , fails n $ distributive (+) (*) -:> int++  , holds n $ symmetric (==) -:> int+  , holds n $ symmetric (/=) -:> int+  , fails n $ symmetric (<=) -:> int++  , holds n $   reflexive (==) -:> int+  , holds n $ irreflexive (/=) -:> int++  , holds n $ (<)  `symmetric2` (>)  -:> int+  , holds n $ (<=) `symmetric2` (>=) -:> int+  , fails n $ (<)  `symmetric2` (>=) -:> int+  , fails n $ (<=) `symmetric2` (>)  -:> int++  , holds n $ transitive (==) -:> bool+  , holds n $ transitive (<)  -:> bool+  , holds n $ transitive (<=) -:> bool+  , fails n $ transitive (/=) -:> bool+  , holds n $ transitive (==) -:> int+  , holds n $ transitive (<)  -:> int+  , holds n $ transitive (<=) -:> int+  , fails n $ transitive (/=) -:> int++  , holds n $ asymmetric    (<)  -:> int+  , holds n $ antisymmetric (<=) -:> int+  , fails n $ asymmetric    (<=) -:> int+  , holds n $ asymmetric    (>)  -:> int+  , holds n $ antisymmetric (>=) -:> int+  , fails n $ asymmetric    (>=) -:> int++  , holds n $ equivalence (==) -:> int+  , holds n $ equivalence ((==) `on` fst) -:> (int,int)+  , holds n $ equivalence ((==) `on` length) -:> [int]++  , holds n $       totalOrder (<=) -:> int+  , holds n $ strictTotalOrder (<)  -:> int+  , fails n $       totalOrder (<)  -:> int+  , fails n $ strictTotalOrder (<=) -:> int+  , holds n $       totalOrder (>=) -:> int+  , holds n $ strictTotalOrder (>)  -:> int+  , fails n $       totalOrder (>)  -:> int+  , fails n $ strictTotalOrder (>=) -:> int++  , holds n $ partialOrder isPrefixOf -:> [int]+  , fails n $   totalOrder isPrefixOf -:> [int]++  , holds n $ comparison compare -:> int+  , holds n $ comparison compare -:> bool+  , holds n $ comparison compare -:> ()++  , holds n $ okEqOrd -:> ()+  , holds n $ okEqOrd -:> int+  , holds n $ okEqOrd -:> char+  , holds n $ okEqOrd -:> bool+  , holds n $ okEqOrd -:> [()]+  , holds n $ okEqOrd -:> [int]+  , holds n $ okEqOrd -:> [bool]+  , holds n $ okEqOrd -:> float  -- fails if NaN is included in enumeration+  , holds n $ okEqOrd -:> double -- fails if NaN is included in enumeration+  , holds n $ okEqOrd -:> rational+  , holds n $ okEqOrd -:> nat+  , holds n $ okEqOrd -:> natural++  , holds n $ okNum -:> int+  , holds n $ okNum -:> integer+-- NOTE: the following two fail on Hugs due to a bug on Hugs.+--, holds n $ \x y z -> none isInfinite [x,y,z] ==> okNum x y (z -: float)+--, holds n $ \x y z -> none isInfinite [x,y,z] ==> okNum x y (z -: double)+  , holds n $ okNum -:> rational+  , holds n $ okNumNonNegative -:> nat+  , holds n $ okNumNonNegative -:> natural+  , holds n $ (\x y -> x < y ==> x - y == 0) -:> nat+  , holds n $ (\x y -> x < y ==> x - y == 0) -:> natural++  , holds n $ idempotent id   -:> int+  , holds n $ idempotent abs  -:> int+  , holds n $ idempotent sort -:> [bool]+  , fails n $ idempotent not++  , holds n $ identity id   -:> int+  , holds n $ identity (+0) -:> int+  , holds n $ identity sort -:> [()]+  , holds n $ identity (not . not)+  , fails n $ identity not++  , holds n $ neverIdentity not+  , fails n $ neverIdentity abs    -:> int+  , fails n $ neverIdentity negate -:> int+  ]++none :: (a -> Bool) -> [a] -> Bool+none p = not . or . map p
+ test/sdist view
@@ -0,0 +1,33 @@+#!/bin/bash+#+# test/sdist: tests the package generated by "cabal sdist".+#+# Copyright (c) 2015-2018 Rudy Matela.+# Distributed under the 3-Clause BSD licence.+export LC_ALL=C  # consistent sort+pkgver=` cat *.cabal | grep "^version:" | sed -e "s/version: *//"`+pkgname=`cat *.cabal | grep "^name:"    | sed -e "s/name: *//"`+pkg=$pkgname-$pkgver+set -x+cabal sdist &&+cd dist &&+tar -tf $pkg.tar.gz | sort --ignore-case          > ls-cabal-i  &&+tar -tf $pkg.tar.gz | sort --ignore-case --unique > ls-cabal-iu &&+diff -rud ls-cabal-i ls-cabal-iu &&+rm -f ls-cabal ls-cabal-ignore-case &&+if [ -d ../.git ]+then+	# on git repo, test if files are the same+	git -C .. ls-files                                      | sort > ls-git   &&+	tar -tf $pkg.tar.gz | grep -v "/$" | sed -e "s,$pkg/,," | sort > ls-cabal &&+	diff -rud ls-git ls-cabal &&+	rm -f ls-git ls-cabal+else+	# outside of git repo, test build+	rm -rf $pkg/ &&+	tar -xzf $pkg.tar.gz &&+	cd $pkg/ &&+	cabal configure --enable-tests --enable-benchmarks &&+	cabal build &&+	cabal test+fi
+ test/stats.hs view
@@ -0,0 +1,55 @@+-- Copyright (c) 2017-2018 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+import Test.LeanCheck.Stats++import Data.List (isPrefixOf)+import Data.Function (on)++main :: IO ()+main = do+  putStrLn "sum :: [Int] -> Bool"+  classStats 100 (sum     :: [Int] -> Int)++  putStrLn "length :: [Int] -> Int"+  classStats 100 (length  :: [Int] -> Int)++  putStrLn "take 1 :: [Int] -> [Int]"+  classStats 100 (take 1  :: [Int] -> [Int])++  conditionStats 1000 [ ("odd", odd :: Int -> Bool)+                      , ("even", even) ]++  conditionStats 1000 [ ("ordered",ordered :: [Int] -> Bool)+                      , ("ordered . reverse", ordered . reverse) ]++  putStrLn "sum :: [Int] -> Bool"+  classStatsT 6 (sum     :: [Int] -> Int)++  putStrLn "length :: [Int] -> Int"+  classStatsT 6 (length  :: [Int] -> Int)++  putStrLn "take 1 :: [Int] -> [Int]"+  classStatsT 6 (take 1  :: [Int] -> [Int])+++  case elemIndices False (tests 100) of+    [] -> putStrLn "Tests passed!"+    is -> do putStrLn ("Failed tests:" ++ show is)+             exitFailure++tests :: Int -> [Bool]+tests n =+  [ True++  , classify                   [1,2,3,4,1,2,3,1,2,1] == [[1,1,1,1],[2,2,2],[3,3],[4]]+  , classifyBy ((==) `on` odd) [1,2,3,4,1,2,3,1,2,1] == [[1,3,1,3,1,1],[2,4,2,2]]+  , classifyOn odd             [1,2,3,4,1,2,3,1,2,1] == [[1,3,1,3,1,1],[2,4,2,2]]+  , counts                   [1,2,3,4,1,2,3,1,2,1] == [(1,4),(2,3),(3,2),(4,1)]+  , countsBy ((==) `on` odd) [1,2,3,4,1,2,3,1,2,1] == [(1,6),(2,4)]+  , countsOn odd             [1,2,3,4,1,2,3,1,2,1::Int] == [(True,6),(False,4)]+  ]
+ test/tiers.hs view
@@ -0,0 +1,113 @@+-- Copyright (c) 2015-2018 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+import Test.LeanCheck.Utils++import Test.LeanCheck.Tiers++main :: IO ()+main =+  case elemIndices False tests of+    [] -> putStrLn "Tests passed!"+    is -> do putStrLn ("Failed tests:" ++ show is)+             exitFailure++tests =+  [ True++  , checkNoDup 12+  , checkBags 18+  , checkSets 20+  , checkDistinctPairs 20+  , checkUnorderedPairs 20+  , checkUnorderedDistinctPairs 20+  , checkLengthListingsOfLength 5 5+  , checkSizesListingsOfLength 5 5++  , all (uncurry (/=)) . concat . take 100 $ distinctPairs (tiers :: [[Nat]])++  , productMaybeWith ($) [[const Nothing, Just]] [[1],[2],[3],[4]] == [[1],[2],[3],[4]]+  , productMaybeWith (flip ($))+                     [[1],[2],[3],[4]]+                     [[const Nothing],[Just]] == [[],[1],[2],[3],[4]]++  , holds 100 $ deleteT_is_map_delete 10 -:> nat+  , holds 100 $ deleteT_is_map_delete 10 -:> int+  , holds 100 $ deleteT_is_map_delete 10 -:> bool+  , holds 100 $ deleteT_is_map_delete 10 -:> int2++  , finite (tiers :: [[ Bool ]])  == True+  , finite (tiers :: [[ (Bool,Bool) ]]) == True+  , finite (tiers :: [[ Nat1 ]])  == True+  , finite (tiers :: [[ Nat2 ]])  == True+  , finite (tiers :: [[ Nat3 ]])  == True+  , finite (tiers :: [[ Nat4 ]])  == True+  , finite (tiers :: [[ Nat5 ]])  == True+  , finite (tiers :: [[ Nat6 ]])  == True+  , finite (tiers :: [[ Nat7 ]])  == True+  , finite (tiers :: [[ Word1 ]])  == True+  , finite (tiers :: [[ Word2 ]])  == True+  , finite (tiers :: [[ Word3 ]])  == True++  , finite (tiers :: [[ Nat ]])   == False+  , finite (tiers :: [[ Int ]])   == False+  , finite (tiers :: [[ [Int] ]]) == False+  , finite (tiers :: [[ [()] ]])  == False++  -- false negatives, more than 12 values:+  , finite (tiers :: [[ Word4 ]])  == False+  , finite (tiers :: [[ (Bool,Bool,Bool,Bool,Bool) ]]) == False+  , finite (tiers :: [[ (Bool,Bool,Bool,Bool,Bool,Bool) ]]) == False++  , holds 100 $ \xss -> ordered . concat $ discardLaterT (<)  (xss::[[Int]])+  , holds 100 $ \xss -> ordered . concat $ discardLaterT (<=) (xss::[[Int]])+  , (length . concat $ discardLaterT (<=) [[1..100]]) == 100+  , (length . concat $ discardLaterT (<=) [[00..99],[100..199::Int]]) == 200+  , holds 100 $ \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 = deleteT x tiers+                    =| n |= normalizeT (map (delete x) tiers)++checkNoDup :: Int -> Bool+checkNoDup n = noDupListsOf (tiers :: [[Int]]) =| n |= tiers `suchThat` noDup+  where noDup xs = nub (sort xs) == sort xs++checkBags :: Int -> Bool+checkBags n = bagsOf (tiers :: [[Nat]]) =| n |= tiers `suchThat` ordered++checkSets :: Int -> Bool+checkSets n = setsOf (tiers :: [[Nat]]) =| n |= tiers `suchThat` strictlyOrdered++checkDistinctPairs :: Int -> Bool+checkDistinctPairs n =+  distinctPairs (tiers :: [[Nat]]) =| n |= tiers `suchThat` uncurry (/=)++checkUnorderedDistinctPairs :: Int -> Bool+checkUnorderedDistinctPairs n =+  unorderedDistinctPairs (tiers :: [[Nat]]) =| n |= tiers `suchThat` uncurry (<)++checkUnorderedPairs :: Int -> Bool+checkUnorderedPairs n =+  unorderedPairs (tiers :: [[Nat]]) =| n |= tiers `suchThat` uncurry (<=)++checkLengthListingsOfLength :: Int -> Int -> Bool+checkLengthListingsOfLength n m = all check [1..m]+  where check m = all (\xs -> length xs == m)+                $ concat . take n+                $ listsOfLength m natTiers++checkSizesListingsOfLength :: Int -> Int -> Bool+checkSizesListingsOfLength n m = all check [1..m]+  where check m = orderedBy compare+                $ map sum . concat . take n+                $ listsOfLength m natTiers++natTiers :: [[Nat]]+natTiers = tiers
+ test/types.hs view
@@ -0,0 +1,187 @@+-- Copyright (c) 2015-2018 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 Test.LeanCheck (list,fails)+import Data.Word+import Data.Int+import Data.Char hiding (Space)++main :: IO ()+main =+  case elemIndices False tests of+    [] -> putStrLn "Tests passed!"+    is -> do putStrLn ("Failed tests:" ++ show is)+             exitFailure+++-- | Given the number of bits, generates a range for signed/unsigned integers+--   of that width.+signedRange,unsignedRange :: (Num n) => Int -> [n]+signedRange n   = map fromIntegral [-(2^(n-1))..(2^(n-1))-1]+unsignedRange n = map fromIntegral [0..(2^n)-1]+++tests =+  [ True++  , list `permutation` [minBound..maxBound :: Int1]+  , list `permutation` [minBound..maxBound :: Int2]+  , list `permutation` [minBound..maxBound :: Int3]+  , list `permutation` [minBound..maxBound :: Int4]++  , list `permutation` [minBound..maxBound :: UInt1]+  , list `permutation` [minBound..maxBound :: UInt2]+  , list `permutation` [minBound..maxBound :: UInt3]+  , list `permutation` [minBound..maxBound :: UInt4]++  , list `permutation` [minBound..maxBound :: Nat1]+  , list `permutation` [minBound..maxBound :: Nat2]+  , list `permutation` [minBound..maxBound :: Nat3]+  , list `permutation` [minBound..maxBound :: Nat4]+  , list `permutation` [minBound..maxBound :: Nat5]+  , list `permutation` [minBound..maxBound :: Nat6]+  , list `permutation` [minBound..maxBound :: Nat7]++  , map unX list `permutation` [minBound..maxBound :: Int8]+  , map unX list `permutation` [minBound..maxBound :: Int4]+  , map unX list `permutation` [minBound..maxBound :: Int3]+-- TODO: make the following commented tests pass:+--, map unX list `permutation` [minBound..maxBound :: Int2]+--, map unX list `permutation` [minBound..maxBound :: Int1]+  , map unX list `permutation` [minBound..maxBound :: Word8]+  , map unX list `permutation` [minBound..maxBound :: Word4]+  , map unX list `permutation` [minBound..maxBound :: Word3]+  , map unX list `permutation` [minBound..maxBound :: Word2]+  , map unX list `permutation` [minBound..maxBound :: Word1]+  , map unX list `permutation` [minBound..maxBound :: Nat7]+  , map unX list `permutation` [minBound..maxBound :: Nat6]+  , map unX list `permutation` [minBound..maxBound :: Nat5]+  , map unX list `permutation` [minBound..maxBound :: Nat4]+-- TODO: make the following commented tests pass:+--, map unX list `permutation` [minBound..maxBound :: Nat3]+--, map unX list `permutation` [minBound..maxBound :: Nat2]+--, map unX list `permutation` [minBound..maxBound :: Nat1]++  , (prefiX :: [Int8])  `isPrefixOf` map unX list+  , (prefiX :: [Int16]) `isPrefixOf` map unX list+  , (prefiX :: [Int32]) `isPrefixOf` map unX list+  , (prefiX :: [Int64]) `isPrefixOf` map unX list+  , (prefiX :: [Int])   `isPrefixOf` map unX list++  , (prefiXN :: [Word8])  `isPrefixOf` map unX list+  , (prefiXN :: [Word16]) `isPrefixOf` map unX list+  , (prefiXN :: [Word32]) `isPrefixOf` map unX list+  , (prefiXN :: [Word64]) `isPrefixOf` map unX list+  , (prefiXN :: [Word])   `isPrefixOf` map unX list++  , (prefiXs :: [[Int8]])  `isPrefixOf` map unXs list+  , (prefiXs :: [[Int16]]) `isPrefixOf` map unXs list+  , (prefiXs :: [[Int32]]) `isPrefixOf` map unXs list+  , (prefiXs :: [[Int64]]) `isPrefixOf` map unXs list+  , (prefiXs :: [[Int]])   `isPrefixOf` map unXs list++  , (prefiXNs :: [[Word8]])  `isPrefixOf` map unXs list+  , (prefiXNs :: [[Word16]]) `isPrefixOf` map unXs list+  , (prefiXNs :: [[Word32]]) `isPrefixOf` map unXs list+  , (prefiXNs :: [[Word64]]) `isPrefixOf` map unXs list+  , (prefiXNs :: [[Word]])   `isPrefixOf` map unXs list+++  , [minBound..maxBound :: Int1] == signedRange 1+  , [minBound..maxBound :: Int2] == signedRange 2+  , [minBound..maxBound :: Int3] == signedRange 3+  , [minBound..maxBound :: Int4] == signedRange 4++  , [minBound..maxBound :: UInt1] == unsignedRange 1+  , [minBound..maxBound :: UInt2] == unsignedRange 2+  , [minBound..maxBound :: UInt3] == unsignedRange 3+  , [minBound..maxBound :: UInt4] == unsignedRange 4+++  -- abs minBound == minBound+  , fails 100 (\i -> abs i > (0::Int1))+  , fails 100 (\i -> abs i > (0::Int2))+  , fails 100 (\i -> abs i > (0::Int3))+  , fails 100 (\i -> abs i > (0::Int4))++  -- maxBound + 1 == minBound+  , fails 100 (\i -> i + 1 < (i::Int1))+  , fails 100 (\i -> i + 1 < (i::Int2))+  , fails 100 (\i -> i + 1 < (i::Int3))+  , fails 100 (\i -> i + 1 < (i::Int4))++  , holds 100 (\(Nat n) -> n >= 0)+  , holds 100 (\(Natural n) -> n >= 0)++  , holds 100 $ \(Space c) -> isSpace c+  , holds 100 $ \(Lower c) -> isLower c+  , holds 100 $ \(Upper c) -> isUpper c+  , holds 100 $ \(Alpha c) -> isAlpha c+  , holds 100 $ \(Digit c) -> isDigit c+  , holds 100 $ \(AlphaNum c) -> isAlphaNum c+  , holds 100 $ \(Letter c) -> isLetter c++  , holds 100 $ \(Spaces s) -> all isSpace s+  , holds 100 $ \(Lowers s) -> all isLower s+  , holds 100 $ \(Uppers s) -> all isUpper s+  , holds 100 $ \(Alphas s) -> all isAlpha s+  , holds 100 $ \(Digits s) -> all isDigit s+  , holds 100 $ \(AlphaNums s) -> all isAlphaNum s+  , holds 100 $ \(Letters s)   -> all isLetter s+  ]+  where+  unXs (Xs xs) = xs+++prefiX :: (Bounded a, Integral a) => [a]+prefiX =+  [ 0+  , 1, -1+  , maxBound, minBound+  , 2, -2+  , maxBound-1, minBound+1+  , 3, -3+  , maxBound-2, minBound+2+  ]++prefiXs :: (Bounded a, Integral a) => [[a]]+prefiXs =+  [ []+  , [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], [maxBound]+  , [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,maxBound]+    , [1,0,0,0], [1,0,1], [1,1,0], [1,-1]+    , [-1,0,0], [-1,1], [maxBound,0], [minBound]+  ]++prefiXN :: (Bounded a, Integral a) => [a]+prefiXN =+  [ 0+  , 1, 2+  , maxBound+  , 3, 4+  , maxBound-1+  , 5, 6+  , maxBound-2+  ]++prefiXNs :: (Bounded a, Integral a) => [[a]]+prefiXNs =+  [ []+  , [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], [maxBound]+  ]++permutation :: Eq a => [a] -> [a] -> Bool+[]     `permutation` []    = True+(_:_)  `permutation` []    = False+[]     `permutation` (_:_) = False+(x:xs) `permutation` ys    = x `elem` ys  &&  xs `permutation` delete x ys
− tests/Test.hs
@@ -1,143 +0,0 @@--- |--- Module      : Test--- Copyright   : (c) 2015-2018 Rudy Matela--- License     : 3-Clause BSD  (see the file LICENSE)--- Maintainer  : Rudy Matela <rudy@matela.com.br>------ This module is part of LeanCheck,--- a simple enumerative property-based testing library.------ Some helper functios to test LeanCheck itself.-module Test-  ( module Test.LeanCheck--  , tNatPairOrd-  , tNatTripleOrd-  , tNatQuadrupleOrd-  , tNatQuintupleOrd-  , tNatListOrd-  , tListsOfNatOrd-  , tPairEqParams-  , tTripleEqParams-  , tProductsIsFilterByLength--  , ordered-  , orderedBy-  , orderedOn-  , strictlyOrdered-  , strictlyOrderedBy-  , strictlyOrderedOn-  )-where--import Test.LeanCheck-import Data.List-import Data.Ord-import Test.LeanCheck.Utils.Types (Nat(..))---- | check if a list is ordered-ordered :: Ord a => [a] -> Bool-ordered = orderedBy compare--- ordered [] = True--- ordered [_] = True--- ordered (x:y:xs) = x <= y && ordered (y:xs)--strictlyOrdered :: Ord a => [a] -> Bool-strictlyOrdered = strictlyOrderedBy compare---- | check if a list is ordered by a given ordering function-orderedBy :: (a -> a -> Ordering) -> [a] -> Bool-orderedBy _ [] = True-orderedBy _ [_] = True-orderedBy cmp (x:y:xs) = case x `cmp` y of-                           GT -> False-                           _  -> orderedBy cmp (y:xs)--orderedOn :: Ord b => (a -> b) -> [a] -> Bool-orderedOn f = orderedBy (comparing f)---- | check if a list is strictly ordered by a given ordering function-strictlyOrderedBy :: (a -> a -> Ordering) -> [a] -> Bool-strictlyOrderedBy _ [] = True-strictlyOrderedBy _ [_] = True-strictlyOrderedBy cmp (x:y:xs) = case x `cmp` y of-                                   LT -> strictlyOrderedBy cmp (y:xs)-                                   _  -> False--strictlyOrderedOn :: Ord b => (a -> b) -> [a] -> Bool-strictlyOrderedOn f = strictlyOrderedBy (comparing f)--ifNotEq :: Ordering -> Ordering -> Ordering--- Could be implemented as:  ifNotEq = mappend-ifNotEq EQ p = p-ifNotEq  o _ = o--thn :: (a->a->Ordering) -> (a->a->Ordering) -> a -> a -> Ordering-thn cmp1 cmp2 x y = (x `cmp1` y) `ifNotEq` (x `cmp2` y)-infixr 9 `thn`----- | checks if the first 'n' elements on tiers are ordered by 'cmp'.------ > (n `seriesOrderedBy`) comparing (id :: Type)-tOrderedBy :: Listable a => Int -> (a -> a -> Ordering) -> Bool-tOrderedBy n cmp = orderedBy cmp $ take n list-infixr 9 `tOrderedBy`--tStrictlyOrderedBy :: Listable a => Int -> (a -> a -> Ordering) -> Bool-tStrictlyOrderedBy n cmp = strictlyOrderedBy cmp $ take n list-infixr 9 `tStrictlyOrderedBy`--tNatPairOrd :: Int -> Bool-tNatPairOrd n = n `tStrictlyOrderedBy`  comparing sum' `thn` compare-  where sum' (x,y) = x+y :: Nat--tNatTripleOrd :: Int -> Bool-tNatTripleOrd n = n `tStrictlyOrderedBy`  comparing sum' `thn` compare-  where sum' (x,y,z) = x+y+z :: Nat--tNatQuadrupleOrd :: Int -> Bool-tNatQuadrupleOrd n = n `tStrictlyOrderedBy`  comparing sum' `thn` compare-  where sum' (x,y,z,w) = x+y+z+w :: Nat--tNatQuintupleOrd :: Int -> Bool-tNatQuintupleOrd n = n `tStrictlyOrderedBy`  comparing sum' `thn` compare-  where sum' (x,y,z,w,v) = x+y+z+w+v :: Nat--tNatListOrd :: Int -> Bool-tNatListOrd n = n `tStrictlyOrderedBy`  comparing sum' `thn` compare-  where sum' = sum . map (+1) :: [Nat] -> Nat--tListsOfStrictlyOrderedBy :: Int-                           -> (a -> a -> Ordering)-                           -> [[a]]-                           -> Bool-tListsOfStrictlyOrderedBy n cmp = strictlyOrderedBy cmp . take n . concat-infixr 9 `tListsOfStrictlyOrderedBy`--tListsOfNatOrd :: Int -> Bool-tListsOfNatOrd n = tListsOfStrictlyOrderedBy n (comparing sum' `thn` compare) tiers-  where sum' = sum . map (+1) :: [Nat] -> Nat--tPairEqParams :: Int -> Bool-tPairEqParams n = ces == srs-  where-    ces = map (map read) $ counterExamples n fail-    srs = map pairToList $ take n list-    pairToList (x,y) = [x,y :: Nat]-    fail :: Nat -> Nat -> Bool-    fail x y = False--tTripleEqParams :: Int -> Bool-tTripleEqParams n = ces == srs-  where-    ces = map (map read) $ counterExamples n fail-    srs = map tripleToList $ take n list-    tripleToList (x,y,z) = [x,y,z :: Nat]-    fail :: Nat -> Nat -> Nat -> Bool-    fail x y z = False--tProductsIsFilterByLength :: Eq a => [[a]] -> Int -> Int -> Bool-tProductsIsFilterByLength values m n = concat (take m byProduct) `isPrefixOf` concat byFilter-  where byProduct = products $ replicate n values-        byFilter  = ((==n) . length) `filterT` listsOf values
− tests/diff/eg/higher-order.out
@@ -1,50 +0,0 @@-*** Failed! Falsifiable (after 75 tests):-\x y -> case (x,y) of-          (0,0) -> 1-          (0,1) -> 1-          (1,0) -> 0-          (0,-1) -> 1-          (1,1) -> 0-          (-1,0) -> 0-          (0,2) -> 1-          (1,-1) -> 0-          ...-0-[0,0]--*** Failed! Falsifiable (after 130 tests):-\x y -> case (x,y) of-          (0,0) -> 1-          (0,1) -> 1-          (1,0) -> 0-          (0,-1) -> 1-          (1,1) -> 0-          (-1,0) -> 0-          (0,2) -> 1-          (1,-1) -> 0-          ...-[0,0,0]--*** Failed! Falsifiable (after 36 tests):-\x -> case x of-        0 -> 0-        1 -> 0-        -1 -> 0-        2 -> 0-        -2 -> 0-        3 -> 0-        -3 -> 0-        4 -> 0-        ...-\x -> case x of-        0 -> True-        1 -> False-        -1 -> False-        2 -> False-        -2 -> False-        3 -> False-        -3 -> False-        4 -> False-        ...-[1]-
− tests/diff/eg/overflow.out
@@ -1,2 +0,0 @@-*** Failed! Falsifiable (after 8792 tests):-(T [] [] [] [-1] [-32768])
− tests/diff/eg/test-bool.out
@@ -1,29 +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-          (False,False) -> False-          (False,True) -> False-          (True,False) -> True-          (True,True) -> False-False-True---All boolean operators are associative (wrong).-*** Failed! Falsifiable (after 22 tests):-\x y -> case (x,y) of-          (False,False) -> False-          (False,True) -> False-          (True,False) -> True-          (True,True) -> False-True-False-True-
− tests/diff/eg/test-list.out
@@ -1,6 +0,0 @@-*** Failed! Falsifiable (after 4 tests):-[] [0,0]-*** Failed! Falsifiable (after 1 tests):-[]-*** Failed! Exception '...' (after 1 tests):-[]
− tests/diff/eg/test-sort.out
@@ -1,4 +0,0 @@-+++ OK, passed 200 tests.-*** Failed! Falsifiable (after 4 tests):-0 [0,0]-+++ OK, passed 200 tests.
− tests/diff/tiers-BagBool.out
@@ -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]-    ]-  , ...-  ]
− tests/diff/tiers-BagNat.out
@@ -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]-    ]-  , ...-  ]
− tests/diff/tiers-BagNat2.out
@@ -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]-    ]-  , ...-  ]
− tests/diff/tiers-BagNat3.out
@@ -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]-    ]-  , ...-  ]
− tests/diff/tiers-BagU.out
@@ -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 [(),(),(),(),(),(),(),(),(),(),()]]-  , ...-  ]
− tests/diff/tiers-Bool.out
@@ -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-    ]-  ]
− tests/diff/tiers-Bools.out
@@ -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]-    ]-  , ...-  ]
− tests/diff/tiers-Char.out
@@ -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']-  , ['!']-  , ...-  ]
− tests/diff/tiers-Int,Int,Int.out
@@ -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)-    ]-  , ...-  ]
− tests/diff/tiers-Int,Int.out
@@ -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)-    ]-  , ...-  ]
− tests/diff/tiers-Int.out
@@ -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]-  , ...-  ]
− tests/diff/tiers-Integer.out
@@ -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]-  , ...-  ]
− tests/diff/tiers-Ints.out
@@ -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]-    ]-  , ...-  ]
− tests/diff/tiers-MapBoolBool.out
@@ -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)]-    ]-  ]
− tests/diff/tiers-MapNat2Nat2.out
@@ -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)]]-  ]
− tests/diff/tiers-MapNat3Nat3.out
@@ -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)]-    ]-  , ...-  ]
− tests/diff/tiers-MapNatNat.out
@@ -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)]-    ]-  , ...-  ]
− tests/diff/tiers-MapUU.out
@@ -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 [((),())]]-  ]
− tests/diff/tiers-Nat,Nat,Nat.out
@@ -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)-    ]-  , ...-  ]
− tests/diff/tiers-Nat,Nat.out
@@ -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)-    ]-  , ...-  ]
− tests/diff/tiers-Nat.out
@@ -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]-  , ...-  ]
− tests/diff/tiers-Nats.out
@@ -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]-    ]-  , ...-  ]
− tests/diff/tiers-NoDupBool.out
@@ -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]-    ]-  ]
− tests/diff/tiers-NoDupNat.out
@@ -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]-    ]-  , ...-  ]
− tests/diff/tiers-NoDupNat2.out
@@ -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]-    ]-  ]
− tests/diff/tiers-NoDupNat3.out
@@ -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]-    ]-  ]
− tests/diff/tiers-NoDupU.out
@@ -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 [()]]-  ]
− tests/diff/tiers-SetBool.out
@@ -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]]-  ]
− tests/diff/tiers-SetNat.out
@@ -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]-    ]-  , ...-  ]
− tests/diff/tiers-SetNat2.out
@@ -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]]-  ]
− tests/diff/tiers-SetNat3.out
@@ -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]]-  ]
− tests/diff/tiers-SetU.out
@@ -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 [()]]-  ]
− tests/diff/tiers-String.out
@@ -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"-    ]-  , ...-  ]
− tests/diff/tiers-U,Us.out
@@ -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 :: [[((),())]]  =-  [ [[]]-  , [[((),())]]-  , [[((),()),((),())]]-  , [[((),()),((),()),((),())]]-  , [[((),()),((),()),((),()),((),())]]-  , [[((),()),((),()),((),()),((),()),((),())]]-  , [[((),()),((),()),((),()),((),()),((),()),((),())]]-  , [[((),()),((),()),((),()),((),()),((),()),((),()),((),())]]-  , [[((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),())]]-  , [[((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),())]]-  , [[((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),())]]-  , [[((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),())]]-  , ...-  ]
− tests/diff/tiers-Us,Us.out
@@ -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 :: [([()],[()])]  =-  [ [([],[])]-  , [ ([],[()])-    , ([()],[])-    ]-  , [ ([],[(),()])-    , ([()],[()])-    , ([(),()],[])-    ]-  , [ ([],[(),(),()])-    , ([()],[(),()])-    , ([(),()],[()])-    , ([(),(),()],[])-    ]-  , [ ([],[(),(),(),()])-    , ([()],[(),(),()])-    , ([(),()],[(),()])-    , ([(),(),()],[()])-    , ([(),(),(),()],[])-    ]-  , [ ([],[(),(),(),(),()])-    , ([()],[(),(),(),()])-    , ([(),()],[(),(),()])-    , ([(),(),()],[(),()])-    , ([(),(),(),()],[()])-    , ([(),(),(),(),()],[])-    ]-  , [ ([],[(),(),(),(),(),()])-    , ([()],[(),(),(),(),()])-    , ([(),()],[(),(),(),()])-    , ([(),(),()],[(),(),()])-    , ([(),(),(),()],[(),()])-    , ([(),(),(),(),()],[()])-    , ([(),(),(),(),(),()],[])-    ]-  , [ ([],[(),(),(),(),(),(),()])-    , ([()],[(),(),(),(),(),()])-    , ([(),()],[(),(),(),(),()])-    , ([(),(),()],[(),(),(),()])-    , ([(),(),(),()],[(),(),()])-    , ([(),(),(),(),()],[(),()])-    , ([(),(),(),(),(),()],[()])-    , ([(),(),(),(),(),(),()],[])-    ]-  , [ ([],[(),(),(),(),(),(),(),()])-    , ([()],[(),(),(),(),(),(),()])-    , ([(),()],[(),(),(),(),(),()])-    , ([(),(),()],[(),(),(),(),()])-    , ([(),(),(),()],[(),(),(),()])-    , ([(),(),(),(),()],[(),(),()])-    , ([(),(),(),(),(),()],[(),()])-    , ([(),(),(),(),(),(),()],[()])-    , ([(),(),(),(),(),(),(),()],[])-    ]-  , [ ([],[(),(),(),(),(),(),(),(),()])-    , ([()],[(),(),(),(),(),(),(),()])-    , ([(),()],[(),(),(),(),(),(),()])-    , ([(),(),()],[(),(),(),(),(),()])-    , ([(),(),(),()],[(),(),(),(),()])-    , ([(),(),(),(),()],[(),(),(),()])-    , ([(),(),(),(),(),()],[(),(),()])-    , ([(),(),(),(),(),(),()],[(),()])-    , ([(),(),(),(),(),(),(),()],[()])-    , ([(),(),(),(),(),(),(),(),()],[])-    ]-  , [ ([],[(),(),(),(),(),(),(),(),(),()])-    , ([()],[(),(),(),(),(),(),(),(),()])-    , ([(),()],[(),(),(),(),(),(),(),()])-    , ([(),(),()],[(),(),(),(),(),(),()])-    , ([(),(),(),()],[(),(),(),(),(),()])-    , ([(),(),(),(),()],[(),(),(),(),()])-    , ([(),(),(),(),(),()],[(),(),(),()])-    , ([(),(),(),(),(),(),()],[(),(),()])-    , ([(),(),(),(),(),(),(),()],[(),()])-    , ([(),(),(),(),(),(),(),(),()],[()])-    , ([(),(),(),(),(),(),(),(),(),()],[])-    ]-  , [ ([],[(),(),(),(),(),(),(),(),(),(),()])-    , ([()],[(),(),(),(),(),(),(),(),(),()])-    , ([(),()],[(),(),(),(),(),(),(),(),()])-    , ([(),(),()],[(),(),(),(),(),(),(),()])-    , ([(),(),(),()],[(),(),(),(),(),(),()])-    , ([(),(),(),(),()],[(),(),(),(),(),()])-    , ([(),(),(),(),(),()],[(),(),(),(),()])-    , ([(),(),(),(),(),(),()],[(),(),(),()])-    , ([(),(),(),(),(),(),(),()],[(),(),()])-    , ([(),(),(),(),(),(),(),(),()],[(),()])-    , ([(),(),(),(),(),(),(),(),(),()],[()])-    , ([(),(),(),(),(),(),(),(),(),(),()],[])-    ]-  , ...-  ]
− tests/diff/tiers-Us.out
@@ -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 :: [[()]]  =-  [ [[]]-  , [[()]]-  , [[(),()]]-  , [[(),(),()]]-  , [[(),(),(),()]]-  , [[(),(),(),(),()]]-  , [[(),(),(),(),(),()]]-  , [[(),(),(),(),(),(),()]]-  , [[(),(),(),(),(),(),(),()]]-  , [[(),(),(),(),(),(),(),(),()]]-  , [[(),(),(),(),(),(),(),(),(),()]]-  , [[(),(),(),(),(),(),(),(),(),(),()]]-  , ...-  ]
− tests/diff/tiers-XInt4.out
@@ -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]-  , ...-  ]
− tests/diff/tiers-XNat7.out
@@ -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]-  ]
− tests/diff/tiers-XWord4.out
@@ -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]-  , ...-  ]
− tests/diff/tiers-XsInt4.out
@@ -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]-    ]-  , ...-  ]
− tests/diff/tiers-XsNat7.out
@@ -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]-    ]-  , ...-  ]
− tests/diff/tiers-XsWord4.out
@@ -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]-    ]-  , ...-  ]
− tests/diff/tiers-colistable-Bool-Bool.out
@@ -1,23 +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]  =-  [ [ \x -> case x of-              False -> False-              True -> False-    , \x -> case x of-              False -> True-              True -> False-    , \x -> case x of-              False -> False-              True -> True-    , \x -> case x of-              False -> True-              True -> True-    ]-  ]
− tests/diff/tiers-colistable-Bool-MBool.out
@@ -1,40 +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]  =-  [ [ \x -> case x of-              False -> Nothing-              True -> Nothing-    ]-  , [ \x -> case x of-              False -> Just False-              True -> Nothing-    , \x -> case x of-              False -> Just True-              True -> 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 -> Just False-    , \x -> case x of-              False -> Just True-              True -> Just False-    , \x -> case x of-              False -> Just False-              True -> Just True-    , \x -> case x of-              False -> Just True-              True -> Just True-    ]-  ]
− tests/diff/tiers-colistable-Bool-U.out
@@ -1,14 +0,0 @@-map length (tiers :: [[ Bool->() ]])  =  [1]--length (list :: [ Bool->() ])  =  1--allUnique (list :: [ Bool->() ])  =  True--ratioRepetitions (list :: [ Bool->() ])  =  0 % 1--tiers :: [Bool->()]  =-  [ [ \x -> case x of-              False -> ()-              True -> ()-    ]-  ]
− tests/diff/tiers-colistable-Bools-Bools.out
@@ -1,745 +0,0 @@-map length (tiers :: [[ [Bool]->[Bool] ]])  =  [1,3,12,57,...]--length (list :: [ [Bool]->[Bool] ])  =  Infinity--allUnique (list :: [ [Bool]->[Bool] ])  =  False--ratioRepetitions (list :: [ [Bool]->[Bool] ])  =  16 % 73--tiers :: [[Bool]->[Bool]]  =-  [ [ \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [False]-              [False] -> [False]-              [True] -> [False]-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> [True]-              [True] -> [True]-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [False,False]-              [False] -> [False,False]-              [True] -> [False,False]-              [False,False] -> [False,False]-              [False,True] -> [False,False]-              [True,False] -> [False,False]-              [True,True] -> [False,False]-              [False,False,False] -> [False,False]-              ...-    , \x -> case x of-              [] -> [False,True]-              [False] -> [False,True]-              [True] -> [False,True]-              [False,False] -> [False,True]-              [False,True] -> [False,True]-              [True,False] -> [False,True]-              [True,True] -> [False,True]-              [False,False,False] -> [False,True]-              ...-    , \x -> case x of-              [] -> [True,False]-              [False] -> [True,False]-              [True] -> [True,False]-              [False,False] -> [True,False]-              [False,True] -> [True,False]-              [True,False] -> [True,False]-              [True,True] -> [True,False]-              [False,False,False] -> [True,False]-              ...-    , \x -> case x of-              [] -> [True,True]-              [False] -> [True,True]-              [True] -> [True,True]-              [False,False] -> [True,True]-              [False,True] -> [True,True]-              [True,False] -> [True,True]-              [True,True] -> [True,True]-              [False,False,False] -> [True,True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [False]-              [True] -> []-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [True]-              [True] -> []-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [False]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [True]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [False]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [False,False,False]-              [False] -> [False,False,False]-              [True] -> [False,False,False]-              [False,False] -> [False,False,False]-              [False,True] -> [False,False,False]-              [True,False] -> [False,False,False]-              [True,True] -> [False,False,False]-              [False,False,False] -> [False,False,False]-              ...-    , \x -> case x of-              [] -> [False,False,True]-              [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,False,True]-              [False,False,False] -> [False,False,True]-              ...-    , \x -> case x of-              [] -> [False,True,False]-              [False] -> [False,True,False]-              [True] -> [False,True,False]-              [False,False] -> [False,True,False]-              [False,True] -> [False,True,False]-              [True,False] -> [False,True,False]-              [True,True] -> [False,True,False]-              [False,False,False] -> [False,True,False]-              ...-    , \x -> case x of-              [] -> [False,True,True]-              [False] -> [False,True,True]-              [True] -> [False,True,True]-              [False,False] -> [False,True,True]-              [False,True] -> [False,True,True]-              [True,False] -> [False,True,True]-              [True,True] -> [False,True,True]-              [False,False,False] -> [False,True,True]-              ...-    , \x -> case x of-              [] -> [True,False,False]-              [False] -> [True,False,False]-              [True] -> [True,False,False]-              [False,False] -> [True,False,False]-              [False,True] -> [True,False,False]-              [True,False] -> [True,False,False]-              [True,True] -> [True,False,False]-              [False,False,False] -> [True,False,False]-              ...-    , \x -> case x of-              [] -> [True,False,True]-              [False] -> [True,False,True]-              [True] -> [True,False,True]-              [False,False] -> [True,False,True]-              [False,True] -> [True,False,True]-              [True,False] -> [True,False,True]-              [True,True] -> [True,False,True]-              [False,False,False] -> [True,False,True]-              ...-    , \x -> case x of-              [] -> [True,True,False]-              [False] -> [True,True,False]-              [True] -> [True,True,False]-              [False,False] -> [True,True,False]-              [False,True] -> [True,True,False]-              [True,False] -> [True,True,False]-              [True,True] -> [True,True,False]-              [False,False,False] -> [True,True,False]-              ...-    , \x -> case x of-              [] -> [True,True,True]-              [False] -> [True,True,True]-              [True] -> [True,True,True]-              [False,False] -> [True,True,True]-              [False,True] -> [True,True,True]-              [True,False] -> [True,True,True]-              [True,True] -> [True,True,True]-              [False,False,False] -> [True,True,True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [False,False]-              [True] -> []-              [False,False] -> [False,False]-              [False,True] -> [False,False]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [False,False]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [False,True]-              [True] -> []-              [False,False] -> [False,True]-              [False,True] -> [False,True]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [False,True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [True,False]-              [True] -> []-              [False,False] -> [True,False]-              [False,True] -> [True,False]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [True,False]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [True,True]-              [True] -> []-              [False,False] -> [True,True]-              [False,True] -> [True,True]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [True,True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> [False]-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> [True]-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> [False]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> [True]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> [False]-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> [True]-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> [False]-              [True] -> [False]-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [True]-              [True] -> [False]-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [False]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> [False]-              [True] -> [True]-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [True]-              [True] -> [True]-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [True]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> [False]-              [True] -> []-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [True]-              [True] -> []-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [False,False]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [False,False]-              [True,True] -> [False,False]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [False,True]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [False,True]-              [True,True] -> [False,True]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [True,False]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [True,False]-              [True,True] -> [True,False]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [True,True]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [True,True]-              [True,True] -> [True,True]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [False]-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [True]-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> [False]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> [True]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [False]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [True]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [False]-              [False] -> [False]-              [True] -> []-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> [False]-              [False] -> [True]-              [True] -> []-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> [False]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [False]-              [False] -> []-              [True] -> [False]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [False]-              [False] -> []-              [True] -> [True]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [False]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> [False]-              [True] -> []-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> [True]-              [True] -> []-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> []-              [True] -> [False]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> []-              [True] -> [True]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [False,False]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [False,True]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [True,False]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [True,True]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    ]-  , ...-  ]
− tests/diff/tiers-colistable-Int-Int-Int.out
@@ -1,625 +0,0 @@-map length (tiers :: [[ Int->Int->Int ]])  =  [1,3,11,46,...]--length (list :: [ Int->Int->Int ])  =  Infinity--allUnique (list :: [ Int->Int->Int ])  =  False--ratioRepetitions (list :: [ Int->Int->Int ])  =  37 % 61--tiers :: [Int->Int->Int]  =-  [ [ \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> -1-                (1,0) -> -1-                (0,-1) -> -1-                (1,1) -> -1-                (-1,0) -> -1-                (0,2) -> -1-                (1,-1) -> -1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    ]-  , [ \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 2-                (1,0) -> 2-                (0,-1) -> 2-                (1,1) -> 2-                (-1,0) -> 2-                (0,2) -> 2-                (1,-1) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> -1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> -1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> -1-                (1,0) -> -1-                (0,-1) -> 0-                (1,1) -> -1-                (-1,0) -> -1-                (0,2) -> -1-                (1,-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) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> -1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> -1-                (1,0) -> -1-                (0,-1) -> -1-                (1,1) -> -1-                (-1,0) -> 0-                (0,2) -> -1-                (1,-1) -> -1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    ]-  , ...-  ]
− tests/diff/tiers-colistable-Int-Int.out
@@ -1,2637 +0,0 @@-map length (tiers :: [[ Int->Int ]])  =  [1,2,5,15,51,188,...]--length (list :: [ Int->Int ])  =  Infinity--allUnique (list :: [ Int->Int ])  =  False--ratioRepetitions (list :: [ Int->Int ])  =  96 % 131--tiers :: [Int->Int]  =-  [ [ \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    ]-  , [ \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    ]-  , [ \x -> case x of-              0 -> -1-              1 -> -1-              -1 -> -1-              2 -> -1-              -2 -> -1-              3 -> -1-              -3 -> -1-              4 -> -1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    ]-  , [ \x -> case x of-              0 -> 2-              1 -> 2-              -1 -> 2-              2 -> 2-              -2 -> 2-              3 -> 2-              -3 -> 2-              4 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -1-              2 -> 0-              -2 -> -1-              3 -> 0-              -3 -> -1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> -1-              1 -> -1-              -1 -> 0-              2 -> -1-              -2 -> 0-              3 -> -1-              -3 -> 0-              4 -> -1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    ]-  , [ \x -> case x of-              0 -> -2-              1 -> -2-              -1 -> -2-              2 -> -2-              -2 -> -2-              3 -> -2-              -3 -> -2-              4 -> -2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 2-              2 -> 0-              -2 -> 2-              3 -> 0-              -3 -> 2-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> -1-              3 -> 0-              -3 -> -1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> -1-              2 -> 1-              -2 -> -1-              3 -> 1-              -3 -> -1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -1-              2 -> 0-              -2 -> -1-              3 -> 0-              -3 -> -1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> -1-              1 -> -1-              -1 -> 1-              2 -> -1-              -2 -> 1-              3 -> -1-              -3 -> 1-              4 -> -1-              ...-    , \x -> case x of-              0 -> -1-              1 -> -1-              -1 -> 0-              2 -> -1-              -2 -> 0-              3 -> -1-              -3 -> 0-              4 -> -1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 2-              -1 -> 0-              2 -> 2-              -2 -> 0-              3 -> 2-              -3 -> 0-              4 -> 2-              ...-    , \x -> case x of-              0 -> -1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> -1-              -1 -> 0-              2 -> -1-              -2 -> 0-              3 -> -1-              -3 -> 0-              4 -> -1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    ]-  , [ \x -> case x of-              0 -> 3-              1 -> 3-              -1 -> 3-              2 -> 3-              -2 -> 3-              3 -> 3-              -3 -> 3-              4 -> 3-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -2-              2 -> 0-              -2 -> -2-              3 -> 0-              -3 -> -2-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 2-              3 -> 0-              -3 -> 2-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> -1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> -1-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> -1-              3 -> 0-              -3 -> -1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> -1-              3 -> 0-              -3 -> -1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 2-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 2-              2 -> 1-              -2 -> 2-              3 -> 1-              -3 -> 2-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> -1-              3 -> 1-              -3 -> -1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> -1-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 2-              2 -> 0-              -2 -> 2-              3 -> 0-              -3 -> 2-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> -1-              3 -> 0-              -3 -> -1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> -1-              1 -> -1-              -1 -> -1-              2 -> -1-              -2 -> -1-              3 -> -1-              -3 -> -1-              4 -> -1-              ...-    , \x -> case x of-              0 -> -1-              1 -> -1-              -1 -> 0-              2 -> -1-              -2 -> 1-              3 -> -1-              -3 -> 1-              4 -> -1-              ...-    , \x -> case x of-              0 -> -1-              1 -> -1-              -1 -> 0-              2 -> -1-              -2 -> 0-              3 -> -1-              -3 -> 0-              4 -> -1-              ...-    , \x -> case x of-              0 -> -1-              1 -> -1-              -1 -> 1-              2 -> -1-              -2 -> 0-              3 -> -1-              -3 -> 0-              4 -> -1-              ...-    , \x -> case x of-              0 -> -1-              1 -> -1-              -1 -> 0-              2 -> -1-              -2 -> 0-              3 -> -1-              -3 -> 0-              4 -> -1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> -1-              2 -> 0-              -2 -> -1-              3 -> 0-              -3 -> -1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -1-              2 -> 0-              -2 -> -1-              3 -> 0-              -3 -> -1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> -1-              2 -> 1-              -2 -> -1-              3 -> 1-              -3 -> -1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -1-              2 -> 0-              -2 -> -1-              3 -> 0-              -3 -> -1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 2-              -1 -> 1-              2 -> 2-              -2 -> 1-              3 -> 2-              -3 -> 1-              4 -> 2-              ...-    , \x -> case x of-              0 -> 2-              1 -> 2-              -1 -> 0-              2 -> 2-              -2 -> 0-              3 -> 2-              -3 -> 0-              4 -> 2-              ...-    , \x -> case x of-              0 -> -1-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> -1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> -1-              -1 -> 1-              2 -> -1-              -2 -> 1-              3 -> -1-              -3 -> 1-              4 -> -1-              ...-    , \x -> case x of-              0 -> 0-              1 -> -1-              -1 -> 0-              2 -> -1-              -2 -> 0-              3 -> -1-              -3 -> 0-              4 -> -1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> -2-              1 -> -2-              -1 -> 0-              2 -> -2-              -2 -> 0-              3 -> -2-              -3 -> 0-              4 -> -2-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> -1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> -1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> -1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> -1-              -1 -> 0-              2 -> -1-              -2 -> 0-              3 -> -1-              -3 -> 0-              4 -> -1-              ...-    , \x -> case x of-              0 -> 0-              1 -> -1-              -1 -> 0-              2 -> -1-              -2 -> 0-              3 -> -1-              -3 -> 0-              4 -> -1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              -1 -> 0-              2 -> 2-              -2 -> 0-              3 -> 2-              -3 -> 0-              4 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> -1-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> -1-              -2 -> 0-              3 -> -1-              -3 -> 0-              4 -> -1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    ]-  , ...-  ]
− tests/diff/tiers-colistable-Ints-Ints.out
@@ -1,315 +0,0 @@-map length (tiers :: [[ [Int]->[Int] ]])  =  [1,2,6,21,...]--length (list :: [ [Int]->[Int] ])  =  Infinity--allUnique (list :: [ [Int]->[Int] ])  =  False--ratioRepetitions (list :: [ [Int]->[Int] ])  =  2 % 5--tiers :: [[Int]->[Int]]  =-  [ [ \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [0]-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [-1] -> [0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [0,0]-              [0] -> [0,0]-              [0,0] -> [0,0]-              [1] -> [0,0]-              [0,0,0] -> [0,0]-              [0,1] -> [0,0]-              [1,0] -> [0,0]-              [-1] -> [0,0]-              ...-    , \x -> case x of-              [] -> [1]-              [0] -> [1]-              [0,0] -> [1]-              [1] -> [1]-              [0,0,0] -> [1]-              [0,1] -> [1]-              [1,0] -> [1]-              [-1] -> [1]-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [-1] -> [0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> [0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [0,0,0]-              [0] -> [0,0,0]-              [0,0] -> [0,0,0]-              [1] -> [0,0,0]-              [0,0,0] -> [0,0,0]-              [0,1] -> [0,0,0]-              [1,0] -> [0,0,0]-              [-1] -> [0,0,0]-              ...-    , \x -> case x of-              [] -> [0,1]-              [0] -> [0,1]-              [0,0] -> [0,1]-              [1] -> [0,1]-              [0,0,0] -> [0,1]-              [0,1] -> [0,1]-              [1,0] -> [0,1]-              [-1] -> [0,1]-              ...-    , \x -> case x of-              [] -> [1,0]-              [0] -> [1,0]-              [0,0] -> [1,0]-              [1] -> [1,0]-              [0,0,0] -> [1,0]-              [0,1] -> [1,0]-              [1,0] -> [1,0]-              [-1] -> [1,0]-              ...-    , \x -> case x of-              [] -> [-1]-              [0] -> [-1]-              [0,0] -> [-1]-              [1] -> [-1]-              [0,0,0] -> [-1]-              [0,1] -> [-1]-              [1,0] -> [-1]-              [-1] -> [-1]-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0,0]-              [0,0] -> [0,0]-              [1] -> [0,0]-              [0,0,0] -> [0,0]-              [0,1] -> [0,0]-              [1,0] -> [0,0]-              [-1] -> [0,0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> [1]-              [0,0] -> [1]-              [1] -> [1]-              [0,0,0] -> [1]-              [0,1] -> [1]-              [1,0] -> [1]-              [-1] -> [1]-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> [0]-              [1] -> []-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [-1] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0]-              [0,0] -> []-              [1] -> [0]-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> [0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> [0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [-1] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> [0]-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [-1] -> [0]-              ...-    , \x -> case x of-              [] -> [0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> [0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> [0,0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> [1]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    ]-  , ...-  ]
− tests/diff/tiers-colistable-MBool-Bool.out
@@ -1,43 +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]  =-  [ [ \x -> case x of-              Nothing -> False-              Just False -> False-              Just True -> False-    , \x -> case x of-              Nothing -> False-              Just False -> True-              Just True -> False-    , \x -> case x of-              Nothing -> False-              Just False -> False-              Just True -> True-    , \x -> case x of-              Nothing -> False-              Just False -> True-              Just True -> True-    , \x -> case x of-              Nothing -> True-              Just False -> False-              Just True -> False-    , \x -> case x of-              Nothing -> True-              Just False -> True-              Just True -> False-    , \x -> case x of-              Nothing -> True-              Just False -> False-              Just True -> True-    , \x -> case x of-              Nothing -> True-              Just False -> True-              Just True -> True-    ]-  ]
− tests/diff/tiers-colistable-MBool-MBool.out
@@ -1,122 +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]  =-  [ [ \x -> case x of-              Nothing -> Nothing-              Just False -> Nothing-              Just True -> Nothing-    ]-  , [ \x -> case x of-              Nothing -> Nothing-              Just False -> Just False-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Nothing-              Just False -> Just True-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Nothing-              Just False -> Nothing-              Just True -> Just False-    , \x -> case x of-              Nothing -> Nothing-              Just False -> Nothing-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just False-              Just False -> Nothing-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Just True-              Just False -> Nothing-              Just True -> Nothing-    ]-  , [ \x -> case x of-              Nothing -> Nothing-              Just False -> Just False-              Just True -> Just False-    , \x -> case x of-              Nothing -> Nothing-              Just False -> Just True-              Just True -> 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 True-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just False-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just True-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Just False-              Just False -> Nothing-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just False-              Just False -> Nothing-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just False-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Just True-              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-              Nothing -> Just True-              Just False -> Nothing-              Just True -> Just True-    ]-  , [ \x -> case x of-              Nothing -> Just False-              Just False -> Just False-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just True-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just False-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just True-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just False-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just True-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just False-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just True-              Just True -> Just True-    ]-  ]
− tests/diff/tiers-colistable-Nat,Nat-Nat.out
@@ -1,625 +0,0 @@-map length (tiers :: [[ (Nat,Nat)->Nat ]])  =  [1,3,11,46,...]--length (list :: [ (Nat,Nat)->Nat ])  =  Infinity--allUnique (list :: [ (Nat,Nat)->Nat ])  =  False--ratioRepetitions (list :: [ (Nat,Nat)->Nat ])  =  37 % 61--tiers :: [(Nat,Nat)->Nat]  =-  [ [ \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    ]-  , [ \x -> case x of-              (0,0) -> 1-              (0,1) -> 1-              (1,0) -> 1-              (0,2) -> 1-              (1,1) -> 1-              (2,0) -> 1-              (0,3) -> 1-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    ]-  , [ \x -> case x of-              (0,0) -> 2-              (0,1) -> 2-              (1,0) -> 2-              (0,2) -> 2-              (1,1) -> 2-              (2,0) -> 2-              (0,3) -> 2-              (1,2) -> 2-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 1-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 1-              (2,0) -> 0-              (0,3) -> 1-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 0-              (1,0) -> 1-              (0,2) -> 1-              (1,1) -> 0-              (2,0) -> 1-              (0,3) -> 0-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 1-              (0,2) -> 0-              (1,1) -> 1-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 1-              (1,0) -> 0-              (0,2) -> 1-              (1,1) -> 0-              (2,0) -> 1-              (0,3) -> 1-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    ]-  , [ \x -> case x of-              (0,0) -> 3-              (0,1) -> 3-              (1,0) -> 3-              (0,2) -> 3-              (1,1) -> 3-              (2,0) -> 3-              (0,3) -> 3-              (1,2) -> 3-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 2-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 2-              (2,0) -> 0-              (0,3) -> 2-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 1-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 1-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 1-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 1-              (1,0) -> 1-              (0,2) -> 1-              (1,1) -> 1-              (2,0) -> 1-              (0,3) -> 1-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 0-              (1,0) -> 1-              (0,2) -> 1-              (1,1) -> 0-              (2,0) -> 1-              (0,3) -> 0-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 1-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 1-              (2,0) -> 0-              (0,3) -> 1-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 2-              (0,1) -> 0-              (1,0) -> 2-              (0,2) -> 2-              (1,1) -> 0-              (2,0) -> 2-              (0,3) -> 0-              (1,2) -> 2-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 1-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 0-              (1,0) -> 1-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 1-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 2-              (0,2) -> 0-              (1,1) -> 2-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 2-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 1-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 1-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 1-              (0,2) -> 0-              (1,1) -> 1-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 1-              (1,0) -> 1-              (0,2) -> 1-              (1,1) -> 1-              (2,0) -> 1-              (0,3) -> 1-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 1-              (1,0) -> 0-              (0,2) -> 1-              (1,1) -> 0-              (2,0) -> 1-              (0,3) -> 1-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 1-              (1,0) -> 0-              (0,2) -> 1-              (1,1) -> 0-              (2,0) -> 1-              (0,3) -> 1-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 1-              (0,2) -> 0-              (1,1) -> 1-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 1-              (0,2) -> 0-              (1,1) -> 1-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 2-              (0,1) -> 2-              (1,0) -> 0-              (0,2) -> 2-              (1,1) -> 0-              (2,0) -> 2-              (0,3) -> 2-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 1-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 1-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 1-              (1,1) -> 0-              (2,0) -> 1-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 1-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 1-              (1,0) -> 0-              (0,2) -> 1-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 1-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    ]-  , ...-  ]
− tests/diff/tiers-colistable-Nat-Nat-Nat.out
@@ -1,625 +0,0 @@-map length (tiers :: [[ Nat->Nat->Nat ]])  =  [1,3,11,46,...]--length (list :: [ Nat->Nat->Nat ])  =  Infinity--allUnique (list :: [ Nat->Nat->Nat ])  =  False--ratioRepetitions (list :: [ Nat->Nat->Nat ])  =  37 % 61--tiers :: [Nat->Nat->Nat]  =-  [ [ \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    ]-  , [ \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 2-                (1,0) -> 2-                (0,2) -> 2-                (1,1) -> 2-                (2,0) -> 2-                (0,3) -> 2-                (1,2) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 0-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    ]-  , [ \x y -> case (x,y) of-                (0,0) -> 3-                (0,1) -> 3-                (1,0) -> 3-                (0,2) -> 3-                (1,1) -> 3-                (2,0) -> 3-                (0,3) -> 3-                (1,2) -> 3-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 2-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 2-                (2,0) -> 0-                (0,3) -> 2-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 0-                (1,0) -> 2-                (0,2) -> 2-                (1,1) -> 0-                (2,0) -> 2-                (0,3) -> 0-                (1,2) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 2-                (0,2) -> 0-                (1,1) -> 2-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 2-                (1,0) -> 0-                (0,2) -> 2-                (1,1) -> 0-                (2,0) -> 2-                (0,3) -> 2-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 0-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    ]-  , ...-  ]
− tests/diff/tiers-colistable-Nat-Nat.out
@@ -1,2637 +0,0 @@-map length (tiers :: [[ Nat->Nat ]])  =  [1,2,5,15,51,188,...]--length (list :: [ Nat->Nat ])  =  Infinity--allUnique (list :: [ Nat->Nat ])  =  False--ratioRepetitions (list :: [ Nat->Nat ])  =  82 % 131--tiers :: [Nat->Nat]  =-  [ [ \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    ]-  , [ \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    ]-  , [ \x -> case x of-              0 -> 2-              1 -> 2-              2 -> 2-              3 -> 2-              4 -> 2-              5 -> 2-              6 -> 2-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    ]-  , [ \x -> case x of-              0 -> 3-              1 -> 3-              2 -> 3-              3 -> 3-              4 -> 3-              5 -> 3-              6 -> 3-              7 -> 3-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-              3 -> 2-              4 -> 0-              5 -> 2-              6 -> 0-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 2-              3 -> 0-              4 -> 2-              5 -> 0-              6 -> 2-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    ]-  , [ \x -> case x of-              0 -> 4-              1 -> 4-              2 -> 4-              3 -> 4-              4 -> 4-              5 -> 4-              6 -> 4-              7 -> 4-              ...-    , \x -> case x of-              0 -> 0-              1 -> 3-              2 -> 0-              3 -> 3-              4 -> 0-              5 -> 3-              6 -> 0-              7 -> 3-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 2-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 2-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 2-              2 -> 1-              3 -> 2-              4 -> 1-              5 -> 2-              6 -> 1-              7 -> 2-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-              3 -> 2-              4 -> 0-              5 -> 2-              6 -> 0-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 1-              2 -> 2-              3 -> 1-              4 -> 2-              5 -> 1-              6 -> 2-              7 -> 1-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 2-              3 -> 0-              4 -> 2-              5 -> 0-              6 -> 2-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 1-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 3-              1 -> 0-              2 -> 3-              3 -> 0-              4 -> 3-              5 -> 0-              6 -> 3-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 2-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 2-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 2-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    ]-  , [ \x -> case x of-              0 -> 5-              1 -> 5-              2 -> 5-              3 -> 5-              4 -> 5-              5 -> 5-              6 -> 5-              7 -> 5-              ...-    , \x -> case x of-              0 -> 0-              1 -> 4-              2 -> 0-              3 -> 4-              4 -> 0-              5 -> 4-              6 -> 0-              7 -> 4-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 3-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 3-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 2-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 2-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 2-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 2-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 2-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 3-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 3-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 2-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 3-              2 -> 1-              3 -> 3-              4 -> 1-              5 -> 3-              6 -> 1-              7 -> 3-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 2-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 2-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 2-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 2-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 3-              2 -> 0-              3 -> 3-              4 -> 0-              5 -> 3-              6 -> 0-              7 -> 3-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 2-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 2-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 2-              2 -> 2-              3 -> 2-              4 -> 2-              5 -> 2-              6 -> 2-              7 -> 2-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 2-              3 -> 1-              4 -> 2-              5 -> 0-              6 -> 2-              7 -> 1-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 2-              3 -> 0-              4 -> 2-              5 -> 0-              6 -> 2-              7 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 1-              2 -> 2-              3 -> 0-              4 -> 2-              5 -> 1-              6 -> 2-              7 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 2-              3 -> 0-              4 -> 2-              5 -> 0-              6 -> 2-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 1-              3 -> 2-              4 -> 0-              5 -> 2-              6 -> 1-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-              3 -> 2-              4 -> 0-              5 -> 2-              6 -> 0-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 2-              2 -> 0-              3 -> 2-              4 -> 1-              5 -> 2-              6 -> 0-              7 -> 2-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-              3 -> 2-              4 -> 0-              5 -> 2-              6 -> 0-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 3-              1 -> 1-              2 -> 3-              3 -> 1-              4 -> 3-              5 -> 1-              6 -> 3-              7 -> 1-              ...-    , \x -> case x of-              0 -> 3-              1 -> 0-              2 -> 3-              3 -> 0-              4 -> 3-              5 -> 0-              6 -> 3-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 2-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 2-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 2-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 2-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 1-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 1-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 2-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 2-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 4-              1 -> 0-              2 -> 4-              3 -> 0-              4 -> 4-              5 -> 0-              6 -> 4-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 3-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 3-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 2-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 2-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 2-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 2-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 2-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 2-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 2-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 2-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 3-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 3-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 2-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    ]-  , ...-  ]
− tests/diff/tiers-colistable-Nat-U.out
@@ -1,667 +0,0 @@-map length (tiers :: [[ Nat->() ]])  =  [1,1,2,5,14,42,...]--length (list :: [ Nat->() ])  =  Infinity--allUnique (list :: [ Nat->() ])  =  False--ratioRepetitions (list :: [ Nat->() ])  =  64 % 65--tiers :: [Nat->()]  =-  [ [ \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    ]-  , [ \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    ]-  , [ \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    ]-  , [ \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    ]-  , [ \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    ]-  , [ \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    ]-  , ...-  ]
− tests/diff/tiers-colistable-Nat2-Nat2.out
@@ -1,25 +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]  =-  [ [ \x -> case x of-              0 -> 0-              1 -> 0-    ]-  , [ \x -> case x of-              0 -> 0-              1 -> 1-    , \x -> case x of-              0 -> 1-              1 -> 0-    ]-  , [ \x -> case x of-              0 -> 1-              1 -> 1-    ]-  ]
− tests/diff/tiers-colistable-Nat2-Nat3.out
@@ -1,42 +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]  =-  [ [ \x -> case x of-              0 -> 0-              1 -> 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-    , \x -> case x of-              0 -> 1-              1 -> 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-    ]-  , [ \x -> case x of-              0 -> 2-              1 -> 2-    ]-  ]
− tests/diff/tiers-colistable-Nat3-Nat2.out
@@ -1,46 +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]  =-  [ [ \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-    ]-  , [ \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-    ]-  , [ \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 1-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 0-    ]-  , [ \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 1-    ]-  ]
− tests/diff/tiers-colistable-Nat3-Nat3.out
@@ -1,125 +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]  =-  [ [ \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-    ]-  , [ \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-    ]-  , [ \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 2-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 1-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 0-    , \x -> case x of-              0 -> 2-              1 -> 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-    , \x -> case x of-              0 -> 1-              1 -> 1-              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-              1 -> 2-              2 -> 2-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 2-    , \x -> case x of-              0 -> 1-              1 -> 2-              2 -> 1-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 2-    , \x -> case x of-              0 -> 2-              1 -> 1-              2 -> 1-    , \x -> case x of-              0 -> 2-              1 -> 2-              2 -> 0-    ]-  , [ \x -> case x of-              0 -> 1-              1 -> 2-              2 -> 2-    , \x -> case x of-              0 -> 2-              1 -> 1-              2 -> 2-    , \x -> case x of-              0 -> 2-              1 -> 2-              2 -> 1-    ]-  , [ \x -> case x of-              0 -> 2-              1 -> 2-              2 -> 2-    ]-  ]
− tests/diff/tiers-colistable-Nats-Nats.out
@@ -1,315 +0,0 @@-map length (tiers :: [[ [Nat]->[Nat] ]])  =  [1,2,6,21,...]--length (list :: [ [Nat]->[Nat] ])  =  Infinity--allUnique (list :: [ [Nat]->[Nat] ])  =  False--ratioRepetitions (list :: [ [Nat]->[Nat] ])  =  2 % 5--tiers :: [[Nat]->[Nat]]  =-  [ [ \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [0]-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [2] -> [0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [0,0]-              [0] -> [0,0]-              [0,0] -> [0,0]-              [1] -> [0,0]-              [0,0,0] -> [0,0]-              [0,1] -> [0,0]-              [1,0] -> [0,0]-              [2] -> [0,0]-              ...-    , \x -> case x of-              [] -> [1]-              [0] -> [1]-              [0,0] -> [1]-              [1] -> [1]-              [0,0,0] -> [1]-              [0,1] -> [1]-              [1,0] -> [1]-              [2] -> [1]-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [2] -> [0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> [0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [0,0,0]-              [0] -> [0,0,0]-              [0,0] -> [0,0,0]-              [1] -> [0,0,0]-              [0,0,0] -> [0,0,0]-              [0,1] -> [0,0,0]-              [1,0] -> [0,0,0]-              [2] -> [0,0,0]-              ...-    , \x -> case x of-              [] -> [0,1]-              [0] -> [0,1]-              [0,0] -> [0,1]-              [1] -> [0,1]-              [0,0,0] -> [0,1]-              [0,1] -> [0,1]-              [1,0] -> [0,1]-              [2] -> [0,1]-              ...-    , \x -> case x of-              [] -> [1,0]-              [0] -> [1,0]-              [0,0] -> [1,0]-              [1] -> [1,0]-              [0,0,0] -> [1,0]-              [0,1] -> [1,0]-              [1,0] -> [1,0]-              [2] -> [1,0]-              ...-    , \x -> case x of-              [] -> [2]-              [0] -> [2]-              [0,0] -> [2]-              [1] -> [2]-              [0,0,0] -> [2]-              [0,1] -> [2]-              [1,0] -> [2]-              [2] -> [2]-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0,0]-              [0,0] -> [0,0]-              [1] -> [0,0]-              [0,0,0] -> [0,0]-              [0,1] -> [0,0]-              [1,0] -> [0,0]-              [2] -> [0,0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> [1]-              [0,0] -> [1]-              [1] -> [1]-              [0,0,0] -> [1]-              [0,1] -> [1]-              [1,0] -> [1]-              [2] -> [1]-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> [0]-              [1] -> []-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [2] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0]-              [0,0] -> []-              [1] -> [0]-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> [0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> [0]-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> [0]-              [2] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0]-              [0,0] -> [0]-              [1] -> []-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> []-              [2] -> [0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> [0]-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [2] -> [0]-              ...-    , \x -> case x of-              [] -> [0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> [0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> [0,0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> [1]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    ]-  , ...-  ]
− tests/diff/tiers-colistable-U-Bool.out
@@ -1,15 +0,0 @@-map length (tiers :: [[ ()->Bool ]])  =  [2]--length (list :: [ ()->Bool ])  =  2--allUnique (list :: [ ()->Bool ])  =  True--ratioRepetitions (list :: [ ()->Bool ])  =  0 % 1--tiers :: [()->Bool]  =-  [ [ \x -> case x of-              () -> False-    , \x -> case x of-              () -> True-    ]-  ]
− tests/diff/tiers-colistable-U-Nat.out
@@ -1,29 +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]  =-  [ [ \x -> case x of-              () -> 0-    ]-  , [ \x -> case x of-              () -> 1-    ]-  , [ \x -> case x of-              () -> 2-    ]-  , [ \x -> case x of-              () -> 3-    ]-  , [ \x -> case x of-              () -> 4-    ]-  , [ \x -> case x of-              () -> 5-    ]-  , ...-  ]
− tests/diff/tiers-colistable-U-U.out
@@ -1,13 +0,0 @@-map length (tiers :: [[ ()->() ]])  =  [1]--length (list :: [ ()->() ])  =  1--allUnique (list :: [ ()->() ])  =  True--ratioRepetitions (list :: [ ()->() ])  =  0 % 1--tiers :: [()->()]  =-  [ [ \x -> case x of-              () -> ()-    ]-  ]
− tests/diff/tiers-colistable-Us-Us.out
@@ -1,165 +0,0 @@-map length (tiers :: [[ [()]->[()] ]])  =  [1,2,4,8,...]--length (list :: [ [()]->[()] ])  =  Infinity--allUnique (list :: [ [()]->[()] ])  =  False--ratioRepetitions (list :: [ [()]->[()] ])  =  1 % 3--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-              [] -> [(),()]-              [()] -> []-              [(),()] -> []-              [(),(),()] -> []-              [(),(),(),()] -> []-              [(),(),(),(),()] -> []-              [(),(),(),(),(),()] -> []-              [(),(),(),(),(),(),()] -> []-              ...-    ]-  , ...-  ]
− tests/diff/tiers-funlistable-Bool-Bool.out
@@ -1,23 +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]  =-  [ [ \x -> case x of-              False -> False-              True -> False-    , \x -> case x of-              False -> True-              True -> False-    , \x -> case x of-              False -> False-              True -> True-    , \x -> case x of-              False -> True-              True -> True-    ]-  ]
− tests/diff/tiers-funlistable-Bool-MBool.out
@@ -1,40 +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]  =-  [ [ \x -> case x of-              False -> Nothing-              True -> Nothing-    ]-  , [ \x -> case x of-              False -> Just False-              True -> Nothing-    , \x -> case x of-              False -> Just True-              True -> 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 -> Just False-    , \x -> case x of-              False -> Just True-              True -> Just False-    , \x -> case x of-              False -> Just False-              True -> Just True-    , \x -> case x of-              False -> Just True-              True -> Just True-    ]-  ]
− tests/diff/tiers-funlistable-Bool-U.out
@@ -1,14 +0,0 @@-map length (tiers :: [[ Bool->() ]])  =  [1]--length (list :: [ Bool->() ])  =  1--allUnique (list :: [ Bool->() ])  =  True--ratioRepetitions (list :: [ Bool->() ])  =  0 % 1--tiers :: [Bool->()]  =-  [ [ \x -> case x of-              False -> ()-              True -> ()-    ]-  ]
− tests/diff/tiers-funlistable-Bools-Bools.out
@@ -1,165 +0,0 @@-map length (tiers :: [[ [Bool]->[Bool] ]])  =  [1,2,4,8,...]--length (list :: [ [Bool]->[Bool] ])  =  Infinity--allUnique (list :: [ [Bool]->[Bool] ])  =  True--ratioRepetitions (list :: [ [Bool]->[Bool] ])  =  0 % 1--tiers :: [[Bool]->[Bool]]  =-  [ [ \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [False]-              [False] -> [False]-              [True] -> [False]-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> [True]-              [True] -> [True]-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> [True]-              ...-    ]-  , [ \x -> case x of-              [] -> [False,False]-              [False] -> [False,False]-              [True] -> [False,False]-              [False,False] -> [False,False]-              [False,True] -> [False,False]-              [True,False] -> [False,False]-              [True,True] -> [False,False]-              [False,False,False] -> [False,False]-              ...-    , \x -> case x of-              [] -> [False,True]-              [False] -> [False,True]-              [True] -> [False,True]-              [False,False] -> [False,True]-              [False,True] -> [False,True]-              [True,False] -> [False,True]-              [True,True] -> [False,True]-              [False,False,False] -> [False,True]-              ...-    , \x -> case x of-              [] -> [True,False]-              [False] -> [True,False]-              [True] -> [True,False]-              [False,False] -> [True,False]-              [False,True] -> [True,False]-              [True,False] -> [True,False]-              [True,True] -> [True,False]-              [False,False,False] -> [True,False]-              ...-    , \x -> case x of-              [] -> [True,True]-              [False] -> [True,True]-              [True] -> [True,True]-              [False,False] -> [True,True]-              [False,True] -> [True,True]-              [True,False] -> [True,True]-              [True,True] -> [True,True]-              [False,False,False] -> [True,True]-              ...-    ]-  , [ \x -> case x of-              [] -> [False,False,False]-              [False] -> [False,False,False]-              [True] -> [False,False,False]-              [False,False] -> [False,False,False]-              [False,True] -> [False,False,False]-              [True,False] -> [False,False,False]-              [True,True] -> [False,False,False]-              [False,False,False] -> [False,False,False]-              ...-    , \x -> case x of-              [] -> [False,False,True]-              [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,False,True]-              [False,False,False] -> [False,False,True]-              ...-    , \x -> case x of-              [] -> [False,True,False]-              [False] -> [False,True,False]-              [True] -> [False,True,False]-              [False,False] -> [False,True,False]-              [False,True] -> [False,True,False]-              [True,False] -> [False,True,False]-              [True,True] -> [False,True,False]-              [False,False,False] -> [False,True,False]-              ...-    , \x -> case x of-              [] -> [False,True,True]-              [False] -> [False,True,True]-              [True] -> [False,True,True]-              [False,False] -> [False,True,True]-              [False,True] -> [False,True,True]-              [True,False] -> [False,True,True]-              [True,True] -> [False,True,True]-              [False,False,False] -> [False,True,True]-              ...-    , \x -> case x of-              [] -> [True,False,False]-              [False] -> [True,False,False]-              [True] -> [True,False,False]-              [False,False] -> [True,False,False]-              [False,True] -> [True,False,False]-              [True,False] -> [True,False,False]-              [True,True] -> [True,False,False]-              [False,False,False] -> [True,False,False]-              ...-    , \x -> case x of-              [] -> [True,False,True]-              [False] -> [True,False,True]-              [True] -> [True,False,True]-              [False,False] -> [True,False,True]-              [False,True] -> [True,False,True]-              [True,False] -> [True,False,True]-              [True,True] -> [True,False,True]-              [False,False,False] -> [True,False,True]-              ...-    , \x -> case x of-              [] -> [True,True,False]-              [False] -> [True,True,False]-              [True] -> [True,True,False]-              [False,False] -> [True,True,False]-              [False,True] -> [True,True,False]-              [True,False] -> [True,True,False]-              [True,True] -> [True,True,False]-              [False,False,False] -> [True,True,False]-              ...-    , \x -> case x of-              [] -> [True,True,True]-              [False] -> [True,True,True]-              [True] -> [True,True,True]-              [False,False] -> [True,True,True]-              [False,True] -> [True,True,True]-              [True,False] -> [True,True,True]-              [True,True] -> [True,True,True]-              [False,False,False] -> [True,True,True]-              ...-    ]-  , ...-  ]
− tests/diff/tiers-funlistable-Int-Int-Int.out
@@ -1,10 +0,0 @@-map length (tiers :: [[ Int->Int->Int ]])  =  [0]--length (list :: [ Int->Int->Int ])  =  0--allUnique (list :: [ Int->Int->Int ])  =  True--ratioRepetitions (list :: [ Int->Int->Int ])  =  0 % 1--tiers :: [Int->Int->Int]  =-  [[]]
− tests/diff/tiers-funlistable-Int-Int.out
@@ -1,10 +0,0 @@-map length (tiers :: [[ Int->Int ]])  =  [0]--length (list :: [ Int->Int ])  =  0--allUnique (list :: [ Int->Int ])  =  True--ratioRepetitions (list :: [ Int->Int ])  =  0 % 1--tiers :: [Int->Int]  =-  [[]]
− tests/diff/tiers-funlistable-Ints-Ints.out
@@ -1,95 +0,0 @@-map length (tiers :: [[ [Int]->[Int] ]])  =  [1,1,2,4,...]--length (list :: [ [Int]->[Int] ])  =  Infinity--allUnique (list :: [ [Int]->[Int] ])  =  True--ratioRepetitions (list :: [ [Int]->[Int] ])  =  0 % 1--tiers :: [[Int]->[Int]]  =-  [ [ \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [0]-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [-1] -> [0]-              ...-    ]-  , [ \x -> case x of-              [] -> [0,0]-              [0] -> [0,0]-              [0,0] -> [0,0]-              [1] -> [0,0]-              [0,0,0] -> [0,0]-              [0,1] -> [0,0]-              [1,0] -> [0,0]-              [-1] -> [0,0]-              ...-    , \x -> case x of-              [] -> [1]-              [0] -> [1]-              [0,0] -> [1]-              [1] -> [1]-              [0,0,0] -> [1]-              [0,1] -> [1]-              [1,0] -> [1]-              [-1] -> [1]-              ...-    ]-  , [ \x -> case x of-              [] -> [0,0,0]-              [0] -> [0,0,0]-              [0,0] -> [0,0,0]-              [1] -> [0,0,0]-              [0,0,0] -> [0,0,0]-              [0,1] -> [0,0,0]-              [1,0] -> [0,0,0]-              [-1] -> [0,0,0]-              ...-    , \x -> case x of-              [] -> [0,1]-              [0] -> [0,1]-              [0,0] -> [0,1]-              [1] -> [0,1]-              [0,0,0] -> [0,1]-              [0,1] -> [0,1]-              [1,0] -> [0,1]-              [-1] -> [0,1]-              ...-    , \x -> case x of-              [] -> [1,0]-              [0] -> [1,0]-              [0,0] -> [1,0]-              [1] -> [1,0]-              [0,0,0] -> [1,0]-              [0,1] -> [1,0]-              [1,0] -> [1,0]-              [-1] -> [1,0]-              ...-    , \x -> case x of-              [] -> [-1]-              [0] -> [-1]-              [0,0] -> [-1]-              [1] -> [-1]-              [0,0,0] -> [-1]-              [0,1] -> [-1]-              [1,0] -> [-1]-              [-1] -> [-1]-              ...-    ]-  , ...-  ]
− tests/diff/tiers-funlistable-MBool-Bool.out
@@ -1,43 +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]  =-  [ [ \x -> case x of-              Nothing -> False-              Just False -> False-              Just True -> False-    , \x -> case x of-              Nothing -> False-              Just False -> True-              Just True -> False-    , \x -> case x of-              Nothing -> False-              Just False -> False-              Just True -> True-    , \x -> case x of-              Nothing -> False-              Just False -> True-              Just True -> True-    , \x -> case x of-              Nothing -> True-              Just False -> False-              Just True -> False-    , \x -> case x of-              Nothing -> True-              Just False -> True-              Just True -> False-    , \x -> case x of-              Nothing -> True-              Just False -> False-              Just True -> True-    , \x -> case x of-              Nothing -> True-              Just False -> True-              Just True -> True-    ]-  ]
− tests/diff/tiers-funlistable-MBool-MBool.out
@@ -1,122 +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]  =-  [ [ \x -> case x of-              Nothing -> Nothing-              Just False -> Nothing-              Just True -> Nothing-    ]-  , [ \x -> case x of-              Nothing -> Nothing-              Just False -> Just False-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Nothing-              Just False -> Just True-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Nothing-              Just False -> Nothing-              Just True -> Just False-    , \x -> case x of-              Nothing -> Nothing-              Just False -> Nothing-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just False-              Just False -> Nothing-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Just True-              Just False -> Nothing-              Just True -> Nothing-    ]-  , [ \x -> case x of-              Nothing -> Nothing-              Just False -> Just False-              Just True -> Just False-    , \x -> case x of-              Nothing -> Nothing-              Just False -> Just True-              Just True -> 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 True-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just False-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just True-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Just False-              Just False -> Nothing-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just False-              Just False -> Nothing-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just False-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Just True-              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-              Nothing -> Just True-              Just False -> Nothing-              Just True -> Just True-    ]-  , [ \x -> case x of-              Nothing -> Just False-              Just False -> Just False-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just True-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just False-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just True-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just False-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just True-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just False-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just True-              Just True -> Just True-    ]-  ]
− tests/diff/tiers-funlistable-Nat,Nat-Nat.out
@@ -1,10 +0,0 @@-map length (tiers :: [[ (Nat,Nat)->Nat ]])  =  [0]--length (list :: [ (Nat,Nat)->Nat ])  =  0--allUnique (list :: [ (Nat,Nat)->Nat ])  =  True--ratioRepetitions (list :: [ (Nat,Nat)->Nat ])  =  0 % 1--tiers :: [(Nat,Nat)->Nat]  =-  [[]]
− tests/diff/tiers-funlistable-Nat-Nat-Nat.out
@@ -1,10 +0,0 @@-map length (tiers :: [[ Nat->Nat->Nat ]])  =  [0]--length (list :: [ Nat->Nat->Nat ])  =  0--allUnique (list :: [ Nat->Nat->Nat ])  =  True--ratioRepetitions (list :: [ Nat->Nat->Nat ])  =  0 % 1--tiers :: [Nat->Nat->Nat]  =-  [[]]
− tests/diff/tiers-funlistable-Nat-Nat.out
@@ -1,10 +0,0 @@-map length (tiers :: [[ Nat->Nat ]])  =  [0]--length (list :: [ Nat->Nat ])  =  0--allUnique (list :: [ Nat->Nat ])  =  True--ratioRepetitions (list :: [ Nat->Nat ])  =  0 % 1--tiers :: [Nat->Nat]  =-  [[]]
− tests/diff/tiers-funlistable-Nat-U.out
@@ -1,10 +0,0 @@-map length (tiers :: [[ Nat->() ]])  =  [0]--length (list :: [ Nat->() ])  =  0--allUnique (list :: [ Nat->() ])  =  True--ratioRepetitions (list :: [ Nat->() ])  =  0 % 1--tiers :: [Nat->()]  =-  [[]]
− tests/diff/tiers-funlistable-Nat2-Nat2.out
@@ -1,10 +0,0 @@-map length (tiers :: [[ Nat2->Nat2 ]])  =  [0]--length (list :: [ Nat2->Nat2 ])  =  0--allUnique (list :: [ Nat2->Nat2 ])  =  True--ratioRepetitions (list :: [ Nat2->Nat2 ])  =  0 % 1--tiers :: [Nat2->Nat2]  =-  [[]]
− tests/diff/tiers-funlistable-Nat2-Nat3.out
@@ -1,10 +0,0 @@-map length (tiers :: [[ Nat2->Nat3 ]])  =  [0]--length (list :: [ Nat2->Nat3 ])  =  0--allUnique (list :: [ Nat2->Nat3 ])  =  True--ratioRepetitions (list :: [ Nat2->Nat3 ])  =  0 % 1--tiers :: [Nat2->Nat3]  =-  [[]]
− tests/diff/tiers-funlistable-Nat3-Nat2.out
@@ -1,10 +0,0 @@-map length (tiers :: [[ Nat3->Nat2 ]])  =  [0]--length (list :: [ Nat3->Nat2 ])  =  0--allUnique (list :: [ Nat3->Nat2 ])  =  True--ratioRepetitions (list :: [ Nat3->Nat2 ])  =  0 % 1--tiers :: [Nat3->Nat2]  =-  [[]]
− tests/diff/tiers-funlistable-Nat3-Nat3.out
@@ -1,10 +0,0 @@-map length (tiers :: [[ Nat3->Nat3 ]])  =  [0]--length (list :: [ Nat3->Nat3 ])  =  0--allUnique (list :: [ Nat3->Nat3 ])  =  True--ratioRepetitions (list :: [ Nat3->Nat3 ])  =  0 % 1--tiers :: [Nat3->Nat3]  =-  [[]]
− tests/diff/tiers-funlistable-Nats-Nats.out
@@ -1,95 +0,0 @@-map length (tiers :: [[ [Nat]->[Nat] ]])  =  [1,1,2,4,...]--length (list :: [ [Nat]->[Nat] ])  =  Infinity--allUnique (list :: [ [Nat]->[Nat] ])  =  True--ratioRepetitions (list :: [ [Nat]->[Nat] ])  =  0 % 1--tiers :: [[Nat]->[Nat]]  =-  [ [ \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [0]-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [2] -> [0]-              ...-    ]-  , [ \x -> case x of-              [] -> [0,0]-              [0] -> [0,0]-              [0,0] -> [0,0]-              [1] -> [0,0]-              [0,0,0] -> [0,0]-              [0,1] -> [0,0]-              [1,0] -> [0,0]-              [2] -> [0,0]-              ...-    , \x -> case x of-              [] -> [1]-              [0] -> [1]-              [0,0] -> [1]-              [1] -> [1]-              [0,0,0] -> [1]-              [0,1] -> [1]-              [1,0] -> [1]-              [2] -> [1]-              ...-    ]-  , [ \x -> case x of-              [] -> [0,0,0]-              [0] -> [0,0,0]-              [0,0] -> [0,0,0]-              [1] -> [0,0,0]-              [0,0,0] -> [0,0,0]-              [0,1] -> [0,0,0]-              [1,0] -> [0,0,0]-              [2] -> [0,0,0]-              ...-    , \x -> case x of-              [] -> [0,1]-              [0] -> [0,1]-              [0,0] -> [0,1]-              [1] -> [0,1]-              [0,0,0] -> [0,1]-              [0,1] -> [0,1]-              [1,0] -> [0,1]-              [2] -> [0,1]-              ...-    , \x -> case x of-              [] -> [1,0]-              [0] -> [1,0]-              [0,0] -> [1,0]-              [1] -> [1,0]-              [0,0,0] -> [1,0]-              [0,1] -> [1,0]-              [1,0] -> [1,0]-              [2] -> [1,0]-              ...-    , \x -> case x of-              [] -> [2]-              [0] -> [2]-              [0,0] -> [2]-              [1] -> [2]-              [0,0,0] -> [2]-              [0,1] -> [2]-              [1,0] -> [2]-              [2] -> [2]-              ...-    ]-  , ...-  ]
− tests/diff/tiers-funlistable-U-Bool.out
@@ -1,15 +0,0 @@-map length (tiers :: [[ ()->Bool ]])  =  [2]--length (list :: [ ()->Bool ])  =  2--allUnique (list :: [ ()->Bool ])  =  True--ratioRepetitions (list :: [ ()->Bool ])  =  0 % 1--tiers :: [()->Bool]  =-  [ [ \x -> case x of-              () -> False-    , \x -> case x of-              () -> True-    ]-  ]
− tests/diff/tiers-funlistable-U-Nat.out
@@ -1,29 +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]  =-  [ [ \x -> case x of-              () -> 0-    ]-  , [ \x -> case x of-              () -> 1-    ]-  , [ \x -> case x of-              () -> 2-    ]-  , [ \x -> case x of-              () -> 3-    ]-  , [ \x -> case x of-              () -> 4-    ]-  , [ \x -> case x of-              () -> 5-    ]-  , ...-  ]
− tests/diff/tiers-funlistable-U-U.out
@@ -1,13 +0,0 @@-map length (tiers :: [[ ()->() ]])  =  [1]--length (list :: [ ()->() ])  =  1--allUnique (list :: [ ()->() ])  =  True--ratioRepetitions (list :: [ ()->() ])  =  0 % 1--tiers :: [()->()]  =-  [ [ \x -> case x of-              () -> ()-    ]-  ]
− tests/diff/tiers-funlistable-Us-Us.out
@@ -1,55 +0,0 @@-map length (tiers :: [[ [()]->[()] ]])  =  [1,1,1,1,...]--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-              [] -> [(),(),()]-              [()] -> [(),(),()]-              [(),()] -> [(),(),()]-              [(),(),()] -> [(),(),()]-              [(),(),(),()] -> [(),(),()]-              [(),(),(),(),()] -> [(),(),()]-              [(),(),(),(),(),()] -> [(),(),()]-              [(),(),(),(),(),(),()] -> [(),(),()]-              ...-    ]-  , ...-  ]
− tests/diff/tiers-listsofpairs-Bool-Bool.out
@@ -1,23 +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]  =-  [ [ \x -> case x of-              False -> False-              True -> False-    , \x -> case x of-              False -> False-              True -> True-    , \x -> case x of-              False -> True-              True -> False-    , \x -> case x of-              False -> True-              True -> True-    ]-  ]
− tests/diff/tiers-listsofpairs-Bool-MBool.out
@@ -1,40 +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]  =-  [ [ \x -> case x of-              False -> Nothing-              True -> 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-    ]-  , [ \x -> case x of-              False -> Just False-              True -> Just False-    , \x -> case x of-              False -> Just False-              True -> Just True-    , \x -> case x of-              False -> Just True-              True -> Just False-    , \x -> case x of-              False -> Just True-              True -> Just True-    ]-  ]
− tests/diff/tiers-listsofpairs-Bool-U.out
@@ -1,14 +0,0 @@-map length (tiers :: [[ Bool->() ]])  =  [1]--length (list :: [ Bool->() ])  =  1--allUnique (list :: [ Bool->() ])  =  True--ratioRepetitions (list :: [ Bool->() ])  =  0 % 1--tiers :: [Bool->()]  =-  [ [ \x -> case x of-              False -> ()-              True -> ()-    ]-  ]
− tests/diff/tiers-listsofpairs-Bools-Bools.out
@@ -1,385 +0,0 @@-map length (tiers :: [[ [Bool]->[Bool] ]])  =  [1,2,8,26,...]--length (list :: [ [Bool]->[Bool] ])  =  Infinity--allUnique (list :: [ [Bool]->[Bool] ])  =  True--ratioRepetitions (list :: [ [Bool]->[Bool] ])  =  0 % 1--tiers :: [[Bool]->[Bool]]  =-  [ [ \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [False]-              [False] -> [False]-              [True] -> [False]-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> [True]-              [True] -> [True]-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> [True]-              ...-    ]-  , [ \x -> case x of-              [] -> [False]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> [False]-              [True] -> [False]-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [True]-              [True] -> [True]-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> [False,False]-              [False] -> [False,False]-              [True] -> [False,False]-              [False,False] -> [False,False]-              [False,True] -> [False,False]-              [True,False] -> [False,False]-              [True,True] -> [False,False]-              [False,False,False] -> [False,False]-              ...-    , \x -> case x of-              [] -> [False,True]-              [False] -> [False,True]-              [True] -> [False,True]-              [False,False] -> [False,True]-              [False,True] -> [False,True]-              [True,False] -> [False,True]-              [True,True] -> [False,True]-              [False,False,False] -> [False,True]-              ...-    , \x -> case x of-              [] -> [True,False]-              [False] -> [True,False]-              [True] -> [True,False]-              [False,False] -> [True,False]-              [False,True] -> [True,False]-              [True,False] -> [True,False]-              [True,True] -> [True,False]-              [False,False,False] -> [True,False]-              ...-    , \x -> case x of-              [] -> [True,True]-              [False] -> [True,True]-              [True] -> [True,True]-              [False,False] -> [True,True]-              [False,True] -> [True,True]-              [True,False] -> [True,True]-              [True,True] -> [True,True]-              [False,False,False] -> [True,True]-              ...-    ]-  , [ \x -> case x of-              [] -> [False,False]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [False,True]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [True,False]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [True,True]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> [False]-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> [True]-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [False]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [True]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> [False]-              [True] -> [False]-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> [False]-              [False] -> []-              [True] -> [False]-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> [False]-              [False] -> [False]-              [True] -> []-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> [False]-              [False] -> [True]-              [True] -> [True]-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> []-              [True] -> [True]-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> [True]-              [True] -> []-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [False,False]-              [True] -> [False,False]-              [False,False] -> [False,False]-              [False,True] -> [False,False]-              [True,False] -> [False,False]-              [True,True] -> [False,False]-              [False,False,False] -> [False,False]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [False,True]-              [True] -> [False,True]-              [False,False] -> [False,True]-              [False,True] -> [False,True]-              [True,False] -> [False,True]-              [True,True] -> [False,True]-              [False,False,False] -> [False,True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [True,False]-              [True] -> [True,False]-              [False,False] -> [True,False]-              [False,True] -> [True,False]-              [True,False] -> [True,False]-              [True,True] -> [True,False]-              [False,False,False] -> [True,False]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [True,True]-              [True] -> [True,True]-              [False,False] -> [True,True]-              [False,True] -> [True,True]-              [True,False] -> [True,True]-              [True,True] -> [True,True]-              [False,False,False] -> [True,True]-              ...-    , \x -> case x of-              [] -> [False,False,False]-              [False] -> [False,False,False]-              [True] -> [False,False,False]-              [False,False] -> [False,False,False]-              [False,True] -> [False,False,False]-              [True,False] -> [False,False,False]-              [True,True] -> [False,False,False]-              [False,False,False] -> [False,False,False]-              ...-    , \x -> case x of-              [] -> [False,False,True]-              [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,False,True]-              [False,False,False] -> [False,False,True]-              ...-    , \x -> case x of-              [] -> [False,True,False]-              [False] -> [False,True,False]-              [True] -> [False,True,False]-              [False,False] -> [False,True,False]-              [False,True] -> [False,True,False]-              [True,False] -> [False,True,False]-              [True,True] -> [False,True,False]-              [False,False,False] -> [False,True,False]-              ...-    , \x -> case x of-              [] -> [False,True,True]-              [False] -> [False,True,True]-              [True] -> [False,True,True]-              [False,False] -> [False,True,True]-              [False,True] -> [False,True,True]-              [True,False] -> [False,True,True]-              [True,True] -> [False,True,True]-              [False,False,False] -> [False,True,True]-              ...-    , \x -> case x of-              [] -> [True,False,False]-              [False] -> [True,False,False]-              [True] -> [True,False,False]-              [False,False] -> [True,False,False]-              [False,True] -> [True,False,False]-              [True,False] -> [True,False,False]-              [True,True] -> [True,False,False]-              [False,False,False] -> [True,False,False]-              ...-    , \x -> case x of-              [] -> [True,False,True]-              [False] -> [True,False,True]-              [True] -> [True,False,True]-              [False,False] -> [True,False,True]-              [False,True] -> [True,False,True]-              [True,False] -> [True,False,True]-              [True,True] -> [True,False,True]-              [False,False,False] -> [True,False,True]-              ...-    , \x -> case x of-              [] -> [True,True,False]-              [False] -> [True,True,False]-              [True] -> [True,True,False]-              [False,False] -> [True,True,False]-              [False,True] -> [True,True,False]-              [True,False] -> [True,True,False]-              [True,True] -> [True,True,False]-              [False,False,False] -> [True,True,False]-              ...-    , \x -> case x of-              [] -> [True,True,True]-              [False] -> [True,True,True]-              [True] -> [True,True,True]-              [False,False] -> [True,True,True]-              [False,True] -> [True,True,True]-              [True,False] -> [True,True,True]-              [True,True] -> [True,True,True]-              [False,False,False] -> [True,True,True]-              ...-    ]-  , ...-  ]
− tests/diff/tiers-listsofpairs-Int-Int-Int.out
@@ -1,215 +0,0 @@-map length (tiers :: [[ Int->Int->Int ]])  =  [1,1,5,13,...]--length (list :: [ Int->Int->Int ])  =  Infinity--allUnique (list :: [ Int->Int->Int ])  =  True--ratioRepetitions (list :: [ Int->Int->Int ])  =  0 % 1--tiers :: [Int->Int->Int]  =-  [ [ \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 1-                ...-    ]-  , [ \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> -1-                (0,1) -> -1-                (1,0) -> -1-                (0,-1) -> -1-                (1,1) -> -1-                (-1,0) -> -1-                (0,2) -> -1-                (1,-1) -> -1-                ...-    ]-  , [ \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> -1-                (0,1) -> -1-                (1,0) -> 0-                (0,-1) -> -1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> -1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> -1-                (0,-1) -> 0-                (1,1) -> -1-                (-1,0) -> -1-                (0,2) -> 0-                (1,-1) -> -1-                ...-    , \x y -> case (x,y) of-                (0,0) -> -1-                (0,1) -> 0-                (1,0) -> -1-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> -1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> -1-                (1,0) -> 0-                (0,-1) -> -1-                (1,1) -> -1-                (-1,0) -> 0-                (0,2) -> -1-                (1,-1) -> -1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 2-                (1,0) -> 2-                (0,-1) -> 2-                (1,1) -> 2-                (-1,0) -> 2-                (0,2) -> 2-                (1,-1) -> 2-                ...-    ]-  , ...-  ]
− tests/diff/tiers-listsofpairs-Int-Int.out
@@ -1,377 +0,0 @@-map length (tiers :: [[ Int->Int ]])  =  [1,1,3,5,10,16,...]--length (list :: [ Int->Int ])  =  Infinity--allUnique (list :: [ Int->Int ])  =  True--ratioRepetitions (list :: [ Int->Int ])  =  0 % 1--tiers :: [Int->Int]  =-  [ [ \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    ]-  , [ \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    ]-  , [ \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> -1-              1 -> -1-              -1 -> -1-              2 -> -1-              -2 -> -1-              3 -> -1-              -3 -> -1-              4 -> -1-              ...-    ]-  , [ \x -> case x of-              0 -> -1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> -1-              -1 -> -1-              2 -> -1-              -2 -> -1-              3 -> -1-              -3 -> -1-              4 -> -1-              ...-    , \x -> case x of-              0 -> 2-              1 -> 2-              -1 -> 2-              2 -> 2-              -2 -> 2-              3 -> 2-              -3 -> 2-              4 -> 2-              ...-    ]-  , [ \x -> case x of-              0 -> 2-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> -1-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> -1-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> -1-              -1 -> -1-              2 -> -1-              -2 -> -1-              3 -> -1-              -3 -> -1-              4 -> -1-              ...-    , \x -> case x of-              0 -> -1-              1 -> 0-              -1 -> -1-              2 -> -1-              -2 -> -1-              3 -> -1-              -3 -> -1-              4 -> -1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              -1 -> 2-              2 -> 2-              -2 -> 2-              3 -> 2-              -3 -> 2-              4 -> 2-              ...-    , \x -> case x of-              0 -> -2-              1 -> -2-              -1 -> -2-              2 -> -2-              -2 -> -2-              3 -> -2-              -3 -> -2-              4 -> -2-              ...-    ]-  , [ \x -> case x of-              0 -> -2-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> -1-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> -1-              1 -> 1-              -1 -> -1-              2 -> -1-              -2 -> -1-              3 -> -1-              -3 -> -1-              4 -> -1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -1-              2 -> -1-              -2 -> -1-              3 -> -1-              -3 -> -1-              4 -> -1-              ...-    , \x -> case x of-              0 -> -1-              1 -> -1-              -1 -> 0-              2 -> -1-              -2 -> -1-              3 -> -1-              -3 -> -1-              4 -> -1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 2-              -1 -> 2-              2 -> 2-              -2 -> 2-              3 -> 2-              -3 -> 2-              4 -> 2-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              -1 -> 2-              2 -> 2-              -2 -> 2-              3 -> 2-              -3 -> 2-              4 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> -2-              -1 -> -2-              2 -> -2-              -2 -> -2-              3 -> -2-              -3 -> -2-              4 -> -2-              ...-    , \x -> case x of-              0 -> 3-              1 -> 3-              -1 -> 3-              2 -> 3-              -2 -> 3-              3 -> 3-              -3 -> 3-              4 -> 3-              ...-    ]-  , ...-  ]
− tests/diff/tiers-listsofpairs-Ints-Ints.out
@@ -1,175 +0,0 @@-map length (tiers :: [[ [Int]->[Int] ]])  =  [1,1,4,10,...]--length (list :: [ [Int]->[Int] ])  =  Infinity--allUnique (list :: [ [Int]->[Int] ])  =  True--ratioRepetitions (list :: [ [Int]->[Int] ])  =  0 % 1--tiers :: [[Int]->[Int]]  =-  [ [ \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [0]-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [-1] -> [0]-              ...-    ]-  , [ \x -> case x of-              [] -> [0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [-1] -> [0]-              ...-    , \x -> case x of-              [] -> [0,0]-              [0] -> [0,0]-              [0,0] -> [0,0]-              [1] -> [0,0]-              [0,0,0] -> [0,0]-              [0,1] -> [0,0]-              [1,0] -> [0,0]-              [-1] -> [0,0]-              ...-    , \x -> case x of-              [] -> [1]-              [0] -> [1]-              [0,0] -> [1]-              [1] -> [1]-              [0,0,0] -> [1]-              [0,1] -> [1]-              [1,0] -> [1]-              [-1] -> [1]-              ...-    ]-  , [ \x -> case x of-              [] -> [0,0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> [1]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0]-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> [0]-              [0] -> []-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [-1] -> [0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0,0]-              [0,0] -> [0,0]-              [1] -> [0,0]-              [0,0,0] -> [0,0]-              [0,1] -> [0,0]-              [1,0] -> [0,0]-              [-1] -> [0,0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> [1]-              [0,0] -> [1]-              [1] -> [1]-              [0,0,0] -> [1]-              [0,1] -> [1]-              [1,0] -> [1]-              [-1] -> [1]-              ...-    , \x -> case x of-              [] -> [0,0,0]-              [0] -> [0,0,0]-              [0,0] -> [0,0,0]-              [1] -> [0,0,0]-              [0,0,0] -> [0,0,0]-              [0,1] -> [0,0,0]-              [1,0] -> [0,0,0]-              [-1] -> [0,0,0]-              ...-    , \x -> case x of-              [] -> [0,1]-              [0] -> [0,1]-              [0,0] -> [0,1]-              [1] -> [0,1]-              [0,0,0] -> [0,1]-              [0,1] -> [0,1]-              [1,0] -> [0,1]-              [-1] -> [0,1]-              ...-    , \x -> case x of-              [] -> [1,0]-              [0] -> [1,0]-              [0,0] -> [1,0]-              [1] -> [1,0]-              [0,0,0] -> [1,0]-              [0,1] -> [1,0]-              [1,0] -> [1,0]-              [-1] -> [1,0]-              ...-    , \x -> case x of-              [] -> [-1]-              [0] -> [-1]-              [0,0] -> [-1]-              [1] -> [-1]-              [0,0,0] -> [-1]-              [0,1] -> [-1]-              [1,0] -> [-1]-              [-1] -> [-1]-              ...-    ]-  , ...-  ]
− tests/diff/tiers-listsofpairs-MBool-Bool.out
@@ -1,43 +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]  =-  [ [ \x -> case x of-              Nothing -> False-              Just False -> False-              Just True -> False-    , \x -> case x of-              Nothing -> False-              Just False -> False-              Just True -> True-    , \x -> case x of-              Nothing -> False-              Just False -> True-              Just True -> False-    , \x -> case x of-              Nothing -> False-              Just False -> True-              Just True -> True-    , \x -> case x of-              Nothing -> True-              Just False -> False-              Just True -> False-    , \x -> case x of-              Nothing -> True-              Just False -> False-              Just True -> True-    , \x -> case x of-              Nothing -> True-              Just False -> True-              Just True -> False-    , \x -> case x of-              Nothing -> True-              Just False -> True-              Just True -> True-    ]-  ]
− tests/diff/tiers-listsofpairs-MBool-MBool.out
@@ -1,122 +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]  =-  [ [ \x -> case x of-              Nothing -> Nothing-              Just False -> Nothing-              Just True -> Nothing-    ]-  , [ \x -> case x of-              Nothing -> Nothing-              Just False -> Nothing-              Just True -> Just False-    , \x -> case x of-              Nothing -> Nothing-              Just False -> Nothing-              Just True -> Just True-    , \x -> case x of-              Nothing -> Nothing-              Just False -> Just False-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Nothing-              Just False -> Just True-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Just False-              Just False -> Nothing-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Just True-              Just False -> Nothing-              Just True -> Nothing-    ]-  , [ \x -> case x of-              Nothing -> Nothing-              Just False -> Just False-              Just True -> 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 False -> Just True-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just False-              Just False -> Nothing-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just False-              Just False -> Nothing-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just False-              Just True -> Nothing-    , \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-              Nothing -> Just True-              Just False -> Nothing-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just False-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just True-              Just True -> Nothing-    ]-  , [ \x -> case x of-              Nothing -> Just False-              Just False -> Just False-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just False-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just True-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just True-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just False-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just False-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just True-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just True-              Just True -> Just True-    ]-  ]
− tests/diff/tiers-listsofpairs-Nat,Nat-Nat.out
@@ -1,135 +0,0 @@-map length (tiers :: [[ (Nat,Nat)->Nat ]])  =  [1,1,3,7,...]--length (list :: [ (Nat,Nat)->Nat ])  =  Infinity--allUnique (list :: [ (Nat,Nat)->Nat ])  =  True--ratioRepetitions (list :: [ (Nat,Nat)->Nat ])  =  0 % 1--tiers :: [(Nat,Nat)->Nat]  =-  [ [ \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    ]-  , [ \x -> case x of-              (0,0) -> 1-              (0,1) -> 1-              (1,0) -> 1-              (0,2) -> 1-              (1,1) -> 1-              (2,0) -> 1-              (0,3) -> 1-              (1,2) -> 1-              ...-    ]-  , [ \x -> case x of-              (0,0) -> 1-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 1-              (1,0) -> 1-              (0,2) -> 1-              (1,1) -> 1-              (2,0) -> 1-              (0,3) -> 1-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 2-              (0,1) -> 2-              (1,0) -> 2-              (0,2) -> 2-              (1,1) -> 2-              (2,0) -> 2-              (0,3) -> 2-              (1,2) -> 2-              ...-    ]-  , [ \x -> case x of-              (0,0) -> 2-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 1-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 1-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 0-              (1,0) -> 1-              (0,2) -> 1-              (1,1) -> 1-              (2,0) -> 1-              (0,3) -> 1-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 1-              (1,0) -> 0-              (0,2) -> 1-              (1,1) -> 1-              (2,0) -> 1-              (0,3) -> 1-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 2-              (1,0) -> 2-              (0,2) -> 2-              (1,1) -> 2-              (2,0) -> 2-              (0,3) -> 2-              (1,2) -> 2-              ...-    , \x -> case x of-              (0,0) -> 3-              (0,1) -> 3-              (1,0) -> 3-              (0,2) -> 3-              (1,1) -> 3-              (2,0) -> 3-              (0,3) -> 3-              (1,2) -> 3-              ...-    ]-  , ...-  ]
− tests/diff/tiers-listsofpairs-Nat-Nat-Nat.out
@@ -1,215 +0,0 @@-map length (tiers :: [[ Nat->Nat->Nat ]])  =  [1,1,5,13,...]--length (list :: [ Nat->Nat->Nat ])  =  Infinity--allUnique (list :: [ Nat->Nat->Nat ])  =  True--ratioRepetitions (list :: [ Nat->Nat->Nat ])  =  0 % 1--tiers :: [Nat->Nat->Nat]  =-  [ [ \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 1-                ...-    ]-  , [ \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 2-                (1,0) -> 2-                (0,2) -> 2-                (1,1) -> 2-                (2,0) -> 2-                (0,3) -> 2-                (1,2) -> 2-                ...-    ]-  , [ \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 2-                (1,0) -> 0-                (0,2) -> 2-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 2-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 2-                (0,2) -> 0-                (1,1) -> 2-                (2,0) -> 2-                (0,3) -> 0-                (1,2) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 0-                (1,0) -> 2-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 2-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 2-                (1,0) -> 0-                (0,2) -> 2-                (1,1) -> 2-                (2,0) -> 0-                (0,3) -> 2-                (1,2) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 3-                (0,1) -> 3-                (1,0) -> 3-                (0,2) -> 3-                (1,1) -> 3-                (2,0) -> 3-                (0,3) -> 3-                (1,2) -> 3-                ...-    ]-  , ...-  ]
− tests/diff/tiers-listsofpairs-Nat-Nat.out
@@ -1,377 +0,0 @@-map length (tiers :: [[ Nat->Nat ]])  =  [1,1,3,5,10,16,...]--length (list :: [ Nat->Nat ])  =  Infinity--allUnique (list :: [ Nat->Nat ])  =  True--ratioRepetitions (list :: [ Nat->Nat ])  =  0 % 1--tiers :: [Nat->Nat]  =-  [ [ \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    ]-  , [ \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    ]-  , [ \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 2-              1 -> 2-              2 -> 2-              3 -> 2-              4 -> 2-              5 -> 2-              6 -> 2-              7 -> 2-              ...-    ]-  , [ \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 2-              3 -> 2-              4 -> 2-              5 -> 2-              6 -> 2-              7 -> 2-              ...-    , \x -> case x of-              0 -> 3-              1 -> 3-              2 -> 3-              3 -> 3-              4 -> 3-              5 -> 3-              6 -> 3-              7 -> 3-              ...-    ]-  , [ \x -> case x of-              0 -> 3-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 1-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 2-              2 -> 2-              3 -> 2-              4 -> 2-              5 -> 2-              6 -> 2-              7 -> 2-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 2-              3 -> 2-              4 -> 2-              5 -> 2-              6 -> 2-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 3-              2 -> 3-              3 -> 3-              4 -> 3-              5 -> 3-              6 -> 3-              7 -> 3-              ...-    , \x -> case x of-              0 -> 4-              1 -> 4-              2 -> 4-              3 -> 4-              4 -> 4-              5 -> 4-              6 -> 4-              7 -> 4-              ...-    ]-  , [ \x -> case x of-              0 -> 4-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 3-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 2-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 3-              1 -> 1-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 2-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 2-              1 -> 1-              2 -> 2-              3 -> 2-              4 -> 2-              5 -> 2-              6 -> 2-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 2-              3 -> 2-              4 -> 2-              5 -> 2-              6 -> 2-              7 -> 2-              ...-    , \x -> case x of-              0 -> 2-              1 -> 2-              2 -> 0-              3 -> 2-              4 -> 2-              5 -> 2-              6 -> 2-              7 -> 2-              ...-    , \x -> case x of-              0 -> 1-              1 -> 3-              2 -> 3-              3 -> 3-              4 -> 3-              5 -> 3-              6 -> 3-              7 -> 3-              ...-    , \x -> case x of-              0 -> 3-              1 -> 0-              2 -> 3-              3 -> 3-              4 -> 3-              5 -> 3-              6 -> 3-              7 -> 3-              ...-    , \x -> case x of-              0 -> 0-              1 -> 4-              2 -> 4-              3 -> 4-              4 -> 4-              5 -> 4-              6 -> 4-              7 -> 4-              ...-    , \x -> case x of-              0 -> 5-              1 -> 5-              2 -> 5-              3 -> 5-              4 -> 5-              5 -> 5-              6 -> 5-              7 -> 5-              ...-    ]-  , ...-  ]
− tests/diff/tiers-listsofpairs-Nat-U.out
@@ -1,27 +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->()]  =-  [ [ \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    ]-  , []-  , []-  , []-  , []-  , []-  , ...-  ]
− tests/diff/tiers-listsofpairs-Nat2-Nat2.out
@@ -1,25 +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]  =-  [ [ \x -> case x of-              0 -> 0-              1 -> 0-    ]-  , [ \x -> case x of-              0 -> 0-              1 -> 1-    , \x -> case x of-              0 -> 1-              1 -> 0-    ]-  , [ \x -> case x of-              0 -> 1-              1 -> 1-    ]-  ]
− tests/diff/tiers-listsofpairs-Nat2-Nat3.out
@@ -1,42 +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]  =-  [ [ \x -> case x of-              0 -> 0-              1 -> 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-    , \x -> case x of-              0 -> 1-              1 -> 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-    ]-  , [ \x -> case x of-              0 -> 2-              1 -> 2-    ]-  ]
− tests/diff/tiers-listsofpairs-Nat3-Nat2.out
@@ -1,46 +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]  =-  [ [ \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-    ]-  , [ \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-    ]-  , [ \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 1-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 0-    ]-  , [ \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 1-    ]-  ]
− tests/diff/tiers-listsofpairs-Nat3-Nat3.out
@@ -1,125 +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]  =-  [ [ \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-    ]-  , [ \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-    ]-  , [ \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 2-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 1-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 0-    , \x -> case x of-              0 -> 2-              1 -> 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-    , \x -> case x of-              0 -> 1-              1 -> 1-              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-              1 -> 2-              2 -> 2-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 2-    , \x -> case x of-              0 -> 1-              1 -> 2-              2 -> 1-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 2-    , \x -> case x of-              0 -> 2-              1 -> 1-              2 -> 1-    , \x -> case x of-              0 -> 2-              1 -> 2-              2 -> 0-    ]-  , [ \x -> case x of-              0 -> 1-              1 -> 2-              2 -> 2-    , \x -> case x of-              0 -> 2-              1 -> 1-              2 -> 2-    , \x -> case x of-              0 -> 2-              1 -> 2-              2 -> 1-    ]-  , [ \x -> case x of-              0 -> 2-              1 -> 2-              2 -> 2-    ]-  ]
− tests/diff/tiers-listsofpairs-Nats-Nats.out
@@ -1,175 +0,0 @@-map length (tiers :: [[ [Nat]->[Nat] ]])  =  [1,1,4,10,...]--length (list :: [ [Nat]->[Nat] ])  =  Infinity--allUnique (list :: [ [Nat]->[Nat] ])  =  True--ratioRepetitions (list :: [ [Nat]->[Nat] ])  =  0 % 1--tiers :: [[Nat]->[Nat]]  =-  [ [ \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [0]-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [2] -> [0]-              ...-    ]-  , [ \x -> case x of-              [] -> [0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [2] -> [0]-              ...-    , \x -> case x of-              [] -> [0,0]-              [0] -> [0,0]-              [0,0] -> [0,0]-              [1] -> [0,0]-              [0,0,0] -> [0,0]-              [0,1] -> [0,0]-              [1,0] -> [0,0]-              [2] -> [0,0]-              ...-    , \x -> case x of-              [] -> [1]-              [0] -> [1]-              [0,0] -> [1]-              [1] -> [1]-              [0,0,0] -> [1]-              [0,1] -> [1]-              [1,0] -> [1]-              [2] -> [1]-              ...-    ]-  , [ \x -> case x of-              [] -> [0,0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> [1]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0]-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> [0]-              [0] -> []-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [2] -> [0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0,0]-              [0,0] -> [0,0]-              [1] -> [0,0]-              [0,0,0] -> [0,0]-              [0,1] -> [0,0]-              [1,0] -> [0,0]-              [2] -> [0,0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> [1]-              [0,0] -> [1]-              [1] -> [1]-              [0,0,0] -> [1]-              [0,1] -> [1]-              [1,0] -> [1]-              [2] -> [1]-              ...-    , \x -> case x of-              [] -> [0,0,0]-              [0] -> [0,0,0]-              [0,0] -> [0,0,0]-              [1] -> [0,0,0]-              [0,0,0] -> [0,0,0]-              [0,1] -> [0,0,0]-              [1,0] -> [0,0,0]-              [2] -> [0,0,0]-              ...-    , \x -> case x of-              [] -> [0,1]-              [0] -> [0,1]-              [0,0] -> [0,1]-              [1] -> [0,1]-              [0,0,0] -> [0,1]-              [0,1] -> [0,1]-              [1,0] -> [0,1]-              [2] -> [0,1]-              ...-    , \x -> case x of-              [] -> [1,0]-              [0] -> [1,0]-              [0,0] -> [1,0]-              [1] -> [1,0]-              [0,0,0] -> [1,0]-              [0,1] -> [1,0]-              [1,0] -> [1,0]-              [2] -> [1,0]-              ...-    , \x -> case x of-              [] -> [2]-              [0] -> [2]-              [0,0] -> [2]-              [1] -> [2]-              [0,0,0] -> [2]-              [0,1] -> [2]-              [1,0] -> [2]-              [2] -> [2]-              ...-    ]-  , ...-  ]
− tests/diff/tiers-listsofpairs-U-Bool.out
@@ -1,15 +0,0 @@-map length (tiers :: [[ ()->Bool ]])  =  [2]--length (list :: [ ()->Bool ])  =  2--allUnique (list :: [ ()->Bool ])  =  True--ratioRepetitions (list :: [ ()->Bool ])  =  0 % 1--tiers :: [()->Bool]  =-  [ [ \x -> case x of-              () -> False-    , \x -> case x of-              () -> True-    ]-  ]
− tests/diff/tiers-listsofpairs-U-Nat.out
@@ -1,29 +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]  =-  [ [ \x -> case x of-              () -> 0-    ]-  , [ \x -> case x of-              () -> 1-    ]-  , [ \x -> case x of-              () -> 2-    ]-  , [ \x -> case x of-              () -> 3-    ]-  , [ \x -> case x of-              () -> 4-    ]-  , [ \x -> case x of-              () -> 5-    ]-  , ...-  ]
− tests/diff/tiers-listsofpairs-U-U.out
@@ -1,13 +0,0 @@-map length (tiers :: [[ ()->() ]])  =  [1]--length (list :: [ ()->() ])  =  1--allUnique (list :: [ ()->() ])  =  True--ratioRepetitions (list :: [ ()->() ])  =  0 % 1--tiers :: [()->()]  =-  [ [ \x -> case x of-              () -> ()-    ]-  ]
− tests/diff/tiers-listsofpairs-Us-Us.out
@@ -1,115 +0,0 @@-map length (tiers :: [[ [()]->[()] ]])  =  [1,1,3,5,...]--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-              [] -> [(),(),()]-              [()] -> [(),(),()]-              [(),()] -> [(),(),()]-              [(),(),()] -> [(),(),()]-              [(),(),(),()] -> [(),(),()]-              [(),(),(),(),()] -> [(),(),()]-              [(),(),(),(),(),()] -> [(),(),()]-              [(),(),(),(),(),(),()] -> [(),(),()]-              ...-    ]-  , ...-  ]
− tests/diff/tiers-mixed-Bool-Bool.out
@@ -1,35 +0,0 @@-map length (tiers :: [[ Bool->Bool ]])  =  [8]--length (list :: [ Bool->Bool ])  =  8--allUnique (list :: [ Bool->Bool ])  =  False--ratioRepetitions (list :: [ Bool->Bool ])  =  1 % 2--tiers :: [Bool->Bool]  =-  [ [ \x -> case x of-              False -> False-              True -> False-    , \x -> case x of-              False -> False-              True -> True-    , \x -> case x of-              False -> True-              True -> False-    , \x -> case x of-              False -> True-              True -> True-    , \x -> case x of-              False -> False-              True -> False-    , \x -> case x of-              False -> True-              True -> False-    , \x -> case x of-              False -> False-              True -> True-    , \x -> case x of-              False -> True-              True -> True-    ]-  ]
− tests/diff/tiers-mixed-Bool-MBool.out
@@ -1,67 +0,0 @@-map length (tiers :: [[ Bool->Maybe Bool ]])  =  [2,8,8]--length (list :: [ Bool->Maybe Bool ])  =  Infinity--allUnique (list :: [ Bool->Maybe Bool ])  =  False--ratioRepetitions (list :: [ Bool->Maybe Bool ])  =  1 % 2--tiers :: [Bool->Maybe Bool]  =-  [ [ \x -> case x of-              False -> Nothing-              True -> Nothing-    , \x -> case x of-              False -> Nothing-              True -> 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-    , \x -> case x of-              False -> Just False-              True -> Nothing-    , \x -> case x of-              False -> Just True-              True -> 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 -> Just False-    , \x -> case x of-              False -> Just False-              True -> Just True-    , \x -> case x of-              False -> Just True-              True -> Just False-    , \x -> case x of-              False -> Just True-              True -> Just True-    , \x -> case x of-              False -> Just False-              True -> Just False-    , \x -> case x of-              False -> Just True-              True -> Just False-    , \x -> case x of-              False -> Just False-              True -> Just True-    , \x -> case x of-              False -> Just True-              True -> Just True-    ]-  ]
− tests/diff/tiers-mixed-Bool-U.out
@@ -1,17 +0,0 @@-map length (tiers :: [[ Bool->() ]])  =  [2]--length (list :: [ Bool->() ])  =  2--allUnique (list :: [ Bool->() ])  =  False--ratioRepetitions (list :: [ Bool->() ])  =  1 % 2--tiers :: [Bool->()]  =-  [ [ \x -> case x of-              False -> ()-              True -> ()-    , \x -> case x of-              False -> ()-              True -> ()-    ]-  ]
− tests/diff/tiers-mixed-Bools-Bools.out
@@ -1,1115 +0,0 @@-map length (tiers :: [[ [Bool]->[Bool] ]])  =  [2,5,20,83,...]--length (list :: [ [Bool]->[Bool] ])  =  Infinity--allUnique (list :: [ [Bool]->[Bool] ])  =  False--ratioRepetitions (list :: [ [Bool]->[Bool] ])  =  43 % 110--tiers :: [[Bool]->[Bool]]  =-  [ [ \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [False]-              [False] -> [False]-              [True] -> [False]-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> [True]-              [True] -> [True]-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> [False]-              [False] -> [False]-              [True] -> [False]-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> [True]-              [True] -> [True]-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [False]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> [False]-              [True] -> [False]-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [True]-              [True] -> [True]-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> [False,False]-              [False] -> [False,False]-              [True] -> [False,False]-              [False,False] -> [False,False]-              [False,True] -> [False,False]-              [True,False] -> [False,False]-              [True,True] -> [False,False]-              [False,False,False] -> [False,False]-              ...-    , \x -> case x of-              [] -> [False,True]-              [False] -> [False,True]-              [True] -> [False,True]-              [False,False] -> [False,True]-              [False,True] -> [False,True]-              [True,False] -> [False,True]-              [True,True] -> [False,True]-              [False,False,False] -> [False,True]-              ...-    , \x -> case x of-              [] -> [True,False]-              [False] -> [True,False]-              [True] -> [True,False]-              [False,False] -> [True,False]-              [False,True] -> [True,False]-              [True,False] -> [True,False]-              [True,True] -> [True,False]-              [False,False,False] -> [True,False]-              ...-    , \x -> case x of-              [] -> [True,True]-              [False] -> [True,True]-              [True] -> [True,True]-              [False,False] -> [True,True]-              [False,True] -> [True,True]-              [True,False] -> [True,True]-              [True,True] -> [True,True]-              [False,False,False] -> [True,True]-              ...-    , \x -> case x of-              [] -> [False,False]-              [False] -> [False,False]-              [True] -> [False,False]-              [False,False] -> [False,False]-              [False,True] -> [False,False]-              [True,False] -> [False,False]-              [True,True] -> [False,False]-              [False,False,False] -> [False,False]-              ...-    , \x -> case x of-              [] -> [False,True]-              [False] -> [False,True]-              [True] -> [False,True]-              [False,False] -> [False,True]-              [False,True] -> [False,True]-              [True,False] -> [False,True]-              [True,True] -> [False,True]-              [False,False,False] -> [False,True]-              ...-    , \x -> case x of-              [] -> [True,False]-              [False] -> [True,False]-              [True] -> [True,False]-              [False,False] -> [True,False]-              [False,True] -> [True,False]-              [True,False] -> [True,False]-              [True,True] -> [True,False]-              [False,False,False] -> [True,False]-              ...-    , \x -> case x of-              [] -> [True,True]-              [False] -> [True,True]-              [True] -> [True,True]-              [False,False] -> [True,True]-              [False,True] -> [True,True]-              [True,False] -> [True,True]-              [True,True] -> [True,True]-              [False,False,False] -> [True,True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [False]-              [True] -> []-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [True]-              [True] -> []-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [False]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [True]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [False]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [False,False]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [False,True]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [True,False]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [True,True]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> [False]-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> [True]-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [False]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [True]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> [False]-              [True] -> [False]-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> [False]-              [False] -> []-              [True] -> [False]-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> [False]-              [False] -> [False]-              [True] -> []-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> [False]-              [False] -> [True]-              [True] -> [True]-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> []-              [True] -> [True]-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> [True]-              [True] -> []-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [False,False]-              [True] -> [False,False]-              [False,False] -> [False,False]-              [False,True] -> [False,False]-              [True,False] -> [False,False]-              [True,True] -> [False,False]-              [False,False,False] -> [False,False]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [False,True]-              [True] -> [False,True]-              [False,False] -> [False,True]-              [False,True] -> [False,True]-              [True,False] -> [False,True]-              [True,True] -> [False,True]-              [False,False,False] -> [False,True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [True,False]-              [True] -> [True,False]-              [False,False] -> [True,False]-              [False,True] -> [True,False]-              [True,False] -> [True,False]-              [True,True] -> [True,False]-              [False,False,False] -> [True,False]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [True,True]-              [True] -> [True,True]-              [False,False] -> [True,True]-              [False,True] -> [True,True]-              [True,False] -> [True,True]-              [True,True] -> [True,True]-              [False,False,False] -> [True,True]-              ...-    , \x -> case x of-              [] -> [False,False,False]-              [False] -> [False,False,False]-              [True] -> [False,False,False]-              [False,False] -> [False,False,False]-              [False,True] -> [False,False,False]-              [True,False] -> [False,False,False]-              [True,True] -> [False,False,False]-              [False,False,False] -> [False,False,False]-              ...-    , \x -> case x of-              [] -> [False,False,True]-              [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,False,True]-              [False,False,False] -> [False,False,True]-              ...-    , \x -> case x of-              [] -> [False,True,False]-              [False] -> [False,True,False]-              [True] -> [False,True,False]-              [False,False] -> [False,True,False]-              [False,True] -> [False,True,False]-              [True,False] -> [False,True,False]-              [True,True] -> [False,True,False]-              [False,False,False] -> [False,True,False]-              ...-    , \x -> case x of-              [] -> [False,True,True]-              [False] -> [False,True,True]-              [True] -> [False,True,True]-              [False,False] -> [False,True,True]-              [False,True] -> [False,True,True]-              [True,False] -> [False,True,True]-              [True,True] -> [False,True,True]-              [False,False,False] -> [False,True,True]-              ...-    , \x -> case x of-              [] -> [True,False,False]-              [False] -> [True,False,False]-              [True] -> [True,False,False]-              [False,False] -> [True,False,False]-              [False,True] -> [True,False,False]-              [True,False] -> [True,False,False]-              [True,True] -> [True,False,False]-              [False,False,False] -> [True,False,False]-              ...-    , \x -> case x of-              [] -> [True,False,True]-              [False] -> [True,False,True]-              [True] -> [True,False,True]-              [False,False] -> [True,False,True]-              [False,True] -> [True,False,True]-              [True,False] -> [True,False,True]-              [True,True] -> [True,False,True]-              [False,False,False] -> [True,False,True]-              ...-    , \x -> case x of-              [] -> [True,True,False]-              [False] -> [True,True,False]-              [True] -> [True,True,False]-              [False,False] -> [True,True,False]-              [False,True] -> [True,True,False]-              [True,False] -> [True,True,False]-              [True,True] -> [True,True,False]-              [False,False,False] -> [True,True,False]-              ...-    , \x -> case x of-              [] -> [True,True,True]-              [False] -> [True,True,True]-              [True] -> [True,True,True]-              [False,False] -> [True,True,True]-              [False,True] -> [True,True,True]-              [True,False] -> [True,True,True]-              [True,True] -> [True,True,True]-              [False,False,False] -> [True,True,True]-              ...-    , \x -> case x of-              [] -> [False,False,False]-              [False] -> [False,False,False]-              [True] -> [False,False,False]-              [False,False] -> [False,False,False]-              [False,True] -> [False,False,False]-              [True,False] -> [False,False,False]-              [True,True] -> [False,False,False]-              [False,False,False] -> [False,False,False]-              ...-    , \x -> case x of-              [] -> [False,False,True]-              [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,False,True]-              [False,False,False] -> [False,False,True]-              ...-    , \x -> case x of-              [] -> [False,True,False]-              [False] -> [False,True,False]-              [True] -> [False,True,False]-              [False,False] -> [False,True,False]-              [False,True] -> [False,True,False]-              [True,False] -> [False,True,False]-              [True,True] -> [False,True,False]-              [False,False,False] -> [False,True,False]-              ...-    , \x -> case x of-              [] -> [False,True,True]-              [False] -> [False,True,True]-              [True] -> [False,True,True]-              [False,False] -> [False,True,True]-              [False,True] -> [False,True,True]-              [True,False] -> [False,True,True]-              [True,True] -> [False,True,True]-              [False,False,False] -> [False,True,True]-              ...-    , \x -> case x of-              [] -> [True,False,False]-              [False] -> [True,False,False]-              [True] -> [True,False,False]-              [False,False] -> [True,False,False]-              [False,True] -> [True,False,False]-              [True,False] -> [True,False,False]-              [True,True] -> [True,False,False]-              [False,False,False] -> [True,False,False]-              ...-    , \x -> case x of-              [] -> [True,False,True]-              [False] -> [True,False,True]-              [True] -> [True,False,True]-              [False,False] -> [True,False,True]-              [False,True] -> [True,False,True]-              [True,False] -> [True,False,True]-              [True,True] -> [True,False,True]-              [False,False,False] -> [True,False,True]-              ...-    , \x -> case x of-              [] -> [True,True,False]-              [False] -> [True,True,False]-              [True] -> [True,True,False]-              [False,False] -> [True,True,False]-              [False,True] -> [True,True,False]-              [True,False] -> [True,True,False]-              [True,True] -> [True,True,False]-              [False,False,False] -> [True,True,False]-              ...-    , \x -> case x of-              [] -> [True,True,True]-              [False] -> [True,True,True]-              [True] -> [True,True,True]-              [False,False] -> [True,True,True]-              [False,True] -> [True,True,True]-              [True,False] -> [True,True,True]-              [True,True] -> [True,True,True]-              [False,False,False] -> [True,True,True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [False,False]-              [True] -> []-              [False,False] -> [False,False]-              [False,True] -> [False,False]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [False,False]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [False,True]-              [True] -> []-              [False,False] -> [False,True]-              [False,True] -> [False,True]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [False,True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [True,False]-              [True] -> []-              [False,False] -> [True,False]-              [False,True] -> [True,False]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [True,False]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [True,True]-              [True] -> []-              [False,False] -> [True,True]-              [False,True] -> [True,True]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [True,True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> [False]-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> [True]-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> [False]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> [True]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> [False]-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> [True]-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> [False]-              [True] -> [False]-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [True]-              [True] -> [False]-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [False]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> [False]-              [True] -> [True]-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [True]-              [True] -> [True]-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [True]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> [False]-              [True] -> []-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> []-              [False] -> [True]-              [True] -> []-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [False,False]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [False,False]-              [True,True] -> [False,False]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [False,True]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [False,True]-              [True,True] -> [False,True]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [True,False]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [True,False]-              [True,True] -> [True,False]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [True,True]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [True,True]-              [True,True] -> [True,True]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [False]-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [True]-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> [False]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> [True]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [False]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> []-              [False] -> []-              [True] -> [True]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [False]-              [False] -> [False]-              [True] -> []-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> [False]-              [False] -> [True]-              [True] -> []-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> [False]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [False]-              [False] -> []-              [True] -> [False]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [False]-              [False] -> []-              [True] -> [True]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [False]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> [False]-              [True] -> []-              [False,False] -> [False]-              [False,True] -> [False]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [False]-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> [True]-              [True] -> []-              [False,False] -> [True]-              [False,True] -> [True]-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> [True]-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> []-              [True] -> [False]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [False]-              [True,True] -> [False]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> []-              [True] -> [True]-              [False,False] -> []-              [False,True] -> []-              [True,False] -> [True]-              [True,True] -> [True]-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [True]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [False,False]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [False,True]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [True,False]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    , \x -> case x of-              [] -> [True,True]-              [False] -> []-              [True] -> []-              [False,False] -> []-              [False,True] -> []-              [True,False] -> []-              [True,True] -> []-              [False,False,False] -> []-              ...-    ]-  , ...-  ]
− tests/diff/tiers-mixed-Int-Int-Int.out
@@ -1,3625 +0,0 @@-map length (tiers :: [[ Int->Int->Int ]])  =  [4,12,58,287,...]--length (list :: [ Int->Int->Int ])  =  Infinity--allUnique (list :: [ Int->Int->Int ])  =  False--ratioRepetitions (list :: [ Int->Int->Int ])  =  315 % 361--tiers :: [Int->Int->Int]  =-  [ [ \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    ]-  , [ \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> -1-                (0,1) -> -1-                (1,0) -> -1-                (0,-1) -> -1-                (1,1) -> -1-                (-1,0) -> -1-                (0,2) -> -1-                (1,-1) -> -1-                ...-    , \x y -> case (x,y) of-                (0,0) -> -1-                (0,1) -> -1-                (1,0) -> -1-                (0,-1) -> -1-                (1,1) -> -1-                (-1,0) -> -1-                (0,2) -> -1-                (1,-1) -> -1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> -1-                (0,1) -> -1-                (1,0) -> -1-                (0,-1) -> -1-                (1,1) -> -1-                (-1,0) -> -1-                (0,2) -> -1-                (1,-1) -> -1-                ...-    , \x y -> case (x,y) of-                (0,0) -> -1-                (0,1) -> -1-                (1,0) -> -1-                (0,-1) -> -1-                (1,1) -> -1-                (-1,0) -> -1-                (0,2) -> -1-                (1,-1) -> -1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> -1-                (0,1) -> -1-                (1,0) -> 0-                (0,-1) -> -1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> -1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> -1-                (0,1) -> -1-                (1,0) -> 0-                (0,-1) -> -1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> -1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> -1-                (0,1) -> -1-                (1,0) -> 0-                (0,-1) -> -1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> -1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> -1-                (0,1) -> -1-                (1,0) -> 0-                (0,-1) -> -1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> -1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> -1-                (0,-1) -> 0-                (1,1) -> -1-                (-1,0) -> -1-                (0,2) -> 0-                (1,-1) -> -1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> -1-                (0,-1) -> 0-                (1,1) -> -1-                (-1,0) -> -1-                (0,2) -> 0-                (1,-1) -> -1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> -1-                (0,-1) -> 0-                (1,1) -> -1-                (-1,0) -> -1-                (0,2) -> 0-                (1,-1) -> -1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> -1-                (0,-1) -> 0-                (1,1) -> -1-                (-1,0) -> -1-                (0,2) -> 0-                (1,-1) -> -1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 0-                (1,0) -> -1-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> -1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> -1-                (1,0) -> 0-                (0,-1) -> -1-                (1,1) -> -1-                (-1,0) -> 0-                (0,2) -> -1-                (1,-1) -> -1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 2-                (1,0) -> 2-                (0,-1) -> 2-                (1,1) -> 2-                (-1,0) -> 2-                (0,2) -> 2-                (1,-1) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 2-                (1,0) -> 2-                (0,-1) -> 2-                (1,1) -> 2-                (-1,0) -> 2-                (0,2) -> 2-                (1,-1) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> -1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> -1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> -1-                (1,0) -> -1-                (0,-1) -> 0-                (1,1) -> -1-                (-1,0) -> -1-                (0,2) -> -1-                (1,-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) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 0-                (1,0) -> -1-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> -1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> -1-                (1,0) -> 0-                (0,-1) -> -1-                (1,1) -> -1-                (-1,0) -> 0-                (0,2) -> -1-                (1,-1) -> -1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 2-                (1,0) -> 2-                (0,-1) -> 2-                (1,1) -> 2-                (-1,0) -> 2-                (0,2) -> 2-                (1,-1) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 2-                (1,0) -> 2-                (0,-1) -> 2-                (1,1) -> 2-                (-1,0) -> 2-                (0,2) -> 2-                (1,-1) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> -1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> -1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> -1-                (1,0) -> -1-                (0,-1) -> 0-                (1,1) -> -1-                (-1,0) -> -1-                (0,2) -> -1-                (1,-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) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> -1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> -1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> -1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> -1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 1-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 1-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,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,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) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> -1-                (0,1) -> -1-                (1,0) -> -1-                (0,-1) -> -1-                (1,1) -> -1-                (-1,0) -> 0-                (0,2) -> -1-                (1,-1) -> -1-                ...-    , \x y -> case (x,y) of-                (0,0) -> -1-                (0,1) -> -1-                (1,0) -> -1-                (0,-1) -> -1-                (1,1) -> -1-                (-1,0) -> 0-                (0,2) -> -1-                (1,-1) -> -1-                ...-    , \x y -> case (x,y) of-                (0,0) -> -1-                (0,1) -> -1-                (1,0) -> -1-                (0,-1) -> -1-                (1,1) -> -1-                (-1,0) -> 0-                (0,2) -> -1-                (1,-1) -> -1-                ...-    , \x y -> case (x,y) of-                (0,0) -> -1-                (0,1) -> -1-                (1,0) -> -1-                (0,-1) -> -1-                (1,1) -> -1-                (-1,0) -> 0-                (0,2) -> -1-                (1,-1) -> -1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,-1) -> 1-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 1-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,-1) -> 0-                (1,1) -> 1-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,-1) -> 0-                (1,1) -> 0-                (-1,0) -> 0-                (0,2) -> 0-                (1,-1) -> 0-                ...-    ]-  , ...-  ]
− tests/diff/tiers-mixed-Int-Int.out
@@ -1,2997 +0,0 @@-map length (tiers :: [[ Int->Int ]])  =  [2,3,8,20,61,204,...]--length (list :: [ Int->Int ])  =  Infinity--allUnique (list :: [ Int->Int ])  =  False--ratioRepetitions (list :: [ Int->Int ])  =  211 % 298--tiers :: [Int->Int]  =-  [ [ \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    ]-  , [ \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    ]-  , [ \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> -1-              1 -> -1-              -1 -> -1-              2 -> -1-              -2 -> -1-              3 -> -1-              -3 -> -1-              4 -> -1-              ...-    , \x -> case x of-              0 -> -1-              1 -> -1-              -1 -> -1-              2 -> -1-              -2 -> -1-              3 -> -1-              -3 -> -1-              4 -> -1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    ]-  , [ \x -> case x of-              0 -> -1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> -1-              -1 -> -1-              2 -> -1-              -2 -> -1-              3 -> -1-              -3 -> -1-              4 -> -1-              ...-    , \x -> case x of-              0 -> 2-              1 -> 2-              -1 -> 2-              2 -> 2-              -2 -> 2-              3 -> 2-              -3 -> 2-              4 -> 2-              ...-    , \x -> case x of-              0 -> 2-              1 -> 2-              -1 -> 2-              2 -> 2-              -2 -> 2-              3 -> 2-              -3 -> 2-              4 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -1-              2 -> 0-              -2 -> -1-              3 -> 0-              -3 -> -1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> -1-              1 -> -1-              -1 -> 0-              2 -> -1-              -2 -> 0-              3 -> -1-              -3 -> 0-              4 -> -1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    ]-  , [ \x -> case x of-              0 -> 2-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> -1-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> -1-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> -1-              -1 -> -1-              2 -> -1-              -2 -> -1-              3 -> -1-              -3 -> -1-              4 -> -1-              ...-    , \x -> case x of-              0 -> -1-              1 -> 0-              -1 -> -1-              2 -> -1-              -2 -> -1-              3 -> -1-              -3 -> -1-              4 -> -1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              -1 -> 2-              2 -> 2-              -2 -> 2-              3 -> 2-              -3 -> 2-              4 -> 2-              ...-    , \x -> case x of-              0 -> -2-              1 -> -2-              -1 -> -2-              2 -> -2-              -2 -> -2-              3 -> -2-              -3 -> -2-              4 -> -2-              ...-    , \x -> case x of-              0 -> -2-              1 -> -2-              -1 -> -2-              2 -> -2-              -2 -> -2-              3 -> -2-              -3 -> -2-              4 -> -2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 2-              2 -> 0-              -2 -> 2-              3 -> 0-              -3 -> 2-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> -1-              3 -> 0-              -3 -> -1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> -1-              2 -> 1-              -2 -> -1-              3 -> 1-              -3 -> -1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -1-              2 -> 0-              -2 -> -1-              3 -> 0-              -3 -> -1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> -1-              1 -> -1-              -1 -> 1-              2 -> -1-              -2 -> 1-              3 -> -1-              -3 -> 1-              4 -> -1-              ...-    , \x -> case x of-              0 -> -1-              1 -> -1-              -1 -> 0-              2 -> -1-              -2 -> 0-              3 -> -1-              -3 -> 0-              4 -> -1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 2-              -1 -> 0-              2 -> 2-              -2 -> 0-              3 -> 2-              -3 -> 0-              4 -> 2-              ...-    , \x -> case x of-              0 -> -1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> -1-              -1 -> 0-              2 -> -1-              -2 -> 0-              3 -> -1-              -3 -> 0-              4 -> -1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    ]-  , [ \x -> case x of-              0 -> -2-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> -1-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> -1-              1 -> 1-              -1 -> -1-              2 -> -1-              -2 -> -1-              3 -> -1-              -3 -> -1-              4 -> -1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -1-              2 -> -1-              -2 -> -1-              3 -> -1-              -3 -> -1-              4 -> -1-              ...-    , \x -> case x of-              0 -> -1-              1 -> -1-              -1 -> 0-              2 -> -1-              -2 -> -1-              3 -> -1-              -3 -> -1-              4 -> -1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 2-              -1 -> 2-              2 -> 2-              -2 -> 2-              3 -> 2-              -3 -> 2-              4 -> 2-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              -1 -> 2-              2 -> 2-              -2 -> 2-              3 -> 2-              -3 -> 2-              4 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> -2-              -1 -> -2-              2 -> -2-              -2 -> -2-              3 -> -2-              -3 -> -2-              4 -> -2-              ...-    , \x -> case x of-              0 -> 3-              1 -> 3-              -1 -> 3-              2 -> 3-              -2 -> 3-              3 -> 3-              -3 -> 3-              4 -> 3-              ...-    , \x -> case x of-              0 -> 3-              1 -> 3-              -1 -> 3-              2 -> 3-              -2 -> 3-              3 -> 3-              -3 -> 3-              4 -> 3-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -2-              2 -> 0-              -2 -> -2-              3 -> 0-              -3 -> -2-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 2-              3 -> 0-              -3 -> 2-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> -1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> -1-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> -1-              3 -> 0-              -3 -> -1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> -1-              3 -> 0-              -3 -> -1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 2-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 2-              2 -> 1-              -2 -> 2-              3 -> 1-              -3 -> 2-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> -1-              3 -> 1-              -3 -> -1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> -1-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 2-              2 -> 0-              -2 -> 2-              3 -> 0-              -3 -> 2-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> -1-              3 -> 0-              -3 -> -1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> -1-              1 -> -1-              -1 -> -1-              2 -> -1-              -2 -> -1-              3 -> -1-              -3 -> -1-              4 -> -1-              ...-    , \x -> case x of-              0 -> -1-              1 -> -1-              -1 -> 0-              2 -> -1-              -2 -> 1-              3 -> -1-              -3 -> 1-              4 -> -1-              ...-    , \x -> case x of-              0 -> -1-              1 -> -1-              -1 -> 0-              2 -> -1-              -2 -> 0-              3 -> -1-              -3 -> 0-              4 -> -1-              ...-    , \x -> case x of-              0 -> -1-              1 -> -1-              -1 -> 1-              2 -> -1-              -2 -> 0-              3 -> -1-              -3 -> 0-              4 -> -1-              ...-    , \x -> case x of-              0 -> -1-              1 -> -1-              -1 -> 0-              2 -> -1-              -2 -> 0-              3 -> -1-              -3 -> 0-              4 -> -1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> -1-              2 -> 0-              -2 -> -1-              3 -> 0-              -3 -> -1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -1-              2 -> 0-              -2 -> -1-              3 -> 0-              -3 -> -1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> -1-              2 -> 1-              -2 -> -1-              3 -> 1-              -3 -> -1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> -1-              2 -> 0-              -2 -> -1-              3 -> 0-              -3 -> -1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 2-              -1 -> 1-              2 -> 2-              -2 -> 1-              3 -> 2-              -3 -> 1-              4 -> 2-              ...-    , \x -> case x of-              0 -> 2-              1 -> 2-              -1 -> 0-              2 -> 2-              -2 -> 0-              3 -> 2-              -3 -> 0-              4 -> 2-              ...-    , \x -> case x of-              0 -> -1-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> -1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> -1-              -1 -> 1-              2 -> -1-              -2 -> 1-              3 -> -1-              -3 -> 1-              4 -> -1-              ...-    , \x -> case x of-              0 -> 0-              1 -> -1-              -1 -> 0-              2 -> -1-              -2 -> 0-              3 -> -1-              -3 -> 0-              4 -> -1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 1-              -2 -> 1-              3 -> 1-              -3 -> 1-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 1-              2 -> 0-              -2 -> 1-              3 -> 0-              -3 -> 1-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> -2-              1 -> -2-              -1 -> 0-              2 -> -2-              -2 -> 0-              3 -> -2-              -3 -> 0-              4 -> -2-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> -1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> -1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> -1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> -1-              -1 -> 0-              2 -> -1-              -2 -> 0-              3 -> -1-              -3 -> 0-              4 -> -1-              ...-    , \x -> case x of-              0 -> 0-              1 -> -1-              -1 -> 0-              2 -> -1-              -2 -> 0-              3 -> -1-              -3 -> 0-              4 -> -1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              -1 -> 0-              2 -> 2-              -2 -> 0-              3 -> 2-              -3 -> 0-              4 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> -1-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> -1-              -2 -> 0-              3 -> -1-              -3 -> 0-              4 -> -1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 1-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 1-              -3 -> 0-              4 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              -1 -> 0-              2 -> 0-              -2 -> 0-              3 -> 0-              -3 -> 0-              4 -> 0-              ...-    ]-  , ...-  ]
− tests/diff/tiers-mixed-Ints-Ints.out
@@ -1,475 +0,0 @@-map length (tiers :: [[ [Int]->[Int] ]])  =  [2,3,10,31,...]--length (list :: [ [Int]->[Int] ])  =  Infinity--allUnique (list :: [ [Int]->[Int] ])  =  False--ratioRepetitions (list :: [ [Int]->[Int] ])  =  13 % 23--tiers :: [[Int]->[Int]]  =-  [ [ \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [0]-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [-1] -> [0]-              ...-    , \x -> case x of-              [] -> [0]-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [-1] -> [0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [-1] -> [0]-              ...-    , \x -> case x of-              [] -> [0,0]-              [0] -> [0,0]-              [0,0] -> [0,0]-              [1] -> [0,0]-              [0,0,0] -> [0,0]-              [0,1] -> [0,0]-              [1,0] -> [0,0]-              [-1] -> [0,0]-              ...-    , \x -> case x of-              [] -> [1]-              [0] -> [1]-              [0,0] -> [1]-              [1] -> [1]-              [0,0,0] -> [1]-              [0,1] -> [1]-              [1,0] -> [1]-              [-1] -> [1]-              ...-    , \x -> case x of-              [] -> [0,0]-              [0] -> [0,0]-              [0,0] -> [0,0]-              [1] -> [0,0]-              [0,0,0] -> [0,0]-              [0,1] -> [0,0]-              [1,0] -> [0,0]-              [-1] -> [0,0]-              ...-    , \x -> case x of-              [] -> [1]-              [0] -> [1]-              [0,0] -> [1]-              [1] -> [1]-              [0,0,0] -> [1]-              [0,1] -> [1]-              [1,0] -> [1]-              [-1] -> [1]-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [-1] -> [0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> [0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [0,0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> [1]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0]-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> [0]-              [0] -> []-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [-1] -> [0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0,0]-              [0,0] -> [0,0]-              [1] -> [0,0]-              [0,0,0] -> [0,0]-              [0,1] -> [0,0]-              [1,0] -> [0,0]-              [-1] -> [0,0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> [1]-              [0,0] -> [1]-              [1] -> [1]-              [0,0,0] -> [1]-              [0,1] -> [1]-              [1,0] -> [1]-              [-1] -> [1]-              ...-    , \x -> case x of-              [] -> [0,0,0]-              [0] -> [0,0,0]-              [0,0] -> [0,0,0]-              [1] -> [0,0,0]-              [0,0,0] -> [0,0,0]-              [0,1] -> [0,0,0]-              [1,0] -> [0,0,0]-              [-1] -> [0,0,0]-              ...-    , \x -> case x of-              [] -> [0,1]-              [0] -> [0,1]-              [0,0] -> [0,1]-              [1] -> [0,1]-              [0,0,0] -> [0,1]-              [0,1] -> [0,1]-              [1,0] -> [0,1]-              [-1] -> [0,1]-              ...-    , \x -> case x of-              [] -> [1,0]-              [0] -> [1,0]-              [0,0] -> [1,0]-              [1] -> [1,0]-              [0,0,0] -> [1,0]-              [0,1] -> [1,0]-              [1,0] -> [1,0]-              [-1] -> [1,0]-              ...-    , \x -> case x of-              [] -> [-1]-              [0] -> [-1]-              [0,0] -> [-1]-              [1] -> [-1]-              [0,0,0] -> [-1]-              [0,1] -> [-1]-              [1,0] -> [-1]-              [-1] -> [-1]-              ...-    , \x -> case x of-              [] -> [0,0,0]-              [0] -> [0,0,0]-              [0,0] -> [0,0,0]-              [1] -> [0,0,0]-              [0,0,0] -> [0,0,0]-              [0,1] -> [0,0,0]-              [1,0] -> [0,0,0]-              [-1] -> [0,0,0]-              ...-    , \x -> case x of-              [] -> [0,1]-              [0] -> [0,1]-              [0,0] -> [0,1]-              [1] -> [0,1]-              [0,0,0] -> [0,1]-              [0,1] -> [0,1]-              [1,0] -> [0,1]-              [-1] -> [0,1]-              ...-    , \x -> case x of-              [] -> [1,0]-              [0] -> [1,0]-              [0,0] -> [1,0]-              [1] -> [1,0]-              [0,0,0] -> [1,0]-              [0,1] -> [1,0]-              [1,0] -> [1,0]-              [-1] -> [1,0]-              ...-    , \x -> case x of-              [] -> [-1]-              [0] -> [-1]-              [0,0] -> [-1]-              [1] -> [-1]-              [0,0,0] -> [-1]-              [0,1] -> [-1]-              [1,0] -> [-1]-              [-1] -> [-1]-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0,0]-              [0,0] -> [0,0]-              [1] -> [0,0]-              [0,0,0] -> [0,0]-              [0,1] -> [0,0]-              [1,0] -> [0,0]-              [-1] -> [0,0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> [1]-              [0,0] -> [1]-              [1] -> [1]-              [0,0,0] -> [1]-              [0,1] -> [1]-              [1,0] -> [1]-              [-1] -> [1]-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> [0]-              [1] -> []-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [-1] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0]-              [0,0] -> []-              [1] -> [0]-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> [0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> [0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [-1] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> [0]-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [-1] -> [0]-              ...-    , \x -> case x of-              [] -> [0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> [0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> [0,0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    , \x -> case x of-              [] -> [1]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [-1] -> []-              ...-    ]-  , ...-  ]
− tests/diff/tiers-mixed-MBool-Bool.out
@@ -1,75 +0,0 @@-map length (tiers :: [[ Maybe Bool->Bool ]])  =  [16]--length (list :: [ Maybe Bool->Bool ])  =  Infinity--allUnique (list :: [ Maybe Bool->Bool ])  =  False--ratioRepetitions (list :: [ Maybe Bool->Bool ])  =  1 % 2--tiers :: [Maybe Bool->Bool]  =-  [ [ \x -> case x of-              Nothing -> False-              Just False -> False-              Just True -> False-    , \x -> case x of-              Nothing -> False-              Just False -> False-              Just True -> True-    , \x -> case x of-              Nothing -> False-              Just False -> True-              Just True -> False-    , \x -> case x of-              Nothing -> False-              Just False -> True-              Just True -> True-    , \x -> case x of-              Nothing -> True-              Just False -> False-              Just True -> False-    , \x -> case x of-              Nothing -> True-              Just False -> False-              Just True -> True-    , \x -> case x of-              Nothing -> True-              Just False -> True-              Just True -> False-    , \x -> case x of-              Nothing -> True-              Just False -> True-              Just True -> True-    , \x -> case x of-              Nothing -> False-              Just False -> False-              Just True -> False-    , \x -> case x of-              Nothing -> False-              Just False -> True-              Just True -> False-    , \x -> case x of-              Nothing -> False-              Just False -> False-              Just True -> True-    , \x -> case x of-              Nothing -> False-              Just False -> True-              Just True -> True-    , \x -> case x of-              Nothing -> True-              Just False -> False-              Just True -> False-    , \x -> case x of-              Nothing -> True-              Just False -> True-              Just True -> False-    , \x -> case x of-              Nothing -> True-              Just False -> False-              Just True -> True-    , \x -> case x of-              Nothing -> True-              Just False -> True-              Just True -> True-    ]-  ]
− tests/diff/tiers-mixed-MBool-MBool.out
@@ -1,230 +0,0 @@-map length (tiers :: [[ Maybe Bool->Maybe Bool ]])  =  [2,12,24,16]--length (list :: [ Maybe Bool->Maybe Bool ])  =  Infinity--allUnique (list :: [ Maybe Bool->Maybe Bool ])  =  False--ratioRepetitions (list :: [ Maybe Bool->Maybe Bool ])  =  1 % 2--tiers :: [Maybe Bool->Maybe Bool]  =-  [ [ \x -> case x of-              Nothing -> Nothing-              Just False -> Nothing-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Nothing-              Just False -> Nothing-              Just True -> Nothing-    ]-  , [ \x -> case x of-              Nothing -> Nothing-              Just False -> Nothing-              Just True -> Just False-    , \x -> case x of-              Nothing -> Nothing-              Just False -> Nothing-              Just True -> Just True-    , \x -> case x of-              Nothing -> Nothing-              Just False -> Just False-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Nothing-              Just False -> Just True-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Just False-              Just False -> Nothing-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Just True-              Just False -> Nothing-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Nothing-              Just False -> Just False-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Nothing-              Just False -> Just True-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Nothing-              Just False -> Nothing-              Just True -> Just False-    , \x -> case x of-              Nothing -> Nothing-              Just False -> Nothing-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just False-              Just False -> Nothing-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Just True-              Just False -> Nothing-              Just True -> Nothing-    ]-  , [ \x -> case x of-              Nothing -> Nothing-              Just False -> Just False-              Just True -> 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 False -> Just True-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just False-              Just False -> Nothing-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just False-              Just False -> Nothing-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just False-              Just True -> Nothing-    , \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-              Nothing -> Just True-              Just False -> Nothing-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just False-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just True-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Nothing-              Just False -> Just False-              Just True -> Just False-    , \x -> case x of-              Nothing -> Nothing-              Just False -> Just True-              Just True -> 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 True-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just False-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just True-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Just False-              Just False -> Nothing-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just False-              Just False -> Nothing-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just False-              Just True -> Nothing-    , \x -> case x of-              Nothing -> Just True-              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-              Nothing -> Just True-              Just False -> Nothing-              Just True -> Just True-    ]-  , [ \x -> case x of-              Nothing -> Just False-              Just False -> Just False-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just False-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just True-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just True-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just False-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just False-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just True-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just True-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just False-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just True-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just False-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just False-              Just False -> Just True-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just False-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just True-              Just True -> Just False-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just False-              Just True -> Just True-    , \x -> case x of-              Nothing -> Just True-              Just False -> Just True-              Just True -> Just True-    ]-  ]
− tests/diff/tiers-mixed-Nat,Nat-Nat.out
@@ -1,745 +0,0 @@-map length (tiers :: [[ (Nat,Nat)->Nat ]])  =  [2,4,14,53,...]--length (list :: [ (Nat,Nat)->Nat ])  =  Infinity--allUnique (list :: [ (Nat,Nat)->Nat ])  =  False--ratioRepetitions (list :: [ (Nat,Nat)->Nat ])  =  41 % 73--tiers :: [(Nat,Nat)->Nat]  =-  [ [ \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    ]-  , [ \x -> case x of-              (0,0) -> 1-              (0,1) -> 1-              (1,0) -> 1-              (0,2) -> 1-              (1,1) -> 1-              (2,0) -> 1-              (0,3) -> 1-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 1-              (1,0) -> 1-              (0,2) -> 1-              (1,1) -> 1-              (2,0) -> 1-              (0,3) -> 1-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    ]-  , [ \x -> case x of-              (0,0) -> 1-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 1-              (1,0) -> 1-              (0,2) -> 1-              (1,1) -> 1-              (2,0) -> 1-              (0,3) -> 1-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 2-              (0,1) -> 2-              (1,0) -> 2-              (0,2) -> 2-              (1,1) -> 2-              (2,0) -> 2-              (0,3) -> 2-              (1,2) -> 2-              ...-    , \x -> case x of-              (0,0) -> 2-              (0,1) -> 2-              (1,0) -> 2-              (0,2) -> 2-              (1,1) -> 2-              (2,0) -> 2-              (0,3) -> 2-              (1,2) -> 2-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 1-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 1-              (2,0) -> 0-              (0,3) -> 1-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 0-              (1,0) -> 1-              (0,2) -> 1-              (1,1) -> 0-              (2,0) -> 1-              (0,3) -> 0-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 1-              (0,2) -> 0-              (1,1) -> 1-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 1-              (1,0) -> 0-              (0,2) -> 1-              (1,1) -> 0-              (2,0) -> 1-              (0,3) -> 1-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    ]-  , [ \x -> case x of-              (0,0) -> 2-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 1-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 1-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 0-              (1,0) -> 1-              (0,2) -> 1-              (1,1) -> 1-              (2,0) -> 1-              (0,3) -> 1-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 1-              (1,0) -> 0-              (0,2) -> 1-              (1,1) -> 1-              (2,0) -> 1-              (0,3) -> 1-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 2-              (1,0) -> 2-              (0,2) -> 2-              (1,1) -> 2-              (2,0) -> 2-              (0,3) -> 2-              (1,2) -> 2-              ...-    , \x -> case x of-              (0,0) -> 3-              (0,1) -> 3-              (1,0) -> 3-              (0,2) -> 3-              (1,1) -> 3-              (2,0) -> 3-              (0,3) -> 3-              (1,2) -> 3-              ...-    , \x -> case x of-              (0,0) -> 3-              (0,1) -> 3-              (1,0) -> 3-              (0,2) -> 3-              (1,1) -> 3-              (2,0) -> 3-              (0,3) -> 3-              (1,2) -> 3-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 2-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 2-              (2,0) -> 0-              (0,3) -> 2-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 1-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 1-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 1-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 1-              (1,0) -> 1-              (0,2) -> 1-              (1,1) -> 1-              (2,0) -> 1-              (0,3) -> 1-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 0-              (1,0) -> 1-              (0,2) -> 1-              (1,1) -> 0-              (2,0) -> 1-              (0,3) -> 0-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 1-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 1-              (2,0) -> 0-              (0,3) -> 1-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 2-              (0,1) -> 0-              (1,0) -> 2-              (0,2) -> 2-              (1,1) -> 0-              (2,0) -> 2-              (0,3) -> 0-              (1,2) -> 2-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 1-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 0-              (1,0) -> 1-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 1-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 2-              (0,2) -> 0-              (1,1) -> 2-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 2-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 1-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 1-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 1-              (0,2) -> 0-              (1,1) -> 1-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 1-              (1,0) -> 1-              (0,2) -> 1-              (1,1) -> 1-              (2,0) -> 1-              (0,3) -> 1-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 1-              (1,0) -> 0-              (0,2) -> 1-              (1,1) -> 0-              (2,0) -> 1-              (0,3) -> 1-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 1-              (1,0) -> 0-              (0,2) -> 1-              (1,1) -> 0-              (2,0) -> 1-              (0,3) -> 1-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 1-              (0,2) -> 0-              (1,1) -> 1-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 1-              (0,2) -> 0-              (1,1) -> 1-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 1-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 2-              (0,1) -> 2-              (1,0) -> 0-              (0,2) -> 2-              (1,1) -> 0-              (2,0) -> 2-              (0,3) -> 2-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 1-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 1-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 1-              (1,1) -> 0-              (2,0) -> 1-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 1-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 1-              (0,1) -> 1-              (1,0) -> 0-              (0,2) -> 1-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 1-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    , \x -> case x of-              (0,0) -> 0-              (0,1) -> 0-              (1,0) -> 0-              (0,2) -> 0-              (1,1) -> 0-              (2,0) -> 0-              (0,3) -> 0-              (1,2) -> 0-              ...-    ]-  , ...-  ]
− tests/diff/tiers-mixed-Nat-Nat-Nat.out
@@ -1,3625 +0,0 @@-map length (tiers :: [[ Nat->Nat->Nat ]])  =  [4,12,58,287,...]--length (list :: [ Nat->Nat->Nat ])  =  Infinity--allUnique (list :: [ Nat->Nat->Nat ])  =  False--ratioRepetitions (list :: [ Nat->Nat->Nat ])  =  313 % 361--tiers :: [Nat->Nat->Nat]  =-  [ [ \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    ]-  , [ \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 2-                (1,0) -> 2-                (0,2) -> 2-                (1,1) -> 2-                (2,0) -> 2-                (0,3) -> 2-                (1,2) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 2-                (1,0) -> 2-                (0,2) -> 2-                (1,1) -> 2-                (2,0) -> 2-                (0,3) -> 2-                (1,2) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 0-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 2-                (1,0) -> 2-                (0,2) -> 2-                (1,1) -> 2-                (2,0) -> 2-                (0,3) -> 2-                (1,2) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 2-                (1,0) -> 2-                (0,2) -> 2-                (1,1) -> 2-                (2,0) -> 2-                (0,3) -> 2-                (1,2) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 0-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 2-                (1,0) -> 0-                (0,2) -> 2-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 2-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 2-                (1,0) -> 0-                (0,2) -> 2-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 2-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 0-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 2-                (1,0) -> 0-                (0,2) -> 2-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 2-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 2-                (1,0) -> 0-                (0,2) -> 2-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 2-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 0-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 2-                (0,2) -> 0-                (1,1) -> 2-                (2,0) -> 2-                (0,3) -> 0-                (1,2) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 2-                (0,2) -> 0-                (1,1) -> 2-                (2,0) -> 2-                (0,3) -> 0-                (1,2) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 2-                (0,2) -> 0-                (1,1) -> 2-                (2,0) -> 2-                (0,3) -> 0-                (1,2) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 2-                (0,2) -> 0-                (1,1) -> 2-                (2,0) -> 2-                (0,3) -> 0-                (1,2) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 0-                (1,0) -> 2-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 2-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 2-                (1,0) -> 0-                (0,2) -> 2-                (1,1) -> 2-                (2,0) -> 0-                (0,3) -> 2-                (1,2) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 3-                (0,1) -> 3-                (1,0) -> 3-                (0,2) -> 3-                (1,1) -> 3-                (2,0) -> 3-                (0,3) -> 3-                (1,2) -> 3-                ...-    , \x y -> case (x,y) of-                (0,0) -> 3-                (0,1) -> 3-                (1,0) -> 3-                (0,2) -> 3-                (1,1) -> 3-                (2,0) -> 3-                (0,3) -> 3-                (1,2) -> 3-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 2-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 2-                (2,0) -> 0-                (0,3) -> 2-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 0-                (1,0) -> 2-                (0,2) -> 2-                (1,1) -> 0-                (2,0) -> 2-                (0,3) -> 0-                (1,2) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 0-                (1,0) -> 2-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 2-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 2-                (1,0) -> 0-                (0,2) -> 2-                (1,1) -> 2-                (2,0) -> 0-                (0,3) -> 2-                (1,2) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 3-                (0,1) -> 3-                (1,0) -> 3-                (0,2) -> 3-                (1,1) -> 3-                (2,0) -> 3-                (0,3) -> 3-                (1,2) -> 3-                ...-    , \x y -> case (x,y) of-                (0,0) -> 3-                (0,1) -> 3-                (1,0) -> 3-                (0,2) -> 3-                (1,1) -> 3-                (2,0) -> 3-                (0,3) -> 3-                (1,2) -> 3-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 2-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 2-                (2,0) -> 0-                (0,3) -> 2-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 0-                (1,0) -> 2-                (0,2) -> 2-                (1,1) -> 0-                (2,0) -> 2-                (0,3) -> 0-                (1,2) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (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) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 2-                (0,2) -> 0-                (1,1) -> 2-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 2-                (0,2) -> 0-                (1,1) -> 2-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (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) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 2-                (0,2) -> 0-                (1,1) -> 2-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 2-                (0,2) -> 0-                (1,1) -> 2-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 2-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 1-                (0,2) -> 1-                (1,1) -> 1-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 1-                (0,2) -> 0-                (1,1) -> 1-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 1-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 2-                (1,0) -> 0-                (0,2) -> 2-                (1,1) -> 0-                (2,0) -> 2-                (0,3) -> 2-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 2-                (1,0) -> 0-                (0,2) -> 2-                (1,1) -> 0-                (2,0) -> 2-                (0,3) -> 2-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 2-                (1,0) -> 0-                (0,2) -> 2-                (1,1) -> 0-                (2,0) -> 2-                (0,3) -> 2-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 2-                (0,1) -> 2-                (1,0) -> 0-                (0,2) -> 2-                (1,1) -> 0-                (2,0) -> 2-                (0,3) -> 2-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 0-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 1-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (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,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 1-                (0,1) -> 1-                (1,0) -> 0-                (0,2) -> 1-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 1-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    , \x y -> case (x,y) of-                (0,0) -> 0-                (0,1) -> 0-                (1,0) -> 0-                (0,2) -> 0-                (1,1) -> 0-                (2,0) -> 0-                (0,3) -> 0-                (1,2) -> 0-                ...-    ]-  , ...-  ]
− tests/diff/tiers-mixed-Nat-Nat.out
@@ -1,2997 +0,0 @@-map length (tiers :: [[ Nat->Nat ]])  =  [2,3,8,20,61,204,...]--length (list :: [ Nat->Nat ])  =  Infinity--allUnique (list :: [ Nat->Nat ])  =  False--ratioRepetitions (list :: [ Nat->Nat ])  =  85 % 149--tiers :: [Nat->Nat]  =-  [ [ \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    ]-  , [ \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    ]-  , [ \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 2-              1 -> 2-              2 -> 2-              3 -> 2-              4 -> 2-              5 -> 2-              6 -> 2-              7 -> 2-              ...-    , \x -> case x of-              0 -> 2-              1 -> 2-              2 -> 2-              3 -> 2-              4 -> 2-              5 -> 2-              6 -> 2-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    ]-  , [ \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 2-              3 -> 2-              4 -> 2-              5 -> 2-              6 -> 2-              7 -> 2-              ...-    , \x -> case x of-              0 -> 3-              1 -> 3-              2 -> 3-              3 -> 3-              4 -> 3-              5 -> 3-              6 -> 3-              7 -> 3-              ...-    , \x -> case x of-              0 -> 3-              1 -> 3-              2 -> 3-              3 -> 3-              4 -> 3-              5 -> 3-              6 -> 3-              7 -> 3-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-              3 -> 2-              4 -> 0-              5 -> 2-              6 -> 0-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 2-              3 -> 0-              4 -> 2-              5 -> 0-              6 -> 2-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    ]-  , [ \x -> case x of-              0 -> 3-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 1-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 2-              2 -> 2-              3 -> 2-              4 -> 2-              5 -> 2-              6 -> 2-              7 -> 2-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 2-              3 -> 2-              4 -> 2-              5 -> 2-              6 -> 2-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 3-              2 -> 3-              3 -> 3-              4 -> 3-              5 -> 3-              6 -> 3-              7 -> 3-              ...-    , \x -> case x of-              0 -> 4-              1 -> 4-              2 -> 4-              3 -> 4-              4 -> 4-              5 -> 4-              6 -> 4-              7 -> 4-              ...-    , \x -> case x of-              0 -> 4-              1 -> 4-              2 -> 4-              3 -> 4-              4 -> 4-              5 -> 4-              6 -> 4-              7 -> 4-              ...-    , \x -> case x of-              0 -> 0-              1 -> 3-              2 -> 0-              3 -> 3-              4 -> 0-              5 -> 3-              6 -> 0-              7 -> 3-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 2-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 2-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 2-              2 -> 1-              3 -> 2-              4 -> 1-              5 -> 2-              6 -> 1-              7 -> 2-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-              3 -> 2-              4 -> 0-              5 -> 2-              6 -> 0-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 1-              2 -> 2-              3 -> 1-              4 -> 2-              5 -> 1-              6 -> 2-              7 -> 1-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 2-              3 -> 0-              4 -> 2-              5 -> 0-              6 -> 2-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 1-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 3-              1 -> 0-              2 -> 3-              3 -> 0-              4 -> 3-              5 -> 0-              6 -> 3-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 2-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 2-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 2-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    ]-  , [ \x -> case x of-              0 -> 4-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 3-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 2-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 3-              1 -> 1-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 2-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 2-              1 -> 1-              2 -> 2-              3 -> 2-              4 -> 2-              5 -> 2-              6 -> 2-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 2-              3 -> 2-              4 -> 2-              5 -> 2-              6 -> 2-              7 -> 2-              ...-    , \x -> case x of-              0 -> 2-              1 -> 2-              2 -> 0-              3 -> 2-              4 -> 2-              5 -> 2-              6 -> 2-              7 -> 2-              ...-    , \x -> case x of-              0 -> 1-              1 -> 3-              2 -> 3-              3 -> 3-              4 -> 3-              5 -> 3-              6 -> 3-              7 -> 3-              ...-    , \x -> case x of-              0 -> 3-              1 -> 0-              2 -> 3-              3 -> 3-              4 -> 3-              5 -> 3-              6 -> 3-              7 -> 3-              ...-    , \x -> case x of-              0 -> 0-              1 -> 4-              2 -> 4-              3 -> 4-              4 -> 4-              5 -> 4-              6 -> 4-              7 -> 4-              ...-    , \x -> case x of-              0 -> 5-              1 -> 5-              2 -> 5-              3 -> 5-              4 -> 5-              5 -> 5-              6 -> 5-              7 -> 5-              ...-    , \x -> case x of-              0 -> 5-              1 -> 5-              2 -> 5-              3 -> 5-              4 -> 5-              5 -> 5-              6 -> 5-              7 -> 5-              ...-    , \x -> case x of-              0 -> 0-              1 -> 4-              2 -> 0-              3 -> 4-              4 -> 0-              5 -> 4-              6 -> 0-              7 -> 4-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 3-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 3-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 2-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 2-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 2-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 2-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 2-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 3-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 3-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 2-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 3-              2 -> 1-              3 -> 3-              4 -> 1-              5 -> 3-              6 -> 1-              7 -> 3-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 2-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 2-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 2-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 2-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 3-              2 -> 0-              3 -> 3-              4 -> 0-              5 -> 3-              6 -> 0-              7 -> 3-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 2-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 2-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 2-              2 -> 2-              3 -> 2-              4 -> 2-              5 -> 2-              6 -> 2-              7 -> 2-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 2-              3 -> 1-              4 -> 2-              5 -> 0-              6 -> 2-              7 -> 1-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 2-              3 -> 0-              4 -> 2-              5 -> 0-              6 -> 2-              7 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 1-              2 -> 2-              3 -> 0-              4 -> 2-              5 -> 1-              6 -> 2-              7 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 2-              3 -> 0-              4 -> 2-              5 -> 0-              6 -> 2-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 1-              3 -> 2-              4 -> 0-              5 -> 2-              6 -> 1-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-              3 -> 2-              4 -> 0-              5 -> 2-              6 -> 0-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 2-              2 -> 0-              3 -> 2-              4 -> 1-              5 -> 2-              6 -> 0-              7 -> 2-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-              3 -> 2-              4 -> 0-              5 -> 2-              6 -> 0-              7 -> 2-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 3-              1 -> 1-              2 -> 3-              3 -> 1-              4 -> 3-              5 -> 1-              6 -> 3-              7 -> 1-              ...-    , \x -> case x of-              0 -> 3-              1 -> 0-              2 -> 3-              3 -> 0-              4 -> 3-              5 -> 0-              6 -> 3-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 2-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 2-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 2-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 2-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 1-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 1-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 1-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 1-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 2-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 2-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 1-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-              3 -> 1-              4 -> 0-              5 -> 1-              6 -> 0-              7 -> 1-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 4-              1 -> 0-              2 -> 4-              3 -> 0-              4 -> 4-              5 -> 0-              6 -> 4-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 3-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 3-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 2-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 2-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 2-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 2-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 2-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 2-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 2-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 2-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 1-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 3-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 3-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 2-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 1-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-              3 -> 0-              4 -> 0-              5 -> 0-              6 -> 0-              7 -> 0-              ...-    ]-  , ...-  ]
− tests/diff/tiers-mixed-Nat-U.out
@@ -1,677 +0,0 @@-map length (tiers :: [[ Nat->() ]])  =  [2,1,2,5,14,42,...]--length (list :: [ Nat->() ])  =  Infinity--allUnique (list :: [ Nat->() ])  =  False--ratioRepetitions (list :: [ Nat->() ])  =  65 % 66--tiers :: [Nat->()]  =-  [ [ \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    ]-  , [ \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    ]-  , [ \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    ]-  , [ \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    ]-  , [ \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    ]-  , [ \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    , \x -> case x of-              0 -> ()-              1 -> ()-              2 -> ()-              3 -> ()-              4 -> ()-              5 -> ()-              6 -> ()-              7 -> ()-              ...-    ]-  , ...-  ]
− tests/diff/tiers-mixed-Nat2-Nat2.out
@@ -1,37 +0,0 @@-map length (tiers :: [[ Nat2->Nat2 ]])  =  [2,4,2]--length (list :: [ Nat2->Nat2 ])  =  8--allUnique (list :: [ Nat2->Nat2 ])  =  False--ratioRepetitions (list :: [ Nat2->Nat2 ])  =  1 % 2--tiers :: [Nat2->Nat2]  =-  [ [ \x -> case x of-              0 -> 0-              1 -> 0-    , \x -> case x of-              0 -> 0-              1 -> 0-    ]-  , [ \x -> case x of-              0 -> 0-              1 -> 1-    , \x -> case x of-              0 -> 1-              1 -> 0-    , \x -> case x of-              0 -> 0-              1 -> 1-    , \x -> case x of-              0 -> 1-              1 -> 0-    ]-  , [ \x -> case x of-              0 -> 1-              1 -> 1-    , \x -> case x of-              0 -> 1-              1 -> 1-    ]-  ]
− tests/diff/tiers-mixed-Nat2-Nat3.out
@@ -1,69 +0,0 @@-map length (tiers :: [[ Nat2->Nat3 ]])  =  [2,4,6,4,2]--length (list :: [ Nat2->Nat3 ])  =  Infinity--allUnique (list :: [ Nat2->Nat3 ])  =  False--ratioRepetitions (list :: [ Nat2->Nat3 ])  =  1 % 2--tiers :: [Nat2->Nat3]  =-  [ [ \x -> case x of-              0 -> 0-              1 -> 0-    , \x -> case x of-              0 -> 0-              1 -> 0-    ]-  , [ \x -> case x of-              0 -> 0-              1 -> 1-    , \x -> case x of-              0 -> 1-              1 -> 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-    , \x -> case x of-              0 -> 1-              1 -> 1-    , \x -> case x of-              0 -> 2-              1 -> 0-    , \x -> case x of-              0 -> 0-              1 -> 2-    , \x -> case x of-              0 -> 1-              1 -> 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-    , \x -> case x of-              0 -> 1-              1 -> 2-    , \x -> case x of-              0 -> 2-              1 -> 1-    ]-  , [ \x -> case x of-              0 -> 2-              1 -> 2-    , \x -> case x of-              0 -> 2-              1 -> 2-    ]-  ]
− tests/diff/tiers-mixed-Nat3-Nat2.out
@@ -1,78 +0,0 @@-map length (tiers :: [[ Nat3->Nat2 ]])  =  [2,6,6,2]--length (list :: [ Nat3->Nat2 ])  =  Infinity--allUnique (list :: [ Nat3->Nat2 ])  =  False--ratioRepetitions (list :: [ Nat3->Nat2 ])  =  1 % 2--tiers :: [Nat3->Nat2]  =-  [ [ \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-    ]-  , [ \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-    ]-  , [ \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 1-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 0-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 1-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 0-    ]-  , [ \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 1-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 1-    ]-  ]
− tests/diff/tiers-mixed-Nat3-Nat3.out
@@ -1,233 +0,0 @@-map length (tiers :: [[ Nat3->Nat3 ]])  =  [2,6,12,14,12,6,2]--length (list :: [ Nat3->Nat3 ])  =  Infinity--allUnique (list :: [ Nat3->Nat3 ])  =  False--ratioRepetitions (list :: [ Nat3->Nat3 ])  =  1 % 2--tiers :: [Nat3->Nat3]  =-  [ [ \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 0-    ]-  , [ \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 1-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 0-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 0-    ]-  , [ \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 2-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 1-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 0-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 0-    , \x -> case x of-              0 -> 0-              1 -> 0-              2 -> 2-    , \x -> case x of-              0 -> 0-              1 -> 1-              2 -> 1-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 0-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 1-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 0-    , \x -> case x of-              0 -> 2-              1 -> 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-    , \x -> case x of-              0 -> 1-              1 -> 1-              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-              1 -> 1-              2 -> 2-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 1-    , \x -> case x of-              0 -> 1-              1 -> 0-              2 -> 2-    , \x -> case x of-              0 -> 1-              1 -> 1-              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-              1 -> 2-              2 -> 2-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 2-    , \x -> case x of-              0 -> 1-              1 -> 2-              2 -> 1-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 2-    , \x -> case x of-              0 -> 2-              1 -> 1-              2 -> 1-    , \x -> case x of-              0 -> 2-              1 -> 2-              2 -> 0-    , \x -> case x of-              0 -> 0-              1 -> 2-              2 -> 2-    , \x -> case x of-              0 -> 1-              1 -> 1-              2 -> 2-    , \x -> case x of-              0 -> 1-              1 -> 2-              2 -> 1-    , \x -> case x of-              0 -> 2-              1 -> 0-              2 -> 2-    , \x -> case x of-              0 -> 2-              1 -> 1-              2 -> 1-    , \x -> case x of-              0 -> 2-              1 -> 2-              2 -> 0-    ]-  , [ \x -> case x of-              0 -> 1-              1 -> 2-              2 -> 2-    , \x -> case x of-              0 -> 2-              1 -> 1-              2 -> 2-    , \x -> case x of-              0 -> 2-              1 -> 2-              2 -> 1-    , \x -> case x of-              0 -> 1-              1 -> 2-              2 -> 2-    , \x -> case x of-              0 -> 2-              1 -> 1-              2 -> 2-    , \x -> case x of-              0 -> 2-              1 -> 2-              2 -> 1-    ]-  , [ \x -> case x of-              0 -> 2-              1 -> 2-              2 -> 2-    , \x -> case x of-              0 -> 2-              1 -> 2-              2 -> 2-    ]-  ]
− tests/diff/tiers-mixed-Nats-Nats.out
@@ -1,475 +0,0 @@-map length (tiers :: [[ [Nat]->[Nat] ]])  =  [2,3,10,31,...]--length (list :: [ [Nat]->[Nat] ])  =  Infinity--allUnique (list :: [ [Nat]->[Nat] ])  =  False--ratioRepetitions (list :: [ [Nat]->[Nat] ])  =  13 % 23--tiers :: [[Nat]->[Nat]]  =-  [ [ \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [0]-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [2] -> [0]-              ...-    , \x -> case x of-              [] -> [0]-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [2] -> [0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [2] -> [0]-              ...-    , \x -> case x of-              [] -> [0,0]-              [0] -> [0,0]-              [0,0] -> [0,0]-              [1] -> [0,0]-              [0,0,0] -> [0,0]-              [0,1] -> [0,0]-              [1,0] -> [0,0]-              [2] -> [0,0]-              ...-    , \x -> case x of-              [] -> [1]-              [0] -> [1]-              [0,0] -> [1]-              [1] -> [1]-              [0,0,0] -> [1]-              [0,1] -> [1]-              [1,0] -> [1]-              [2] -> [1]-              ...-    , \x -> case x of-              [] -> [0,0]-              [0] -> [0,0]-              [0,0] -> [0,0]-              [1] -> [0,0]-              [0,0,0] -> [0,0]-              [0,1] -> [0,0]-              [1,0] -> [0,0]-              [2] -> [0,0]-              ...-    , \x -> case x of-              [] -> [1]-              [0] -> [1]-              [0,0] -> [1]-              [1] -> [1]-              [0,0,0] -> [1]-              [0,1] -> [1]-              [1,0] -> [1]-              [2] -> [1]-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [2] -> [0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> [0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    ]-  , [ \x -> case x of-              [] -> [0,0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> [1]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0]-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> [0]-              [0] -> []-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [2] -> [0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0,0]-              [0,0] -> [0,0]-              [1] -> [0,0]-              [0,0,0] -> [0,0]-              [0,1] -> [0,0]-              [1,0] -> [0,0]-              [2] -> [0,0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> [1]-              [0,0] -> [1]-              [1] -> [1]-              [0,0,0] -> [1]-              [0,1] -> [1]-              [1,0] -> [1]-              [2] -> [1]-              ...-    , \x -> case x of-              [] -> [0,0,0]-              [0] -> [0,0,0]-              [0,0] -> [0,0,0]-              [1] -> [0,0,0]-              [0,0,0] -> [0,0,0]-              [0,1] -> [0,0,0]-              [1,0] -> [0,0,0]-              [2] -> [0,0,0]-              ...-    , \x -> case x of-              [] -> [0,1]-              [0] -> [0,1]-              [0,0] -> [0,1]-              [1] -> [0,1]-              [0,0,0] -> [0,1]-              [0,1] -> [0,1]-              [1,0] -> [0,1]-              [2] -> [0,1]-              ...-    , \x -> case x of-              [] -> [1,0]-              [0] -> [1,0]-              [0,0] -> [1,0]-              [1] -> [1,0]-              [0,0,0] -> [1,0]-              [0,1] -> [1,0]-              [1,0] -> [1,0]-              [2] -> [1,0]-              ...-    , \x -> case x of-              [] -> [2]-              [0] -> [2]-              [0,0] -> [2]-              [1] -> [2]-              [0,0,0] -> [2]-              [0,1] -> [2]-              [1,0] -> [2]-              [2] -> [2]-              ...-    , \x -> case x of-              [] -> [0,0,0]-              [0] -> [0,0,0]-              [0,0] -> [0,0,0]-              [1] -> [0,0,0]-              [0,0,0] -> [0,0,0]-              [0,1] -> [0,0,0]-              [1,0] -> [0,0,0]-              [2] -> [0,0,0]-              ...-    , \x -> case x of-              [] -> [0,1]-              [0] -> [0,1]-              [0,0] -> [0,1]-              [1] -> [0,1]-              [0,0,0] -> [0,1]-              [0,1] -> [0,1]-              [1,0] -> [0,1]-              [2] -> [0,1]-              ...-    , \x -> case x of-              [] -> [1,0]-              [0] -> [1,0]-              [0,0] -> [1,0]-              [1] -> [1,0]-              [0,0,0] -> [1,0]-              [0,1] -> [1,0]-              [1,0] -> [1,0]-              [2] -> [1,0]-              ...-    , \x -> case x of-              [] -> [2]-              [0] -> [2]-              [0,0] -> [2]-              [1] -> [2]-              [0,0,0] -> [2]-              [0,1] -> [2]-              [1,0] -> [2]-              [2] -> [2]-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0,0]-              [0,0] -> [0,0]-              [1] -> [0,0]-              [0,0,0] -> [0,0]-              [0,1] -> [0,0]-              [1,0] -> [0,0]-              [2] -> [0,0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> [1]-              [0,0] -> [1]-              [1] -> [1]-              [0,0,0] -> [1]-              [0,1] -> [1]-              [1,0] -> [1]-              [2] -> [1]-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> [0]-              [1] -> []-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [2] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0]-              [0,0] -> []-              [1] -> [0]-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> [0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> [0]-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> [0]-              [2] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> [0]-              [0,0] -> [0]-              [1] -> []-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> []-              [2] -> [0]-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> []-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> [0]-              [0] -> [0]-              [0,0] -> [0]-              [1] -> [0]-              [0,0,0] -> [0]-              [0,1] -> [0]-              [1,0] -> [0]-              [2] -> [0]-              ...-    , \x -> case x of-              [] -> [0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> [0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> [0,0]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    , \x -> case x of-              [] -> [1]-              [0] -> []-              [0,0] -> []-              [1] -> []-              [0,0,0] -> []-              [0,1] -> []-              [1,0] -> []-              [2] -> []-              ...-    ]-  , ...-  ]
− tests/diff/tiers-mixed-U-Bool.out
@@ -1,19 +0,0 @@-map length (tiers :: [[ ()->Bool ]])  =  [4]--length (list :: [ ()->Bool ])  =  4--allUnique (list :: [ ()->Bool ])  =  False--ratioRepetitions (list :: [ ()->Bool ])  =  1 % 2--tiers :: [()->Bool]  =-  [ [ \x -> case x of-              () -> False-    , \x -> case x of-              () -> True-    , \x -> case x of-              () -> False-    , \x -> case x of-              () -> True-    ]-  ]
− tests/diff/tiers-mixed-U-Nat.out
@@ -1,41 +0,0 @@-map length (tiers :: [[ ()->Nat ]])  =  [2,2,2,2,2,2,...]--length (list :: [ ()->Nat ])  =  Infinity--allUnique (list :: [ ()->Nat ])  =  False--ratioRepetitions (list :: [ ()->Nat ])  =  1 % 2--tiers :: [()->Nat]  =-  [ [ \x -> case x of-              () -> 0-    , \x -> case x of-              () -> 0-    ]-  , [ \x -> case x of-              () -> 1-    , \x -> case x of-              () -> 1-    ]-  , [ \x -> case x of-              () -> 2-    , \x -> case x of-              () -> 2-    ]-  , [ \x -> case x of-              () -> 3-    , \x -> case x of-              () -> 3-    ]-  , [ \x -> case x of-              () -> 4-    , \x -> case x of-              () -> 4-    ]-  , [ \x -> case x of-              () -> 5-    , \x -> case x of-              () -> 5-    ]-  , ...-  ]
− tests/diff/tiers-mixed-U-U.out
@@ -1,15 +0,0 @@-map length (tiers :: [[ ()->() ]])  =  [2]--length (list :: [ ()->() ])  =  2--allUnique (list :: [ ()->() ])  =  False--ratioRepetitions (list :: [ ()->() ])  =  1 % 2--tiers :: [()->()]  =-  [ [ \x -> case x of-              () -> ()-    , \x -> case x of-              () -> ()-    ]-  ]
− tests/diff/tiers-mixed-Us-Us.out
@@ -1,265 +0,0 @@-map length (tiers :: [[ [()]->[()] ]])  =  [2,3,7,13,...]--length (list :: [ [()]->[()] ])  =  Infinity--allUnique (list :: [ [()]->[()] ])  =  False--ratioRepetitions (list :: [ [()]->[()] ])  =  14 % 25--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-              [] -> [(),()]-              [()] -> []-              [(),()] -> []-              [(),(),()] -> []-              [(),(),(),()] -> []-              [(),(),(),(),()] -> []-              [(),(),(),(),(),()] -> []-              [(),(),(),(),(),(),()] -> []-              ...-    ]-  , ...-  ]
− tests/diff/tiers.out
@@ -1,10 +0,0 @@-map length (tiers :: [[ () ]])  =  [1]--length (list :: [ () ])  =  1--allUnique (list :: [ () ])  =  True--ratioRepetitions (list :: [ () ])  =  0 % 1--tiers :: [()]  =-  [[()]]
− tests/test-derive.hs
@@ -1,106 +0,0 @@--- Copyright (c) 2015-2018 Rudy Matela.--- Distributed under the 3-Clause BSD licence (see the file LICENSE).-{-# LANGUAGE TemplateHaskell, CPP #-}-import Test-import Test.LeanCheck-import Test.LeanCheck.Derive-import System.Exit (exitFailure)-import Data.List (elemIndices,sort)-import Test.LeanCheck.Utils.Operators--data D0       = D0                    deriving Show-data 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-data C2 a b   = C22 a b | C21 a | C20 deriving Show-data I a b    = a :+ b                deriving Show--deriveListable ''D0-deriveListable ''D1-deriveListable ''D2-deriveListable ''D3-deriveListable ''C1-deriveListable ''C2-deriveListable ''I---- Nested datatype cascade-data Nested = Nested N0 (N1 Int) (N2 Int Int)-data N0     = R0 Int-data N1 a   = R1 a-data N2 a b = R2 a b-deriveListableCascading ''Nested---- Recursive nested datatype cascade-data RN      = RN RN0 (RN1 Int) (RN2 Int RN)-data RN0     = Nest0 Int | Recurse0 RN-data RN1 a   = Nest1 a   | Recurse1 RN-data RN2 a b = Nest2 a b | Recurse2 RN-deriveListableCascading ''RN---- Type synonyms-data Pair a = Pair a a-type Alias a = Pair a--- deriveListable ''Alias -- this will fail-deriveListableCascading ''Alias-deriveListableIfNeeded ''Alias -- only works because instance already exists---- Nested type synonyms-data Triple a = Triple a a a-type Tralias a = Triple a-data Pairiple a = Pairriple (Tralias a) (Tralias a)-deriveListableCascading ''Pairiple---- Those should have no effect (instance already exists):-{- uncommenting those should generate warnings-deriveListable ''Bool-deriveListable ''Maybe-deriveListable ''Either--}---- Those should not generate warnings-deriveListableIfNeeded ''Bool-deriveListableIfNeeded ''Maybe-deriveListableIfNeeded ''Either--main :: IO ()-main =-  case elemIndices False (tests 100) of-    [] -> putStrLn "Tests passed!"-    is -> do putStrLn ("Failed tests:" ++ show is)-             exitFailure--tests n =-  [ True--  , map unD0 list =| n |= list-  , map unD1 list =| n |= (list :: [Int])-  , map unD2 list =| n |= (list :: [(Int,Int)])-  , map unD3 list =| n |= (list :: [(Int,Int,Int)])--  , map unD1 list == (list :: [()])-  , map unD2 list == (list :: [((),())])-  , map unD3 list == (list :: [((),(),())])--  , map unD1 list == (list :: [Bool])-  , map unD2 list == (list :: [(Bool,Bool)])-  , map unD3 list == (list :: [(Bool,Bool,Bool)])--  , (tiers :: [[ Bool       ]]) =| 6 |= $(deriveTiers ''Bool)-  , (tiers :: [[ [Int]      ]]) =| 6 |= $(deriveTiers ''[])-  , (tiers :: [[ [Bool]     ]]) =| 6 |= $(deriveTiers ''[])-  , (tiers :: [[ Maybe Int  ]]) =| 6 |= $(deriveTiers ''Maybe)-  , (tiers :: [[ Maybe Bool ]]) =| 6 |= $(deriveTiers ''Maybe)-  , ([]:tiers :: [[Either Bool Int]]) =$ map sort . take 6 $= $(deriveTiers ''Either)--  , (list :: [ Bool       ]) =| n |= $(deriveList ''Bool)-  , (list :: [ [Int]      ]) =| n |= $(deriveList ''[])-  , (list :: [ [Bool]     ]) =| n |= $(deriveList ''[])-  , (list :: [ Maybe Int  ]) =| n |= $(deriveList ''Maybe)-  , (list :: [ Maybe Bool ]) =| n |= $(deriveList ''Maybe)-  ]-  where-  unD0 (D0)       = ()-  unD1 (D1 x)     = (x)-  unD2 (D2 x y)   = (x,y)-  unD3 (D3 x y z) = (x,y,z)
− tests/test-error.hs
@@ -1,64 +0,0 @@--- Copyright (c) 2015-2018 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.Error-import Test.LeanCheck.Utils.Types (Nat)-import Data.List (sort)--main :: IO ()-main =-  case elemIndices False (tests 100) of-    [] -> putStrLn "Tests passed!"-    is -> do putStrLn ("Failed tests:" ++ show is)-             exitFailure--tests n =-  [ True--  , not $ holds     n prop_sortMinE-  , fails           n prop_sortMinE-  , counterExample  n prop_sortMinE == Just ["[]"]-  , counterExamples n prop_sortMinE == [["[]"]]--  , holds           n prop_sortMin-  , not $ fails     n prop_sortMin-  , counterExample  n prop_sortMin == Nothing-  , counterExamples n prop_sortMin == []--  , exists          n someNumbers-  , witness         n someNumbers == Just ["2"]-  , witnesses       n someNumbers == map ((:[]).show) [2,3,5,7,11,13,17]--  , exists          n someOthers-  , witness         n someOthers == Just ["2","2"]-  , witnesses (100*n) someOthers == (map.map) show [[2,2],[2,4],[3,3]-                                                   ,[2,8],[3,9],[3,27]]-  ]--prop_sortMinE :: [Nat] -> Bool-prop_sortMinE xs = head (sort xs) == minimum (xs::[Nat])--prop_sortMin :: [Nat] -> Bool-prop_sortMin xs = not (null xs)-              ==> head (sort xs) == minimum (xs::[Nat])--someNumbers :: Int -> Bool-someNumbers  2 = True-someNumbers  3 = True-someNumbers  5 = True-someNumbers  7 = True-someNumbers 11 = True-someNumbers 13 = True-someNumbers 17 = True--someOthers :: Int -> Int -> Bool-someOthers = \x -> case x of 2 -> \y -> case y of 2 -> True-                                                  4 -> True-                                                  8 -> True-                             3 -> \y -> case y of 3 -> True-                                                  9 -> True-                                                  27 -> True
− tests/test-fun.hs
@@ -1,29 +0,0 @@--- Copyright (c) 2015-2018 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-import Test.LeanCheck.Function.ListsOfPairs-import Test.LeanCheck.Utils---main :: IO ()-main =-  case elemIndices False tests of-    [] -> putStrLn "Tests passed!"-    is -> do putStrLn ("Failed tests:" ++ show is)-             exitFailure--tests =-  [ True-  -- TODO: add some tests here-  ]--allUnique :: Ord a => [a] -> Bool-allUnique [] = True-allUnique (x:xs) = x `notElem` xs-                && allUnique (filter (< x) xs)-                && allUnique (filter (> x) xs)
− tests/test-funshow.hs
@@ -1,80 +0,0 @@--- Copyright (c) 2015-2018 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.Function.ShowFunction-import Test.LeanCheck.Function.Show-import Test.LeanCheck.Utils.TypeBinding--main :: IO ()-main =-  case elemIndices False tests of-    [] -> putStrLn "Tests passed!"-    is -> do putStrLn ("Failed tests:" ++ show is)-             exitFailure---tests =-  [ True--  -- undefined values ---  , showFunction 2 int == "undefined"-  , showFunction 2 bool == "undefined"-  , showFunction 2 char == "undefined"-  , showFunctionLine 10 (int  >- int) == "\\x -> case x of ..."-  , showFunctionLine 10 (bool >- bool) == "\\x -> undefined"--  -- partially defined ---  , showFunctionLine 2 (\x -> case x of True -> True)-                   == "\\x -> case x of True -> True"-  , showFunctionLine 10 (\x -> case (x::Int) of 3 -> (4::Int); 5 -> 6)-                    == "\\x -> case x of 3 -> 4; 5 -> 6; ..."-  , showFunctionLine 10 (\x y -> case (x::Int,y::Int) of (1,2) -> (3::Int); (2,1) -> 3)-                    == "\\x y -> case (x,y) of (1,2) -> 3; (2,1) -> 3; ..."--  -- fully defined, infinite ---  , showFunction 3 ((+) -:> int)-    == "\\x y -> case (x,y) of\n"-    ++ "          (0,0) -> 0\n"-    ++ "          (0,1) -> 1\n"-    ++ "          (1,0) -> 1\n"-    ++ "          ...\n"-  , showFunction 3 ((++) -:> [int])-    == "\\x y -> case (x,y) of\n"-    ++ "          ([],[]) -> []\n"-    ++ "          ([],[0]) -> [0]\n"-    ++ "          ([0],[]) -> [0]\n"-    ++ "          ...\n"-  , showFunction 4 (sort -:> [char])-    == "\\x -> case x of\n"-    ++ "        \"\" -> \"\"\n"-    ++ "        \"a\" -> \"a\"\n"-    ++ "        \"aa\" -> \"aa\"\n"-    ++ "        \" \" -> \" \"\n"-    ++ "        ...\n"---  -- fully defined, finite ---  , showFunction 1 not-    == "\\x -> case x of\n"-    ++ "        False -> True\n"-    ++ "        ...\n"-  , showFunction 2 not-    == "\\x -> case x of\n"-    ++ "        False -> True\n"-    ++ "        True -> False\n"-  , showFunction 3 (&&)-    == "\\x y -> case (x,y) of\n"-    ++ "          (False,False) -> False\n"-    ++ "          (False,True) -> False\n"-    ++ "          (True,False) -> False\n"-    ++ "          ...\n"-  , showFunction 4 (&&)-    == "\\x y -> case (x,y) of\n"-    ++ "          (False,False) -> False\n"-    ++ "          (False,True) -> False\n"-    ++ "          (True,False) -> False\n"-    ++ "          (True,True) -> True\n"-  ]
− tests/test-generic.hs
@@ -1,65 +0,0 @@--- Copyright (c) 2015-2018 Rudy Matela.--- Distributed under the 3-Clause BSD licence (see the file LICENSE).-{-# LANGUAGE DeriveGeneric, StandaloneDeriving #-}-import Test-import Test.LeanCheck-import Test.LeanCheck.Generic-import System.Exit (exitFailure)-import Data.List (elemIndices,sort)-import Test.LeanCheck.Utils.Operators-import GHC.Generics (Generic)--data D0       = D0                    deriving (Eq, Show, Generic)-data 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)-data C2 a b   = C22 a b | C21 a | C20 deriving (Eq, Show, Generic)-data I a b    = a :+ b                deriving (Eq, Show, Generic)--instance Listable D0                   where tiers = genericTiers--instance Listable a => Listable (D1 a) where tiers = genericTiers--instance (Listable a, Listable b)-      => Listable (D2 a b)             where tiers = genericTiers--instance (Listable a, Listable b, Listable c)-      => Listable (D3 a b c)           where tiers = genericTiers--instance Listable a => Listable (C1 a) where tiers = genericTiers--instance (Listable a, Listable b)-      => Listable (C2 a b)             where tiers = genericTiers--instance (Listable a, Listable b)-      => Listable (I a b)              where tiers = genericTiers--main :: IO ()-main =-  case elemIndices False (tests 100) of-    [] -> putStrLn "Tests passed!"-    is -> do putStrLn ("Failed tests:" ++ show is)-             exitFailure--tests n =-  [ True--  , map unD0 list =| n |= list-  , map unD1 list =| n |= (list :: [Int])-  , map unD2 list =| n |= (list :: [(Int,Int)])-  , map unD3 list =| n |= (list :: [(Int,Int,Int)])--  , map unD1 list == (list :: [()])-  , map unD2 list == (list :: [((),())])-  , map unD3 list == (list :: [((),(),())])--  , map unD1 list == (list :: [Bool])-  , map unD2 list == (list :: [(Bool,Bool)])-  , map unD3 list == (list :: [(Bool,Bool,Bool)])-  ]-  where-  unD0 (D0)       = ()-  unD1 (D1 x)     = (x)-  unD2 (D2 x y)   = (x,y)-  unD3 (D3 x y z) = (x,y,z)
− tests/test-io.hs
@@ -1,10 +0,0 @@--- Copyright (c) 2015-2018 Rudy Matela.--- Distributed under the 3-Clause BSD licence (see the file LICENSE).-import Test-import Test.LeanCheck.IO--main :: IO ()-main = do-  check $ \x -> (x::Int) + x == 2*x    -- should pass---check $ \x -> (x::Int) + x == x      -- should fail, falsifiable---check $ \x -> (x::Int) `div` x == 1  -- should fail, exception
− tests/test-main.hs
@@ -1,101 +0,0 @@--- Copyright (c) 2015-2018 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-import Test.LeanCheck.Utils--import Data.Ratio-import Data.Word (Word)--main :: IO ()-main =-  case elemIndices False tests of-    [] -> putStrLn "Tests passed!"-    is -> do putStrLn ("Failed tests:" ++ show is)-             exitFailure--tests :: [Bool]-tests =-  [ True--  -- interleave-  , [1,2,3] +| [0,0,0] == [1,0,2,0,3,0]-  , take 3 ([1,2] +| (0:undefined)) == [1,0,2]-  , [0,2..] +| [1,3..] =| 100 |= [0,1..]--  -- etc-  , tNatPairOrd 100-  , tNatTripleOrd 200-  , tNatQuadrupleOrd 300-  , tNatQuintupleOrd 400-  , tNatListOrd 500-  , tListsOfNatOrd 500-  , listsOf (tiers::[[Nat]]) =| 10 |= tiers--  -- tests!-  , counterExample 10 (\x y -> x + y /= (x::Int)) == Just ["0", "0"]-  , counterExample 10 (\x y -> x + y == (x::Int)) == Just ["0", "1"]-  , counterExample 10 (maybe True (==(0::Int))) == Just ["(Just 1)"]-  , holds 100 (\x -> x == (x::Int))--  -- For when NaN is in the enumeration (by default, it is not):-  --, fails 100 (\x -> x == (x::Float))  -- NaN != NaN  :-)-  --, counterExample 100 (\x -> x == (x::Float)) == Just ["NaN"]-  , counterExample 10 (\x y -> x + y == (x::Float))  == Just ["0.0","1.0"]-  , counterExample 10 (\x y -> x + y == (x::Double)) == Just ["0.0","1.0"]-  , holds          50 (\x -> x + 1 /= (x::Int))-  , counterExample 50 (\x -> x + 1 /= (x::Float))  == Just ["Infinity"]-    || counterExample 50 (\x -> x + 1 /= (x::Float)) == Just ["inf"] -- bug on Hugs 2006-09?-  , counterExample 50 (\x -> x + 1 /= (x::Double)) == Just ["Infinity"]-    || counterExample 50 (\x -> x + 1 /= (x::Float)) == Just ["inf"] -- bug on Hugs 2006-09?-  , allUnique (take 100 list :: [Float])-  , allUnique (take 500 list :: [Double])--  , allUnique (take 500 list :: [Rational])-  , allUnique (take 100 list :: [Ratio Nat])-  , orderedOn (\r -> numerator r + denominator r) (take 500 (list :: [Ratio Nat]))-  , orderedOn (\r -> abs (numerator r) + abs(denominator r)) (take 500 (list :: [Rational]))--  , list == [LT, EQ, GT]-  , orderedOn length (take 500 (list :: [[Ordering]]))-  , orderedOn length (take 500 (list :: [[Bool]]))--  , strictlyOrderedOn (\xs -> (sum $ map (+1) xs, xs)) (take 500 (list :: [[Word]]))--  , tPairEqParams 100-  , tTripleEqParams 100--  , tProductsIsFilterByLength (tiers :: [[ Nat ]])   10 `all` [1..10]-  , tProductsIsFilterByLength (tiers :: [[ Bool ]])   6 `all` [1..10]-  , tProductsIsFilterByLength (tiers :: [[ [Nat] ]])  6 `all` [1..10]--  , holds 100 $  (\/)  ==== zipWith' (++) [] [] -:> [[uint2]]-  , holds 100 $  (\/)  ==== zipWith' (++) [] [] -:> [[bool]]-  , holds 100 $ (\\//) ==== zipWith' (+|) [] [] -:> [[uint2]]-  , holds 100 $ (\\//) ==== zipWith' (+|) [] [] -:> [[bool]]-  ]--allUnique :: Ord a => [a] -> Bool-allUnique [] = True-allUnique (x:xs) = x `notElem` xs-                && allUnique (filter (< x) xs)-                && allUnique (filter (> x) xs)----- | 'zipwith\'' works similarly to 'zipWith', but takes neutral elements to---   operate when one of the lists is exhausted, so, you don't loose elements.------ > zipWith' f z e [x,y] [a,b,c,d] == [f x a, f y b, f z c, f z d]------ > zipWith' f z e [x,y,z] [a] == [f x a, f y e, f z e]------ > zipWith' (+) 0 0 [1,2,3] [1,2,3,4,5,6] == [2,4,6,4,5,6]-zipWith' :: (a->b->c) -> a -> b  -> [a] -> [b] -> [c]-zipWith' _ _  _  []     [] = []-zipWith' f _  zy xs     [] = map (`f` zy) xs-zipWith' f zx _  []     ys = map (f zx) ys-zipWith' f zx zy (x:xs) (y:ys) = f x y : zipWith' f zx zy xs ys
− tests/test-operators.hs
@@ -1,141 +0,0 @@--- Copyright (c) 2015-2018 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-import Test.LeanCheck.Utils--import Data.List (isPrefixOf)-import Data.Function (on)--main :: IO ()-main =-  case elemIndices False (tests 100) of-    [] -> putStrLn "Tests passed!"-    is -> do putStrLn ("Failed tests:" ++ show is)-             exitFailure--tests :: Int -> [Bool]-tests n =-  [ True--  , holds n $ (not . not) === id-  , fails n $ abs === (* (-1))             -:> int-  , holds n $ (+) ==== (\x y -> sum [x,y]) -:> int-  , fails n $ (+) ==== (*)                 -:> int--  , holds n $ const True  &&& const True  -:> bool-  , fails n $ const False &&& const True  -:> int-  , holds n $ const False ||| const True  -:> int-  , fails n $ const False ||| const False -:> int--  , holds n $ commutative (+)  -:> int-  , holds n $ commutative (*)  -:> int-  , holds n $ commutative (++) -:> [()]-  , holds n $ commutative (&&)-  , holds n $ commutative (||)-  , fails n $ commutative (-)  -:> int-  , fails n $ commutative (++) -:> [bool]-  , fails n $ commutative (==>)--  , holds n $ associative (+)  -:> int-  , holds n $ associative (*)  -:> int-  , holds n $ associative (++) -:> [int]-  , holds n $ associative (&&)-  , holds n $ associative (||)-  , fails n $ associative (-)  -:> int-  , fails n $ associative (==>)--  , holds n $ distributive (*) (+) -:> int-  , fails n $ distributive (+) (*) -:> int--  , holds n $ symmetric (==) -:> int-  , holds n $ symmetric (/=) -:> int-  , fails n $ symmetric (<=) -:> int--  , holds n $   reflexive (==) -:> int-  , holds n $ irreflexive (/=) -:> int--  , holds n $ (<)  `symmetric2` (>)  -:> int-  , holds n $ (<=) `symmetric2` (>=) -:> int-  , fails n $ (<)  `symmetric2` (>=) -:> int-  , fails n $ (<=) `symmetric2` (>)  -:> int--  , holds n $ transitive (==) -:> bool-  , holds n $ transitive (<)  -:> bool-  , holds n $ transitive (<=) -:> bool-  , fails n $ transitive (/=) -:> bool-  , holds n $ transitive (==) -:> int-  , holds n $ transitive (<)  -:> int-  , holds n $ transitive (<=) -:> int-  , fails n $ transitive (/=) -:> int--  , holds n $ asymmetric    (<)  -:> int-  , holds n $ antisymmetric (<=) -:> int-  , fails n $ asymmetric    (<=) -:> int-  , holds n $ asymmetric    (>)  -:> int-  , holds n $ antisymmetric (>=) -:> int-  , fails n $ asymmetric    (>=) -:> int--  , holds n $ equivalence (==) -:> int-  , holds n $ equivalence ((==) `on` fst) -:> (int,int)-  , holds n $ equivalence ((==) `on` length) -:> [int]--  , holds n $       totalOrder (<=) -:> int-  , holds n $ strictTotalOrder (<)  -:> int-  , fails n $       totalOrder (<)  -:> int-  , fails n $ strictTotalOrder (<=) -:> int-  , holds n $       totalOrder (>=) -:> int-  , holds n $ strictTotalOrder (>)  -:> int-  , fails n $       totalOrder (>)  -:> int-  , fails n $ strictTotalOrder (>=) -:> int--  , holds n $ partialOrder isPrefixOf -:> [int]-  , fails n $   totalOrder isPrefixOf -:> [int]--  , holds n $ comparison compare -:> int-  , holds n $ comparison compare -:> bool-  , holds n $ comparison compare -:> ()--  , holds n $ okEqOrd -:> ()-  , holds n $ okEqOrd -:> int-  , holds n $ okEqOrd -:> char-  , holds n $ okEqOrd -:> bool-  , holds n $ okEqOrd -:> [()]-  , holds n $ okEqOrd -:> [int]-  , holds n $ okEqOrd -:> [bool]-  , holds n $ okEqOrd -:> float  -- fails if NaN is included in enumeration-  , holds n $ okEqOrd -:> double -- fails if NaN is included in enumeration-  , holds n $ okEqOrd -:> rational-  , holds n $ okEqOrd -:> nat-  , holds n $ okEqOrd -:> natural--  , holds n $ okNum -:> int-  , holds n $ okNum -:> integer--- NOTE: the following two fail on Hugs due to a bug on Hugs.---, holds n $ \x y z -> none isInfinite [x,y,z] ==> okNum x y (z -: float)---, holds n $ \x y z -> none isInfinite [x,y,z] ==> okNum x y (z -: double)-  , holds n $ okNum -:> rational-  , holds n $ okNum -:> nat-  , holds n $ okNum -:> natural--  , holds n $ idempotent id   -:> int-  , holds n $ idempotent abs  -:> int-  , holds n $ idempotent sort -:> [bool]-  , fails n $ idempotent not--  , holds n $ identity id   -:> int-  , holds n $ identity (+0) -:> int-  , holds n $ identity sort -:> [()]-  , holds n $ identity (not . not)-  , fails n $ identity not--  , holds n $ neverIdentity not-  , fails n $ neverIdentity abs    -:> int-  , fails n $ neverIdentity negate -:> int-  ]--none :: (a -> Bool) -> [a] -> Bool-none p = not . or . map p
− tests/test-sdist
@@ -1,33 +0,0 @@-#!/bin/bash-#-# test-sdist: tests the package generated by "cabal sdist".-#-# Copyright (c) 2015-2018 Rudy Matela.-# Distributed under the 3-Clause BSD licence.-export LC_ALL=C  # consistent sort-pkgver=` cat *.cabal | grep "^version:" | sed -e "s/version: *//"`-pkgname=`cat *.cabal | grep "^name:"    | sed -e "s/name: *//"`-pkg=$pkgname-$pkgver-set -x-cabal sdist &&-cd dist &&-tar -tf $pkg.tar.gz | sort --ignore-case          > ls-cabal-i  &&-tar -tf $pkg.tar.gz | sort --ignore-case --unique > ls-cabal-iu &&-diff -rud ls-cabal-i ls-cabal-iu &&-rm -f ls-cabal ls-cabal-ignore-case &&-if [ -d ../.git ]-then-	# on git repo, test if files are the same-	git -C .. ls-files                                      | sort > ls-git   &&-	tar -tf $pkg.tar.gz | grep -v "/$" | sed -e "s,$pkg/,," | sort > ls-cabal &&-	diff -rud ls-git ls-cabal &&-	rm -f ls-git ls-cabal-else-	# outside of git repo, test build-	rm -rf $pkg/ &&-	tar -xzf $pkg.tar.gz &&-	cd $pkg/ &&-	cabal configure --enable-tests --enable-benchmarks &&-	cabal build &&-	cabal test-fi
− tests/test-stats.hs
@@ -1,55 +0,0 @@--- Copyright (c) 2017-2018 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-import Test.LeanCheck.Stats--import Data.List (isPrefixOf)-import Data.Function (on)--main :: IO ()-main = do-  putStrLn "sum :: [Int] -> Bool"-  classStats 100 (sum     :: [Int] -> Int)--  putStrLn "length :: [Int] -> Int"-  classStats 100 (length  :: [Int] -> Int)--  putStrLn "take 1 :: [Int] -> [Int]"-  classStats 100 (take 1  :: [Int] -> [Int])--  conditionStats 1000 [ ("odd", odd :: Int -> Bool)-                      , ("even", even) ]--  conditionStats 1000 [ ("ordered",ordered :: [Int] -> Bool)-                      , ("ordered . reverse", ordered . reverse) ]--  putStrLn "sum :: [Int] -> Bool"-  classStatsT 6 (sum     :: [Int] -> Int)--  putStrLn "length :: [Int] -> Int"-  classStatsT 6 (length  :: [Int] -> Int)--  putStrLn "take 1 :: [Int] -> [Int]"-  classStatsT 6 (take 1  :: [Int] -> [Int])---  case elemIndices False (tests 100) of-    [] -> putStrLn "Tests passed!"-    is -> do putStrLn ("Failed tests:" ++ show is)-             exitFailure--tests :: Int -> [Bool]-tests n =-  [ True--  , classify                   [1,2,3,4,1,2,3,1,2,1] == [[1,1,1,1],[2,2,2],[3,3],[4]]-  , classifyBy ((==) `on` odd) [1,2,3,4,1,2,3,1,2,1] == [[1,3,1,3,1,1],[2,4,2,2]]-  , classifyOn odd             [1,2,3,4,1,2,3,1,2,1] == [[1,3,1,3,1,1],[2,4,2,2]]-  , counts                   [1,2,3,4,1,2,3,1,2,1] == [(1,4),(2,3),(3,2),(4,1)]-  , countsBy ((==) `on` odd) [1,2,3,4,1,2,3,1,2,1] == [(1,6),(2,4)]-  , countsOn odd             [1,2,3,4,1,2,3,1,2,1::Int] == [(True,6),(False,4)]-  ]
− tests/test-tiers.hs
@@ -1,113 +0,0 @@--- Copyright (c) 2015-2018 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-import Test.LeanCheck.Utils--import Test.LeanCheck.Tiers--main :: IO ()-main =-  case elemIndices False tests of-    [] -> putStrLn "Tests passed!"-    is -> do putStrLn ("Failed tests:" ++ show is)-             exitFailure--tests =-  [ True--  , checkNoDup 12-  , checkBags 18-  , checkSets 20-  , checkDistinctPairs 20-  , checkUnorderedPairs 20-  , checkUnorderedDistinctPairs 20-  , checkLengthListingsOfLength 5 5-  , checkSizesListingsOfLength 5 5--  , all (uncurry (/=)) . concat . take 100 $ distinctPairs (tiers :: [[Nat]])--  , productMaybeWith ($) [[const Nothing, Just]] [[1],[2],[3],[4]] == [[1],[2],[3],[4]]-  , productMaybeWith (flip ($))-                     [[1],[2],[3],[4]]-                     [[const Nothing],[Just]] == [[],[1],[2],[3],[4]]--  , holds 100 $ deleteT_is_map_delete 10 -:> nat-  , holds 100 $ deleteT_is_map_delete 10 -:> int-  , holds 100 $ deleteT_is_map_delete 10 -:> bool-  , holds 100 $ deleteT_is_map_delete 10 -:> int2--  , finite (tiers :: [[ Bool ]])  == True-  , finite (tiers :: [[ (Bool,Bool) ]]) == True-  , finite (tiers :: [[ Nat1 ]])  == True-  , finite (tiers :: [[ Nat2 ]])  == True-  , finite (tiers :: [[ Nat3 ]])  == True-  , finite (tiers :: [[ Nat4 ]])  == True-  , finite (tiers :: [[ Nat5 ]])  == True-  , finite (tiers :: [[ Nat6 ]])  == True-  , finite (tiers :: [[ Nat7 ]])  == True-  , finite (tiers :: [[ Word1 ]])  == True-  , finite (tiers :: [[ Word2 ]])  == True-  , finite (tiers :: [[ Word3 ]])  == True--  , finite (tiers :: [[ Nat ]])   == False-  , finite (tiers :: [[ Int ]])   == False-  , finite (tiers :: [[ [Int] ]]) == False-  , finite (tiers :: [[ [()] ]])  == False--  -- false negatives, more than 12 values:-  , finite (tiers :: [[ Word4 ]])  == False-  , finite (tiers :: [[ (Bool,Bool,Bool,Bool,Bool) ]]) == False-  , finite (tiers :: [[ (Bool,Bool,Bool,Bool,Bool,Bool) ]]) == False--  , holds 100 $ \xss -> ordered . concat $ discardLaterT (<)  (xss::[[Int]])-  , holds 100 $ \xss -> ordered . concat $ discardLaterT (<=) (xss::[[Int]])-  , (length . concat $ discardLaterT (<=) [[1..100]]) == 100-  , (length . concat $ discardLaterT (<=) [[00..99],[100..199::Int]]) == 200-  , holds 100 $ \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 = deleteT x tiers-                    =| n |= normalizeT (map (delete x) tiers)--checkNoDup :: Int -> Bool-checkNoDup n = noDupListsOf (tiers :: [[Int]]) =| n |= tiers `suchThat` noDup-  where noDup xs = nub (sort xs) == sort xs--checkBags :: Int -> Bool-checkBags n = bagsOf (tiers :: [[Nat]]) =| n |= tiers `suchThat` ordered--checkSets :: Int -> Bool-checkSets n = setsOf (tiers :: [[Nat]]) =| n |= tiers `suchThat` strictlyOrdered--checkDistinctPairs :: Int -> Bool-checkDistinctPairs n =-  distinctPairs (tiers :: [[Nat]]) =| n |= tiers `suchThat` uncurry (/=)--checkUnorderedDistinctPairs :: Int -> Bool-checkUnorderedDistinctPairs n =-  unorderedDistinctPairs (tiers :: [[Nat]]) =| n |= tiers `suchThat` uncurry (<)--checkUnorderedPairs :: Int -> Bool-checkUnorderedPairs n =-  unorderedPairs (tiers :: [[Nat]]) =| n |= tiers `suchThat` uncurry (<=)--checkLengthListingsOfLength :: Int -> Int -> Bool-checkLengthListingsOfLength n m = all check [1..m]-  where check m = all (\xs -> length xs == m)-                $ concat . take n-                $ listsOfLength m natTiers--checkSizesListingsOfLength :: Int -> Int -> Bool-checkSizesListingsOfLength n m = all check [1..m]-  where check m = orderedBy compare-                $ map sum . concat . take n-                $ listsOfLength m natTiers--natTiers :: [[Nat]]-natTiers = tiers
− tests/test-types.hs
@@ -1,170 +0,0 @@--- Copyright (c) 2015-2018 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 Test.LeanCheck (list,fails)-import Data.Word-import Data.Int--main :: IO ()-main =-  case elemIndices False tests of-    [] -> putStrLn "Tests passed!"-    is -> do putStrLn ("Failed tests:" ++ show is)-             exitFailure----- | Given the number of bits, generates a range for signed/unsigned integers---   of that width.-signedRange,unsignedRange :: (Num n) => Int -> [n]-signedRange n   = map fromIntegral [-(2^(n-1))..(2^(n-1))-1]-unsignedRange n = map fromIntegral [0..(2^n)-1]---tests =-  [ True--  , list `permutation` [minBound..maxBound :: Int1]-  , list `permutation` [minBound..maxBound :: Int2]-  , list `permutation` [minBound..maxBound :: Int3]-  , list `permutation` [minBound..maxBound :: Int4]--  , list `permutation` [minBound..maxBound :: UInt1]-  , list `permutation` [minBound..maxBound :: UInt2]-  , list `permutation` [minBound..maxBound :: UInt3]-  , list `permutation` [minBound..maxBound :: UInt4]--  , list `permutation` [minBound..maxBound :: Nat1]-  , list `permutation` [minBound..maxBound :: Nat2]-  , list `permutation` [minBound..maxBound :: Nat3]-  , list `permutation` [minBound..maxBound :: Nat4]-  , list `permutation` [minBound..maxBound :: Nat5]-  , list `permutation` [minBound..maxBound :: Nat6]-  , list `permutation` [minBound..maxBound :: Nat7]--  , map unX list `permutation` [minBound..maxBound :: Int8]-  , map unX list `permutation` [minBound..maxBound :: Int4]-  , map unX list `permutation` [minBound..maxBound :: Int3]--- TODO: make the following commented tests pass:---, map unX list `permutation` [minBound..maxBound :: Int2]---, map unX list `permutation` [minBound..maxBound :: Int1]-  , map unX list `permutation` [minBound..maxBound :: Word8]-  , map unX list `permutation` [minBound..maxBound :: Word4]-  , map unX list `permutation` [minBound..maxBound :: Word3]-  , map unX list `permutation` [minBound..maxBound :: Word2]-  , map unX list `permutation` [minBound..maxBound :: Word1]-  , map unX list `permutation` [minBound..maxBound :: Nat7]-  , map unX list `permutation` [minBound..maxBound :: Nat6]-  , map unX list `permutation` [minBound..maxBound :: Nat5]-  , map unX list `permutation` [minBound..maxBound :: Nat4]--- TODO: make the following commented tests pass:---, map unX list `permutation` [minBound..maxBound :: Nat3]---, map unX list `permutation` [minBound..maxBound :: Nat2]---, map unX list `permutation` [minBound..maxBound :: Nat1]--  , (prefiX :: [Int8])  `isPrefixOf` map unX list-  , (prefiX :: [Int16]) `isPrefixOf` map unX list-  , (prefiX :: [Int32]) `isPrefixOf` map unX list-  , (prefiX :: [Int64]) `isPrefixOf` map unX list-  , (prefiX :: [Int])   `isPrefixOf` map unX list--  , (prefiXN :: [Word8])  `isPrefixOf` map unX list-  , (prefiXN :: [Word16]) `isPrefixOf` map unX list-  , (prefiXN :: [Word32]) `isPrefixOf` map unX list-  , (prefiXN :: [Word64]) `isPrefixOf` map unX list-  , (prefiXN :: [Word])   `isPrefixOf` map unX list--  , (prefiXs :: [[Int8]])  `isPrefixOf` map unXs list-  , (prefiXs :: [[Int16]]) `isPrefixOf` map unXs list-  , (prefiXs :: [[Int32]]) `isPrefixOf` map unXs list-  , (prefiXs :: [[Int64]]) `isPrefixOf` map unXs list-  , (prefiXs :: [[Int]])   `isPrefixOf` map unXs list--  , (prefiXNs :: [[Word8]])  `isPrefixOf` map unXs list-  , (prefiXNs :: [[Word16]]) `isPrefixOf` map unXs list-  , (prefiXNs :: [[Word32]]) `isPrefixOf` map unXs list-  , (prefiXNs :: [[Word64]]) `isPrefixOf` map unXs list-  , (prefiXNs :: [[Word]])   `isPrefixOf` map unXs list---  , [minBound..maxBound :: Int1] == signedRange 1-  , [minBound..maxBound :: Int2] == signedRange 2-  , [minBound..maxBound :: Int3] == signedRange 3-  , [minBound..maxBound :: Int4] == signedRange 4--  , [minBound..maxBound :: UInt1] == unsignedRange 1-  , [minBound..maxBound :: UInt2] == unsignedRange 2-  , [minBound..maxBound :: UInt3] == unsignedRange 3-  , [minBound..maxBound :: UInt4] == unsignedRange 4---  -- abs minBound == minBound-  , fails 100 (\i -> abs i > (0::Int1))-  , fails 100 (\i -> abs i > (0::Int2))-  , fails 100 (\i -> abs i > (0::Int3))-  , fails 100 (\i -> abs i > (0::Int4))--  -- maxBound + 1 == minBound-  , fails 100 (\i -> i + 1 < (i::Int1))-  , fails 100 (\i -> i + 1 < (i::Int2))-  , fails 100 (\i -> i + 1 < (i::Int3))-  , fails 100 (\i -> i + 1 < (i::Int4))--  , holds 100 (\(Nat n) -> n >= 0)-  , holds 100 (\(Natural n) -> n >= 0)-  ]-  where-  unXs (Xs xs) = xs---prefiX :: (Bounded a, Integral a) => [a]-prefiX =-  [ 0-  , 1, -1-  , maxBound, minBound-  , 2, -2-  , maxBound-1, minBound+1-  , 3, -3-  , maxBound-2, minBound+2-  ]--prefiXs :: (Bounded a, Integral a) => [[a]]-prefiXs =-  [ []-  , [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], [maxBound]-  , [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,maxBound]-    , [1,0,0,0], [1,0,1], [1,1,0], [1,-1]-    , [-1,0,0], [-1,1], [maxBound,0], [minBound]-  ]--prefiXN :: (Bounded a, Integral a) => [a]-prefiXN =-  [ 0-  , 1, 2-  , maxBound-  , 3, 4-  , maxBound-1-  , 5, 6-  , maxBound-2-  ]--prefiXNs :: (Bounded a, Integral a) => [[a]]-prefiXNs =-  [ []-  , [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], [maxBound]-  ]--permutation :: Eq a => [a] -> [a] -> Bool-[]     `permutation` []    = True-(_:_)  `permutation` []    = False-[]     `permutation` (_:_) = False-(x:xs) `permutation` ys    = x `elem` ys  &&  xs `permutation` delete x ys