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
    ]
  , ...
  ]
