diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Revision history for typelet
 
+## 0.1.2 -- 2022-07-22
+
+* Add `constructLet` (#112)
+
 ## 0.1.1.0 -- 2022-03-24
 
 * Move to `ghc-tcplugin-api` 0.7
diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,9 +0,0 @@
--- | Custom setup to support doctest
---
--- Taken directly from <https://hackage.haskell.org/package/cabal-doctest>.
-module Main where
-
-import Distribution.Extra.Doctest (defaultMainWithDoctests)
-
-main :: IO ()
-main = defaultMainWithDoctests "doctest-typelet"
diff --git a/doctest-examples/DoctestExamplesTypeLet.hs b/doctest-examples/DoctestExamplesTypeLet.hs
deleted file mode 100644
--- a/doctest-examples/DoctestExamplesTypeLet.hs
+++ /dev/null
@@ -1,168 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-
--- | Doctests to verify the plugin's custom type errors
---
--- Testing ghc type errors is a bit of a quagmire. For some use cases,
--- deferred type errors can be used to turn the compile time errors into
--- runtime errors which can then be tested in the usual way. However, this does
--- not work terribly well for constraints. There are various tickets open about
--- this, which (frustratingly) pull in opposite directions:
---
--- * <https://gitlab.haskell.org/ghc/ghc/-/issues/11197>
--- * <https://gitlab.haskell.org/ghc/ghc/-/issues/16249>
---
--- So instead we use docstring to do so, but that too is not that easy to get
--- working. The first problem is the right parameters must be passed to doctest,
--- in particular, the package flags. There are multiple ways to achieve this:
---
--- * <https://github.com/sol/doctest#running-doctest-for-a-cabal-package>
---
---   The readme on github suggests to run
---
---   > cabal repl --with-ghc=doctest
---
---   but this doesn't work terribly well with cabal's dependency resolution.
---
--- * <https://hackage.haskell.org/package/doctest>
---
---   The readme of the released package suggests simply constructing arguments
---   by hand
---
---   > main = doctest ["-isrc", "src/Main.hs"]
---
---   but this is painful; a realistic set of arguments, especially package
---   dependencies, is hard to construct manually in such a way that it
---   correctly integrates with dependency resolution.
---
--- * <https://github.com/phadej/cabal-extras/blob/master/cabal-docspec/MANUAL.md>
---
---   @cabal-docspec@ is an entirely alternative solution, but is not released.
---   It might warrant a closer look though; in particular, the fact that it
---   avoids interpreted code might help with the "self-dependency" issue listed
---   below (see also <https://github.com/sol/doctest/pull/217>).
---
--- * <https://hackage.haskell.org/package/cabal-doctest>
---
---   Technically deprecated, although it seems that it's being maintained still
---   and Oleg informs me that Andres Abel "undeprecated" it, whatever that means.
---
--- The last option seems to be the best, at present, but here two there are some
--- hurdles, some minor, some more significant.
---
--- * The setup instructions are pretty good, but the documentation is a little
---   confusing. In particular, the argument to @defaultMainWithDoctests@
---
---   <https://hackage.haskell.org/package/cabal-doctest-1.0.9/docs/Distribution-Extra-Doctest.html#v:defaultMainWithDoctests>
---
---   /must/ be the name of the /cabal component/ that is the test-suite
---   that is meant to run doctest; if that is wrong, simply nothing happens
---   (no @Build_doctests@ module is built, but nor is there an error message).
---
--- * cabal-doctest supports running doctest on the main library in a cabal file
---   as well as on executables, /but not on test suites/ (though it would be a
---   minor patch to address this). This matters because of the next problem:
---
--- * It seems to be impossible to load the @TypeLet@ plugin defined /in/ the
---   library while doctesting that same library. Using
---
---   > >>> :set -fplugin=TypeLet
---   > >>> (castEqual :: Int -> Int) 1
---
---   is accepted in the sense that ghc doesn't complain about TypeLet being an
---   unknown plugin (unlike when that name is changed to a non-existent
---   plugin), but the plugin nonetheless doesn't actually seem to load:
---   this examples leads to error about a missing @Equal Int Int@ instance.
---   I still do not understand what's happening here.
---
--- * We therefore have the doctests in this regular (non test-suite) module.
---   Of course, users would not need that executable, so both this example
---   executable as well as the doctest test suite that runs doctest /on/
---   this example executable as only built if with @+build-doctest-examples@.
-module Main where
-
-import TypeLet
-
--- $setup
--- >>> :set -fplugin=TypeLet
--- >>> :set -XScopedTypeVariables
-
-{-------------------------------------------------------------------------------
-  Tests proper
--------------------------------------------------------------------------------}
-
--- | Examples of casts between simple different types
---
--- >>> (castEqual :: Int -> Bool) 1
--- ...
--- ...Couldn't match...Int...Bool...
--- ...
---
--- >>> (castEqual :: Int -> Char) 1
--- ...
--- ...Couldn't match...Int...Char...
--- ...
-simpleMismatch :: ()
-simpleMismatch = ()
-
--- | Let with non-variable left-hand side
---
--- NOTE: We see this error multiple times, but that seems to be a doctest thing
--- rather than anything the plugin does: the more doctest test cases I add, the
--- more often I see the error repeated. In regular (non-doctest) code I don't
--- see those repeats.
---
--- >>> let aux :: Let Int Int => () ; aux = castEqual () in aux
--- ...
--- ...Let with non-variable LHS: Int := Int
--- ...
-letWithNonVarLHS :: ()
-letWithNonVarLHS = ()
-
--- | Recursive let bindings
---
--- I'm not actually sure how these could arise in practice, especially when we
--- have the skolem check in place as well. But perhaps it's possible with some
--- cunning scheme where we introduce regular (unification) variables that then
--- unify to skolem variables? For now we err on the side of caution and detect
--- this explicitly; we /may/ want to reconsider that at some point if the check
--- turns out to be expensive in practice.
---
--- >>> :{
---   let cycle :: (Let a b, Let b a) => (a, b) -> (a, b)
---       cycle (a, b) = (castEqual b, castEqual a)
---   in cycle ('a', 'b')
--- :}
--- ...
--- ...Cycle in type-level let bindings: a := b, b := a
--- ...
-letCycle :: ()
-letCycle = ()
-
--- | Non-skolem LHS
---
--- See 'NonSkolemLHS' for details.
---
--- >>> :{
---   \(x :: a) ->
---     let
---       y :: Let a Integer => a
---       y = castEqual (1 :: Integer)
---     in y
--- :}
--- ...
--- ...Let with non-skolem LHS: a := Integer
--- ...
-letWithNonSkolemLHS :: ()
-letWithNonSkolemLHS = ()
-
-{-------------------------------------------------------------------------------
-  Sanity check
--------------------------------------------------------------------------------}
-
--- | Make sure the plugin works (independent of doctest)
-sanityCheck :: Int
-sanityCheck = castEqual (1 :: Int)
-
-main :: IO ()
-main = print sanityCheck
diff --git a/doctest/DoctestTypeLet.hs b/doctest/DoctestTypeLet.hs
deleted file mode 100644
--- a/doctest/DoctestTypeLet.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- | Doctest driver
---
--- This entire module is taken directly from
--- <https://hackage.haskell.org/package/cabal-doctest>.
-module Main where
-
-import Build_doctests (Component (..), components)
-import Data.Foldable (for_)
-import System.Environment (unsetEnv)
-import Test.DocTest (doctest)
-
-main :: IO ()
-main = do
-    for_ components $ \(Component name flags pkgs sources) -> do
-      print name
-      putStrLn "----------------------------------------"
-      let args = flags ++ pkgs ++ sources
-      unsetEnv "GHC_ENVIRONMENT"
-      doctest args
diff --git a/src/TypeLet/Plugin/NameResolution.hs b/src/TypeLet/Plugin/NameResolution.hs
--- a/src/TypeLet/Plugin/NameResolution.hs
+++ b/src/TypeLet/Plugin/NameResolution.hs
@@ -22,7 +22,7 @@
 
 resolveNames :: TcPluginM 'Init ResolvedNames
 resolveNames = do
-    m <- do r <- findImportedModule typeletMod (Just typeletPkg)
+    m <- do r <- findImportedModule typeletMod (OtherPkg typeletUnitId)
             case r of
               Found _ m  -> return m
               _otherwise -> panic $ "Could not find "
@@ -38,6 +38,5 @@
     typeletMod :: ModuleName
     typeletMod = mkModuleName "TypeLet.UserAPI"
 
-    typeletPkg :: FastString
-    typeletPkg = fsLit "typelet"
-
+    typeletUnitId :: UnitId
+    typeletUnitId = stringToUnitId "typelet"
diff --git a/src/TypeLet/UserAPI.hs b/src/TypeLet/UserAPI.hs
--- a/src/TypeLet/UserAPI.hs
+++ b/src/TypeLet/UserAPI.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE TypeApplications #-}
+
 module TypeLet.UserAPI (
     -- * Main classes
     Let
@@ -7,6 +9,7 @@
   , LetT(..)
   , letT
   , letT'
+  , constructLet
   , LetAs(..)
   , letAs
   , letAs'
@@ -98,10 +101,10 @@
 -- | CPS form of 'letT'
 --
 -- While this is more convenient to use, the @r@ parameter itself requires
--- careful thought.
+-- careful thought; see also 'constructLet'.
 letT' :: forall r a. Proxy a -> (forall b. Let b a => Proxy b -> r) -> r
 {-# NOINLINE letT' #-}
-letT' pa k = case letT pa of LetT pb -> k pb
+letT' = letAs'
 
 -- | Used together with 'letAs' to pair a type-level let binding with a cast
 --
@@ -128,4 +131,69 @@
 -- See also comments for 'letT''.
 letAs' :: forall r f a. f a -> (forall b. Let b a => f b -> r) -> r
 {-# NOINLINE letAs' #-}
-letAs' fa k = case letAs fa of LetAs fb -> k fb
+letAs' fa k = k fa
+
+-- | Dual to 'letAs''
+--
+-- Where 'letAs'' /takes/ an existing value and then /introduces/ a type
+-- variable, 'constructLet' is used to /produce/ a value and then /eliminate/ a
+-- type variable.
+--
+-- Consider constructing a heterogenous list @[x, y, z]@. Without the @typelet@
+-- library this might look something like
+--
+-- > hlist :: HList '[X, Y, Z]
+-- > hlist =
+-- >     HCons @X @'[Y, Z] x
+-- >   $ HCons @Y @'[   Z] y
+-- >   $ HCons @Z @'[    ] z
+-- >   $ HNil
+--
+-- The problem here is that tail list argument to @HCons@, and causes this
+-- example to be quadratic in size. With @letAs'@ we could write this as
+--
+-- > hlist :: HList '[X, Y, Z]
+-- > hlist =
+-- >   letAs' (HCons @Z @'[] z Nil) $ \(xs2 :: HList ts2) ->
+-- >   letAs' (HCons @Y @ts2 y xs2) $ \(xs1 :: HList ts1) ->
+-- >   letAs' (HCons @X @ts1 x xs1) $ (\xs0 :: HList ts0) ->
+-- >   castEqual xs0
+--
+-- Here we are using @letAs'@ to introduce a type variable for each partial
+-- list, thereby avoiding the repeated lists in the type arguments. However,
+-- if we write it like this, there is an additional repeated list in the
+-- implicit continuation type argument @r@ to @letAs'@; making that argument
+-- explicit, the above code is really this:
+--
+-- > hlist :: HList '[X, Y, Z]
+-- > hlist =
+-- >   letAs' @(HList '[X, Y, Z]) (HCons @Z @'[] z Nil) $ \(xs2 :: HList ts2) ->
+-- >   letAs' @(HList '[X, Y, Z]) (HCons @Y @ts2 y xs2) $ \(xs1 :: HList ts1) ->
+-- >   letAs' @(HList '[X, Y, Z]) (HCons @X @ts1 x xs1) $ (\xs0 :: HList ts0) ->
+-- >   castEqual xs0
+--
+-- The solution is to introduce one more type variable for the whole list, and
+-- use that as the top-level:
+--
+-- > hlist :: HList '[X, Y, Z]
+-- > hlist = constructLet $ \(_ :: Proxy ts) ->
+-- >   letAs' @(HList ts) (HCons @Z @'[] z Nil) $ \(xs2 :: HList ts2) ->
+-- >   letAs' @(HList ts) (HCons @Y @ts2 y xs2) $ \(xs1 :: HList ts1) ->
+-- >   letAs' @(HList ts) (HCons @X @ts1 x xs1) $ (\xs0 :: HList ts0) ->
+-- >   castEqual xs0
+--
+-- Note that none of these type arguments are necessary; we merely showed them
+-- to illustrate what is going on. The final example can be written as shown
+-- below, and will be linear in size:
+--
+-- > hlist :: HList '[X, Y, Z]
+-- > hlist = constructLet $
+-- >   letAs' (HCons z Nil) $ \xs2 ->
+-- >   letAs' (HCons y xs2) $ \xs1 ->
+-- >   letAs' (HCons x xs1) $ (xs0 ->
+-- >   castEqual xs0
+constructLet :: forall f a. (forall b. Let b a => Proxy b -> f b) -> f a
+constructLet f = f Proxy
+
+
+
diff --git a/test/Test/Size/Ap/Baseline/Baseline010.hs b/test/Test/Size/Ap/Baseline/Baseline010.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Baseline/Baseline010.hs
+++ /dev/null
@@ -1,19 +0,0 @@
-module Test.Size.Ap.Baseline.Baseline010 where
-
-import Test.Infra
-import Test.Size.Ap.Index.Ix010
-
-applyF :: Applicative f => F r -> f r
-applyF f =
-        pure f
-        -- 00 .. 09
-    <*> pure (MkT @"i00")
-    <*> pure (MkT @"i01")
-    <*> pure (MkT @"i02")
-    <*> pure (MkT @"i03")
-    <*> pure (MkT @"i04")
-    <*> pure (MkT @"i05")
-    <*> pure (MkT @"i06")
-    <*> pure (MkT @"i07")
-    <*> pure (MkT @"i08")
-    <*> pure (MkT @"i09")
diff --git a/test/Test/Size/Ap/Baseline/Baseline020.hs b/test/Test/Size/Ap/Baseline/Baseline020.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Baseline/Baseline020.hs
+++ /dev/null
@@ -1,30 +0,0 @@
-module Test.Size.Ap.Baseline.Baseline020 where
-
-import Test.Infra
-import Test.Size.Ap.Index.Ix020
-
-applyF :: Applicative f => F r -> f r
-applyF f =
-        pure f
-        -- 00 .. 09
-    <*> pure (MkT @"i00")
-    <*> pure (MkT @"i01")
-    <*> pure (MkT @"i02")
-    <*> pure (MkT @"i03")
-    <*> pure (MkT @"i04")
-    <*> pure (MkT @"i05")
-    <*> pure (MkT @"i06")
-    <*> pure (MkT @"i07")
-    <*> pure (MkT @"i08")
-    <*> pure (MkT @"i09")
-        -- 10 .. 19
-    <*> pure (MkT @"i10")
-    <*> pure (MkT @"i11")
-    <*> pure (MkT @"i12")
-    <*> pure (MkT @"i13")
-    <*> pure (MkT @"i14")
-    <*> pure (MkT @"i15")
-    <*> pure (MkT @"i16")
-    <*> pure (MkT @"i17")
-    <*> pure (MkT @"i18")
-    <*> pure (MkT @"i19")
diff --git a/test/Test/Size/Ap/Baseline/Baseline030.hs b/test/Test/Size/Ap/Baseline/Baseline030.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Baseline/Baseline030.hs
+++ /dev/null
@@ -1,41 +0,0 @@
-module Test.Size.Ap.Baseline.Baseline030 where
-
-import Test.Infra
-import Test.Size.Ap.Index.Ix030
-
-applyF :: Applicative f => F r -> f r
-applyF f =
-        pure f
-        -- 00 .. 09
-    <*> pure (MkT @"i00")
-    <*> pure (MkT @"i01")
-    <*> pure (MkT @"i02")
-    <*> pure (MkT @"i03")
-    <*> pure (MkT @"i04")
-    <*> pure (MkT @"i05")
-    <*> pure (MkT @"i06")
-    <*> pure (MkT @"i07")
-    <*> pure (MkT @"i08")
-    <*> pure (MkT @"i09")
-        -- 10 .. 19
-    <*> pure (MkT @"i10")
-    <*> pure (MkT @"i11")
-    <*> pure (MkT @"i12")
-    <*> pure (MkT @"i13")
-    <*> pure (MkT @"i14")
-    <*> pure (MkT @"i15")
-    <*> pure (MkT @"i16")
-    <*> pure (MkT @"i17")
-    <*> pure (MkT @"i18")
-    <*> pure (MkT @"i19")
-        -- 20 .. 29
-    <*> pure (MkT @"i20")
-    <*> pure (MkT @"i21")
-    <*> pure (MkT @"i22")
-    <*> pure (MkT @"i23")
-    <*> pure (MkT @"i24")
-    <*> pure (MkT @"i25")
-    <*> pure (MkT @"i26")
-    <*> pure (MkT @"i27")
-    <*> pure (MkT @"i28")
-    <*> pure (MkT @"i29")
diff --git a/test/Test/Size/Ap/Baseline/Baseline040.hs b/test/Test/Size/Ap/Baseline/Baseline040.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Baseline/Baseline040.hs
+++ /dev/null
@@ -1,52 +0,0 @@
-module Test.Size.Ap.Baseline.Baseline040 where
-
-import Test.Infra
-import Test.Size.Ap.Index.Ix040
-
-applyF :: Applicative f => F r -> f r
-applyF f =
-        pure f
-        -- 00 .. 09
-    <*> pure (MkT @"i00")
-    <*> pure (MkT @"i01")
-    <*> pure (MkT @"i02")
-    <*> pure (MkT @"i03")
-    <*> pure (MkT @"i04")
-    <*> pure (MkT @"i05")
-    <*> pure (MkT @"i06")
-    <*> pure (MkT @"i07")
-    <*> pure (MkT @"i08")
-    <*> pure (MkT @"i09")
-        -- 10 .. 19
-    <*> pure (MkT @"i10")
-    <*> pure (MkT @"i11")
-    <*> pure (MkT @"i12")
-    <*> pure (MkT @"i13")
-    <*> pure (MkT @"i14")
-    <*> pure (MkT @"i15")
-    <*> pure (MkT @"i16")
-    <*> pure (MkT @"i17")
-    <*> pure (MkT @"i18")
-    <*> pure (MkT @"i19")
-        -- 20 .. 29
-    <*> pure (MkT @"i20")
-    <*> pure (MkT @"i21")
-    <*> pure (MkT @"i22")
-    <*> pure (MkT @"i23")
-    <*> pure (MkT @"i24")
-    <*> pure (MkT @"i25")
-    <*> pure (MkT @"i26")
-    <*> pure (MkT @"i27")
-    <*> pure (MkT @"i28")
-    <*> pure (MkT @"i29")
-        -- 30 .. 39
-    <*> pure (MkT @"i30")
-    <*> pure (MkT @"i31")
-    <*> pure (MkT @"i32")
-    <*> pure (MkT @"i33")
-    <*> pure (MkT @"i34")
-    <*> pure (MkT @"i35")
-    <*> pure (MkT @"i36")
-    <*> pure (MkT @"i37")
-    <*> pure (MkT @"i38")
-    <*> pure (MkT @"i39")
diff --git a/test/Test/Size/Ap/Baseline/Baseline050.hs b/test/Test/Size/Ap/Baseline/Baseline050.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Baseline/Baseline050.hs
+++ /dev/null
@@ -1,63 +0,0 @@
-module Test.Size.Ap.Baseline.Baseline050 where
-
-import Test.Infra
-import Test.Size.Ap.Index.Ix050
-
-applyF :: Applicative f => F r -> f r
-applyF f =
-        pure f
-        -- 00 .. 09
-    <*> pure (MkT @"i00")
-    <*> pure (MkT @"i01")
-    <*> pure (MkT @"i02")
-    <*> pure (MkT @"i03")
-    <*> pure (MkT @"i04")
-    <*> pure (MkT @"i05")
-    <*> pure (MkT @"i06")
-    <*> pure (MkT @"i07")
-    <*> pure (MkT @"i08")
-    <*> pure (MkT @"i09")
-        -- 10 .. 19
-    <*> pure (MkT @"i10")
-    <*> pure (MkT @"i11")
-    <*> pure (MkT @"i12")
-    <*> pure (MkT @"i13")
-    <*> pure (MkT @"i14")
-    <*> pure (MkT @"i15")
-    <*> pure (MkT @"i16")
-    <*> pure (MkT @"i17")
-    <*> pure (MkT @"i18")
-    <*> pure (MkT @"i19")
-        -- 20 .. 29
-    <*> pure (MkT @"i20")
-    <*> pure (MkT @"i21")
-    <*> pure (MkT @"i22")
-    <*> pure (MkT @"i23")
-    <*> pure (MkT @"i24")
-    <*> pure (MkT @"i25")
-    <*> pure (MkT @"i26")
-    <*> pure (MkT @"i27")
-    <*> pure (MkT @"i28")
-    <*> pure (MkT @"i29")
-        -- 30 .. 39
-    <*> pure (MkT @"i30")
-    <*> pure (MkT @"i31")
-    <*> pure (MkT @"i32")
-    <*> pure (MkT @"i33")
-    <*> pure (MkT @"i34")
-    <*> pure (MkT @"i35")
-    <*> pure (MkT @"i36")
-    <*> pure (MkT @"i37")
-    <*> pure (MkT @"i38")
-    <*> pure (MkT @"i39")
-        -- 40 .. 49
-    <*> pure (MkT @"i40")
-    <*> pure (MkT @"i41")
-    <*> pure (MkT @"i42")
-    <*> pure (MkT @"i43")
-    <*> pure (MkT @"i44")
-    <*> pure (MkT @"i45")
-    <*> pure (MkT @"i46")
-    <*> pure (MkT @"i47")
-    <*> pure (MkT @"i48")
-    <*> pure (MkT @"i49")
diff --git a/test/Test/Size/Ap/Baseline/Baseline060.hs b/test/Test/Size/Ap/Baseline/Baseline060.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Baseline/Baseline060.hs
+++ /dev/null
@@ -1,74 +0,0 @@
-module Test.Size.Ap.Baseline.Baseline060 where
-
-import Test.Infra
-import Test.Size.Ap.Index.Ix060
-
-applyF :: Applicative f => F r -> f r
-applyF f =
-        pure f
-        -- 00 .. 09
-    <*> pure (MkT @"i00")
-    <*> pure (MkT @"i01")
-    <*> pure (MkT @"i02")
-    <*> pure (MkT @"i03")
-    <*> pure (MkT @"i04")
-    <*> pure (MkT @"i05")
-    <*> pure (MkT @"i06")
-    <*> pure (MkT @"i07")
-    <*> pure (MkT @"i08")
-    <*> pure (MkT @"i09")
-        -- 10 .. 19
-    <*> pure (MkT @"i10")
-    <*> pure (MkT @"i11")
-    <*> pure (MkT @"i12")
-    <*> pure (MkT @"i13")
-    <*> pure (MkT @"i14")
-    <*> pure (MkT @"i15")
-    <*> pure (MkT @"i16")
-    <*> pure (MkT @"i17")
-    <*> pure (MkT @"i18")
-    <*> pure (MkT @"i19")
-        -- 20 .. 29
-    <*> pure (MkT @"i20")
-    <*> pure (MkT @"i21")
-    <*> pure (MkT @"i22")
-    <*> pure (MkT @"i23")
-    <*> pure (MkT @"i24")
-    <*> pure (MkT @"i25")
-    <*> pure (MkT @"i26")
-    <*> pure (MkT @"i27")
-    <*> pure (MkT @"i28")
-    <*> pure (MkT @"i29")
-        -- 30 .. 39
-    <*> pure (MkT @"i30")
-    <*> pure (MkT @"i31")
-    <*> pure (MkT @"i32")
-    <*> pure (MkT @"i33")
-    <*> pure (MkT @"i34")
-    <*> pure (MkT @"i35")
-    <*> pure (MkT @"i36")
-    <*> pure (MkT @"i37")
-    <*> pure (MkT @"i38")
-    <*> pure (MkT @"i39")
-        -- 40 .. 49
-    <*> pure (MkT @"i40")
-    <*> pure (MkT @"i41")
-    <*> pure (MkT @"i42")
-    <*> pure (MkT @"i43")
-    <*> pure (MkT @"i44")
-    <*> pure (MkT @"i45")
-    <*> pure (MkT @"i46")
-    <*> pure (MkT @"i47")
-    <*> pure (MkT @"i48")
-    <*> pure (MkT @"i49")
-        -- 50 .. 59
-    <*> pure (MkT @"i50")
-    <*> pure (MkT @"i51")
-    <*> pure (MkT @"i52")
-    <*> pure (MkT @"i53")
-    <*> pure (MkT @"i54")
-    <*> pure (MkT @"i55")
-    <*> pure (MkT @"i56")
-    <*> pure (MkT @"i57")
-    <*> pure (MkT @"i58")
-    <*> pure (MkT @"i59")
diff --git a/test/Test/Size/Ap/Baseline/Baseline070.hs b/test/Test/Size/Ap/Baseline/Baseline070.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Baseline/Baseline070.hs
+++ /dev/null
@@ -1,85 +0,0 @@
-module Test.Size.Ap.Baseline.Baseline070 where
-
-import Test.Infra
-import Test.Size.Ap.Index.Ix070
-
-applyF :: Applicative f => F r -> f r
-applyF f =
-        pure f
-        -- 00 .. 09
-    <*> pure (MkT @"i00")
-    <*> pure (MkT @"i01")
-    <*> pure (MkT @"i02")
-    <*> pure (MkT @"i03")
-    <*> pure (MkT @"i04")
-    <*> pure (MkT @"i05")
-    <*> pure (MkT @"i06")
-    <*> pure (MkT @"i07")
-    <*> pure (MkT @"i08")
-    <*> pure (MkT @"i09")
-        -- 10 .. 19
-    <*> pure (MkT @"i10")
-    <*> pure (MkT @"i11")
-    <*> pure (MkT @"i12")
-    <*> pure (MkT @"i13")
-    <*> pure (MkT @"i14")
-    <*> pure (MkT @"i15")
-    <*> pure (MkT @"i16")
-    <*> pure (MkT @"i17")
-    <*> pure (MkT @"i18")
-    <*> pure (MkT @"i19")
-        -- 20 .. 29
-    <*> pure (MkT @"i20")
-    <*> pure (MkT @"i21")
-    <*> pure (MkT @"i22")
-    <*> pure (MkT @"i23")
-    <*> pure (MkT @"i24")
-    <*> pure (MkT @"i25")
-    <*> pure (MkT @"i26")
-    <*> pure (MkT @"i27")
-    <*> pure (MkT @"i28")
-    <*> pure (MkT @"i29")
-        -- 30 .. 39
-    <*> pure (MkT @"i30")
-    <*> pure (MkT @"i31")
-    <*> pure (MkT @"i32")
-    <*> pure (MkT @"i33")
-    <*> pure (MkT @"i34")
-    <*> pure (MkT @"i35")
-    <*> pure (MkT @"i36")
-    <*> pure (MkT @"i37")
-    <*> pure (MkT @"i38")
-    <*> pure (MkT @"i39")
-        -- 40 .. 49
-    <*> pure (MkT @"i40")
-    <*> pure (MkT @"i41")
-    <*> pure (MkT @"i42")
-    <*> pure (MkT @"i43")
-    <*> pure (MkT @"i44")
-    <*> pure (MkT @"i45")
-    <*> pure (MkT @"i46")
-    <*> pure (MkT @"i47")
-    <*> pure (MkT @"i48")
-    <*> pure (MkT @"i49")
-        -- 50 .. 59
-    <*> pure (MkT @"i50")
-    <*> pure (MkT @"i51")
-    <*> pure (MkT @"i52")
-    <*> pure (MkT @"i53")
-    <*> pure (MkT @"i54")
-    <*> pure (MkT @"i55")
-    <*> pure (MkT @"i56")
-    <*> pure (MkT @"i57")
-    <*> pure (MkT @"i58")
-    <*> pure (MkT @"i59")
-        -- 60 .. 69
-    <*> pure (MkT @"i60")
-    <*> pure (MkT @"i61")
-    <*> pure (MkT @"i62")
-    <*> pure (MkT @"i63")
-    <*> pure (MkT @"i64")
-    <*> pure (MkT @"i65")
-    <*> pure (MkT @"i66")
-    <*> pure (MkT @"i67")
-    <*> pure (MkT @"i68")
-    <*> pure (MkT @"i69")
diff --git a/test/Test/Size/Ap/Baseline/Baseline080.hs b/test/Test/Size/Ap/Baseline/Baseline080.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Baseline/Baseline080.hs
+++ /dev/null
@@ -1,96 +0,0 @@
-module Test.Size.Ap.Baseline.Baseline080 where
-
-import Test.Infra
-import Test.Size.Ap.Index.Ix080
-
-applyF :: Applicative f => F r -> f r
-applyF f =
-        pure f
-        -- 00 .. 09
-    <*> pure (MkT @"i00")
-    <*> pure (MkT @"i01")
-    <*> pure (MkT @"i02")
-    <*> pure (MkT @"i03")
-    <*> pure (MkT @"i04")
-    <*> pure (MkT @"i05")
-    <*> pure (MkT @"i06")
-    <*> pure (MkT @"i07")
-    <*> pure (MkT @"i08")
-    <*> pure (MkT @"i09")
-        -- 10 .. 19
-    <*> pure (MkT @"i10")
-    <*> pure (MkT @"i11")
-    <*> pure (MkT @"i12")
-    <*> pure (MkT @"i13")
-    <*> pure (MkT @"i14")
-    <*> pure (MkT @"i15")
-    <*> pure (MkT @"i16")
-    <*> pure (MkT @"i17")
-    <*> pure (MkT @"i18")
-    <*> pure (MkT @"i19")
-        -- 20 .. 29
-    <*> pure (MkT @"i20")
-    <*> pure (MkT @"i21")
-    <*> pure (MkT @"i22")
-    <*> pure (MkT @"i23")
-    <*> pure (MkT @"i24")
-    <*> pure (MkT @"i25")
-    <*> pure (MkT @"i26")
-    <*> pure (MkT @"i27")
-    <*> pure (MkT @"i28")
-    <*> pure (MkT @"i29")
-        -- 30 .. 39
-    <*> pure (MkT @"i30")
-    <*> pure (MkT @"i31")
-    <*> pure (MkT @"i32")
-    <*> pure (MkT @"i33")
-    <*> pure (MkT @"i34")
-    <*> pure (MkT @"i35")
-    <*> pure (MkT @"i36")
-    <*> pure (MkT @"i37")
-    <*> pure (MkT @"i38")
-    <*> pure (MkT @"i39")
-        -- 40 .. 49
-    <*> pure (MkT @"i40")
-    <*> pure (MkT @"i41")
-    <*> pure (MkT @"i42")
-    <*> pure (MkT @"i43")
-    <*> pure (MkT @"i44")
-    <*> pure (MkT @"i45")
-    <*> pure (MkT @"i46")
-    <*> pure (MkT @"i47")
-    <*> pure (MkT @"i48")
-    <*> pure (MkT @"i49")
-        -- 50 .. 59
-    <*> pure (MkT @"i50")
-    <*> pure (MkT @"i51")
-    <*> pure (MkT @"i52")
-    <*> pure (MkT @"i53")
-    <*> pure (MkT @"i54")
-    <*> pure (MkT @"i55")
-    <*> pure (MkT @"i56")
-    <*> pure (MkT @"i57")
-    <*> pure (MkT @"i58")
-    <*> pure (MkT @"i59")
-        -- 60 .. 69
-    <*> pure (MkT @"i60")
-    <*> pure (MkT @"i61")
-    <*> pure (MkT @"i62")
-    <*> pure (MkT @"i63")
-    <*> pure (MkT @"i64")
-    <*> pure (MkT @"i65")
-    <*> pure (MkT @"i66")
-    <*> pure (MkT @"i67")
-    <*> pure (MkT @"i68")
-    <*> pure (MkT @"i69")
-        -- 70 .. 79
-    <*> pure (MkT @"i70")
-    <*> pure (MkT @"i71")
-    <*> pure (MkT @"i72")
-    <*> pure (MkT @"i73")
-    <*> pure (MkT @"i74")
-    <*> pure (MkT @"i75")
-    <*> pure (MkT @"i76")
-    <*> pure (MkT @"i77")
-    <*> pure (MkT @"i78")
-    <*> pure (MkT @"i79")
diff --git a/test/Test/Size/Ap/Baseline/Baseline090.hs b/test/Test/Size/Ap/Baseline/Baseline090.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Baseline/Baseline090.hs
+++ /dev/null
@@ -1,107 +0,0 @@
-module Test.Size.Ap.Baseline.Baseline090 where
-
-import Test.Infra
-import Test.Size.Ap.Index.Ix090
-
-applyF :: Applicative f => F r -> f r
-applyF f =
-        pure f
-        -- 00 .. 09
-    <*> pure (MkT @"i00")
-    <*> pure (MkT @"i01")
-    <*> pure (MkT @"i02")
-    <*> pure (MkT @"i03")
-    <*> pure (MkT @"i04")
-    <*> pure (MkT @"i05")
-    <*> pure (MkT @"i06")
-    <*> pure (MkT @"i07")
-    <*> pure (MkT @"i08")
-    <*> pure (MkT @"i09")
-        -- 10 .. 19
-    <*> pure (MkT @"i10")
-    <*> pure (MkT @"i11")
-    <*> pure (MkT @"i12")
-    <*> pure (MkT @"i13")
-    <*> pure (MkT @"i14")
-    <*> pure (MkT @"i15")
-    <*> pure (MkT @"i16")
-    <*> pure (MkT @"i17")
-    <*> pure (MkT @"i18")
-    <*> pure (MkT @"i19")
-        -- 20 .. 29
-    <*> pure (MkT @"i20")
-    <*> pure (MkT @"i21")
-    <*> pure (MkT @"i22")
-    <*> pure (MkT @"i23")
-    <*> pure (MkT @"i24")
-    <*> pure (MkT @"i25")
-    <*> pure (MkT @"i26")
-    <*> pure (MkT @"i27")
-    <*> pure (MkT @"i28")
-    <*> pure (MkT @"i29")
-        -- 30 .. 39
-    <*> pure (MkT @"i30")
-    <*> pure (MkT @"i31")
-    <*> pure (MkT @"i32")
-    <*> pure (MkT @"i33")
-    <*> pure (MkT @"i34")
-    <*> pure (MkT @"i35")
-    <*> pure (MkT @"i36")
-    <*> pure (MkT @"i37")
-    <*> pure (MkT @"i38")
-    <*> pure (MkT @"i39")
-        -- 40 .. 49
-    <*> pure (MkT @"i40")
-    <*> pure (MkT @"i41")
-    <*> pure (MkT @"i42")
-    <*> pure (MkT @"i43")
-    <*> pure (MkT @"i44")
-    <*> pure (MkT @"i45")
-    <*> pure (MkT @"i46")
-    <*> pure (MkT @"i47")
-    <*> pure (MkT @"i48")
-    <*> pure (MkT @"i49")
-        -- 50 .. 59
-    <*> pure (MkT @"i50")
-    <*> pure (MkT @"i51")
-    <*> pure (MkT @"i52")
-    <*> pure (MkT @"i53")
-    <*> pure (MkT @"i54")
-    <*> pure (MkT @"i55")
-    <*> pure (MkT @"i56")
-    <*> pure (MkT @"i57")
-    <*> pure (MkT @"i58")
-    <*> pure (MkT @"i59")
-        -- 60 .. 69
-    <*> pure (MkT @"i60")
-    <*> pure (MkT @"i61")
-    <*> pure (MkT @"i62")
-    <*> pure (MkT @"i63")
-    <*> pure (MkT @"i64")
-    <*> pure (MkT @"i65")
-    <*> pure (MkT @"i66")
-    <*> pure (MkT @"i67")
-    <*> pure (MkT @"i68")
-    <*> pure (MkT @"i69")
-        -- 70 .. 79
-    <*> pure (MkT @"i70")
-    <*> pure (MkT @"i71")
-    <*> pure (MkT @"i72")
-    <*> pure (MkT @"i73")
-    <*> pure (MkT @"i74")
-    <*> pure (MkT @"i75")
-    <*> pure (MkT @"i76")
-    <*> pure (MkT @"i77")
-    <*> pure (MkT @"i78")
-    <*> pure (MkT @"i79")
-        -- 80 .. 89
-    <*> pure (MkT @"i80")
-    <*> pure (MkT @"i81")
-    <*> pure (MkT @"i82")
-    <*> pure (MkT @"i83")
-    <*> pure (MkT @"i84")
-    <*> pure (MkT @"i85")
-    <*> pure (MkT @"i86")
-    <*> pure (MkT @"i87")
-    <*> pure (MkT @"i88")
-    <*> pure (MkT @"i89")
diff --git a/test/Test/Size/Ap/Baseline/Baseline100.hs b/test/Test/Size/Ap/Baseline/Baseline100.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Baseline/Baseline100.hs
+++ /dev/null
@@ -1,120 +0,0 @@
-module Test.Size.Ap.Baseline.Baseline100 where
-
-import Test.Infra
-import Test.Size.Ap.Index.Ix100
-
-applyF :: Applicative f => F r -> f r
-applyF f =
-        pure f
-        -- 00 .. 09
-    <*> pure (MkT @"i00")
-    <*> pure (MkT @"i01")
-    <*> pure (MkT @"i02")
-    <*> pure (MkT @"i03")
-    <*> pure (MkT @"i04")
-    <*> pure (MkT @"i05")
-    <*> pure (MkT @"i06")
-    <*> pure (MkT @"i07")
-    <*> pure (MkT @"i08")
-    <*> pure (MkT @"i09")
-        -- 10 .. 19
-    <*> pure (MkT @"i10")
-    <*> pure (MkT @"i11")
-    <*> pure (MkT @"i12")
-    <*> pure (MkT @"i13")
-    <*> pure (MkT @"i14")
-    <*> pure (MkT @"i15")
-    <*> pure (MkT @"i16")
-    <*> pure (MkT @"i17")
-    <*> pure (MkT @"i18")
-    <*> pure (MkT @"i19")
-        -- 20 .. 29
-    <*> pure (MkT @"i20")
-    <*> pure (MkT @"i21")
-    <*> pure (MkT @"i22")
-    <*> pure (MkT @"i23")
-    <*> pure (MkT @"i24")
-    <*> pure (MkT @"i25")
-    <*> pure (MkT @"i26")
-    <*> pure (MkT @"i27")
-    <*> pure (MkT @"i28")
-    <*> pure (MkT @"i29")
-        -- 30 .. 39
-    <*> pure (MkT @"i30")
-    <*> pure (MkT @"i31")
-    <*> pure (MkT @"i32")
-    <*> pure (MkT @"i33")
-    <*> pure (MkT @"i34")
-    <*> pure (MkT @"i35")
-    <*> pure (MkT @"i36")
-    <*> pure (MkT @"i37")
-    <*> pure (MkT @"i38")
-    <*> pure (MkT @"i39")
-        -- 40 .. 49
-    <*> pure (MkT @"i40")
-    <*> pure (MkT @"i41")
-    <*> pure (MkT @"i42")
-    <*> pure (MkT @"i43")
-    <*> pure (MkT @"i44")
-    <*> pure (MkT @"i45")
-    <*> pure (MkT @"i46")
-    <*> pure (MkT @"i47")
-    <*> pure (MkT @"i48")
-    <*> pure (MkT @"i49")
-        -- 50 .. 59
-    <*> pure (MkT @"i50")
-    <*> pure (MkT @"i51")
-    <*> pure (MkT @"i52")
-    <*> pure (MkT @"i53")
-    <*> pure (MkT @"i54")
-    <*> pure (MkT @"i55")
-    <*> pure (MkT @"i56")
-    <*> pure (MkT @"i57")
-    <*> pure (MkT @"i58")
-    <*> pure (MkT @"i59")
-        -- 60 .. 69
-    <*> pure (MkT @"i60")
-    <*> pure (MkT @"i61")
-    <*> pure (MkT @"i62")
-    <*> pure (MkT @"i63")
-    <*> pure (MkT @"i64")
-    <*> pure (MkT @"i65")
-    <*> pure (MkT @"i66")
-    <*> pure (MkT @"i67")
-    <*> pure (MkT @"i68")
-    <*> pure (MkT @"i69")
-        -- 70 .. 79
-    <*> pure (MkT @"i70")
-    <*> pure (MkT @"i71")
-    <*> pure (MkT @"i72")
-    <*> pure (MkT @"i73")
-    <*> pure (MkT @"i74")
-    <*> pure (MkT @"i75")
-    <*> pure (MkT @"i76")
-    <*> pure (MkT @"i77")
-    <*> pure (MkT @"i78")
-    <*> pure (MkT @"i79")
-        -- 80 .. 89
-    <*> pure (MkT @"i80")
-    <*> pure (MkT @"i81")
-    <*> pure (MkT @"i82")
-    <*> pure (MkT @"i83")
-    <*> pure (MkT @"i84")
-    <*> pure (MkT @"i85")
-    <*> pure (MkT @"i86")
-    <*> pure (MkT @"i87")
-    <*> pure (MkT @"i88")
-    <*> pure (MkT @"i89")
-        -- 90 .. 99
-    <*> pure (MkT @"i90")
-    <*> pure (MkT @"i91")
-    <*> pure (MkT @"i92")
-    <*> pure (MkT @"i93")
-    <*> pure (MkT @"i94")
-    <*> pure (MkT @"i95")
-    <*> pure (MkT @"i96")
-    <*> pure (MkT @"i97")
-    <*> pure (MkT @"i98")
-    <*> pure (MkT @"i99")
-
-
diff --git a/test/Test/Size/Ap/Index/Ix010.hs b/test/Test/Size/Ap/Index/Ix010.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Index/Ix010.hs
+++ /dev/null
@@ -1,17 +0,0 @@
-module Test.Size.Ap.Index.Ix010 (F) where
-
-import Test.Infra
-
-type F r =
-       -- 00 .. 09
-       T "i00"
-    -> T "i01"
-    -> T "i02"
-    -> T "i03"
-    -> T "i04"
-    -> T "i05"
-    -> T "i06"
-    -> T "i07"
-    -> T "i08"
-    -> T "i09"
-    -> r
diff --git a/test/Test/Size/Ap/Index/Ix020.hs b/test/Test/Size/Ap/Index/Ix020.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Index/Ix020.hs
+++ /dev/null
@@ -1,28 +0,0 @@
-module Test.Size.Ap.Index.Ix020 (F) where
-
-import Test.Infra
-
-type F r =
-       -- 00 .. 09
-       T "i00"
-    -> T "i01"
-    -> T "i02"
-    -> T "i03"
-    -> T "i04"
-    -> T "i05"
-    -> T "i06"
-    -> T "i07"
-    -> T "i08"
-    -> T "i09"
-       -- 10 .. 19
-    -> T "i10"
-    -> T "i11"
-    -> T "i12"
-    -> T "i13"
-    -> T "i14"
-    -> T "i15"
-    -> T "i16"
-    -> T "i17"
-    -> T "i18"
-    -> T "i19"
-    -> r
diff --git a/test/Test/Size/Ap/Index/Ix030.hs b/test/Test/Size/Ap/Index/Ix030.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Index/Ix030.hs
+++ /dev/null
@@ -1,39 +0,0 @@
-module Test.Size.Ap.Index.Ix030 (F) where
-
-import Test.Infra
-
-type F r =
-       -- 00 .. 09
-       T "i00"
-    -> T "i01"
-    -> T "i02"
-    -> T "i03"
-    -> T "i04"
-    -> T "i05"
-    -> T "i06"
-    -> T "i07"
-    -> T "i08"
-    -> T "i09"
-       -- 10 .. 19
-    -> T "i10"
-    -> T "i11"
-    -> T "i12"
-    -> T "i13"
-    -> T "i14"
-    -> T "i15"
-    -> T "i16"
-    -> T "i17"
-    -> T "i18"
-    -> T "i19"
-       -- 20 .. 29
-    -> T "i20"
-    -> T "i21"
-    -> T "i22"
-    -> T "i23"
-    -> T "i24"
-    -> T "i25"
-    -> T "i26"
-    -> T "i27"
-    -> T "i28"
-    -> T "i29"
-    -> r
diff --git a/test/Test/Size/Ap/Index/Ix040.hs b/test/Test/Size/Ap/Index/Ix040.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Index/Ix040.hs
+++ /dev/null
@@ -1,50 +0,0 @@
-module Test.Size.Ap.Index.Ix040 (F) where
-
-import Test.Infra
-
-type F r =
-       -- 00 .. 09
-       T "i00"
-    -> T "i01"
-    -> T "i02"
-    -> T "i03"
-    -> T "i04"
-    -> T "i05"
-    -> T "i06"
-    -> T "i07"
-    -> T "i08"
-    -> T "i09"
-       -- 10 .. 19
-    -> T "i10"
-    -> T "i11"
-    -> T "i12"
-    -> T "i13"
-    -> T "i14"
-    -> T "i15"
-    -> T "i16"
-    -> T "i17"
-    -> T "i18"
-    -> T "i19"
-       -- 20 .. 29
-    -> T "i20"
-    -> T "i21"
-    -> T "i22"
-    -> T "i23"
-    -> T "i24"
-    -> T "i25"
-    -> T "i26"
-    -> T "i27"
-    -> T "i28"
-    -> T "i29"
-       -- 30 .. 39
-    -> T "i30"
-    -> T "i31"
-    -> T "i32"
-    -> T "i33"
-    -> T "i34"
-    -> T "i35"
-    -> T "i36"
-    -> T "i37"
-    -> T "i38"
-    -> T "i39"
-    -> r
diff --git a/test/Test/Size/Ap/Index/Ix050.hs b/test/Test/Size/Ap/Index/Ix050.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Index/Ix050.hs
+++ /dev/null
@@ -1,61 +0,0 @@
-module Test.Size.Ap.Index.Ix050 (F) where
-
-import Test.Infra
-
-type F r =
-       -- 00 .. 09
-       T "i00"
-    -> T "i01"
-    -> T "i02"
-    -> T "i03"
-    -> T "i04"
-    -> T "i05"
-    -> T "i06"
-    -> T "i07"
-    -> T "i08"
-    -> T "i09"
-       -- 10 .. 19
-    -> T "i10"
-    -> T "i11"
-    -> T "i12"
-    -> T "i13"
-    -> T "i14"
-    -> T "i15"
-    -> T "i16"
-    -> T "i17"
-    -> T "i18"
-    -> T "i19"
-       -- 20 .. 29
-    -> T "i20"
-    -> T "i21"
-    -> T "i22"
-    -> T "i23"
-    -> T "i24"
-    -> T "i25"
-    -> T "i26"
-    -> T "i27"
-    -> T "i28"
-    -> T "i29"
-       -- 30 .. 39
-    -> T "i30"
-    -> T "i31"
-    -> T "i32"
-    -> T "i33"
-    -> T "i34"
-    -> T "i35"
-    -> T "i36"
-    -> T "i37"
-    -> T "i38"
-    -> T "i39"
-       -- 40 .. 49
-    -> T "i40"
-    -> T "i41"
-    -> T "i42"
-    -> T "i43"
-    -> T "i44"
-    -> T "i45"
-    -> T "i46"
-    -> T "i47"
-    -> T "i48"
-    -> T "i49"
-    -> r
diff --git a/test/Test/Size/Ap/Index/Ix060.hs b/test/Test/Size/Ap/Index/Ix060.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Index/Ix060.hs
+++ /dev/null
@@ -1,72 +0,0 @@
-module Test.Size.Ap.Index.Ix060 (F) where
-
-import Test.Infra
-
-type F r =
-       -- 00 .. 09
-       T "i00"
-    -> T "i01"
-    -> T "i02"
-    -> T "i03"
-    -> T "i04"
-    -> T "i05"
-    -> T "i06"
-    -> T "i07"
-    -> T "i08"
-    -> T "i09"
-       -- 10 .. 19
-    -> T "i10"
-    -> T "i11"
-    -> T "i12"
-    -> T "i13"
-    -> T "i14"
-    -> T "i15"
-    -> T "i16"
-    -> T "i17"
-    -> T "i18"
-    -> T "i19"
-       -- 20 .. 29
-    -> T "i20"
-    -> T "i21"
-    -> T "i22"
-    -> T "i23"
-    -> T "i24"
-    -> T "i25"
-    -> T "i26"
-    -> T "i27"
-    -> T "i28"
-    -> T "i29"
-       -- 30 .. 39
-    -> T "i30"
-    -> T "i31"
-    -> T "i32"
-    -> T "i33"
-    -> T "i34"
-    -> T "i35"
-    -> T "i36"
-    -> T "i37"
-    -> T "i38"
-    -> T "i39"
-       -- 40 .. 49
-    -> T "i40"
-    -> T "i41"
-    -> T "i42"
-    -> T "i43"
-    -> T "i44"
-    -> T "i45"
-    -> T "i46"
-    -> T "i47"
-    -> T "i48"
-    -> T "i49"
-       -- 50 .. 59
-    -> T "i50"
-    -> T "i51"
-    -> T "i52"
-    -> T "i53"
-    -> T "i54"
-    -> T "i55"
-    -> T "i56"
-    -> T "i57"
-    -> T "i58"
-    -> T "i59"
-    -> r
diff --git a/test/Test/Size/Ap/Index/Ix070.hs b/test/Test/Size/Ap/Index/Ix070.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Index/Ix070.hs
+++ /dev/null
@@ -1,83 +0,0 @@
-module Test.Size.Ap.Index.Ix070 (F) where
-
-import Test.Infra
-
-type F r =
-       -- 00 .. 09
-       T "i00"
-    -> T "i01"
-    -> T "i02"
-    -> T "i03"
-    -> T "i04"
-    -> T "i05"
-    -> T "i06"
-    -> T "i07"
-    -> T "i08"
-    -> T "i09"
-       -- 10 .. 19
-    -> T "i10"
-    -> T "i11"
-    -> T "i12"
-    -> T "i13"
-    -> T "i14"
-    -> T "i15"
-    -> T "i16"
-    -> T "i17"
-    -> T "i18"
-    -> T "i19"
-       -- 20 .. 29
-    -> T "i20"
-    -> T "i21"
-    -> T "i22"
-    -> T "i23"
-    -> T "i24"
-    -> T "i25"
-    -> T "i26"
-    -> T "i27"
-    -> T "i28"
-    -> T "i29"
-       -- 30 .. 39
-    -> T "i30"
-    -> T "i31"
-    -> T "i32"
-    -> T "i33"
-    -> T "i34"
-    -> T "i35"
-    -> T "i36"
-    -> T "i37"
-    -> T "i38"
-    -> T "i39"
-       -- 40 .. 49
-    -> T "i40"
-    -> T "i41"
-    -> T "i42"
-    -> T "i43"
-    -> T "i44"
-    -> T "i45"
-    -> T "i46"
-    -> T "i47"
-    -> T "i48"
-    -> T "i49"
-       -- 50 .. 59
-    -> T "i50"
-    -> T "i51"
-    -> T "i52"
-    -> T "i53"
-    -> T "i54"
-    -> T "i55"
-    -> T "i56"
-    -> T "i57"
-    -> T "i58"
-    -> T "i59"
-       -- 60 .. 69
-    -> T "i60"
-    -> T "i61"
-    -> T "i62"
-    -> T "i63"
-    -> T "i64"
-    -> T "i65"
-    -> T "i66"
-    -> T "i67"
-    -> T "i68"
-    -> T "i69"
-    -> r
diff --git a/test/Test/Size/Ap/Index/Ix080.hs b/test/Test/Size/Ap/Index/Ix080.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Index/Ix080.hs
+++ /dev/null
@@ -1,94 +0,0 @@
-module Test.Size.Ap.Index.Ix080 (F) where
-
-import Test.Infra
-
-type F r =
-       -- 00 .. 09
-       T "i00"
-    -> T "i01"
-    -> T "i02"
-    -> T "i03"
-    -> T "i04"
-    -> T "i05"
-    -> T "i06"
-    -> T "i07"
-    -> T "i08"
-    -> T "i09"
-       -- 10 .. 19
-    -> T "i10"
-    -> T "i11"
-    -> T "i12"
-    -> T "i13"
-    -> T "i14"
-    -> T "i15"
-    -> T "i16"
-    -> T "i17"
-    -> T "i18"
-    -> T "i19"
-       -- 20 .. 29
-    -> T "i20"
-    -> T "i21"
-    -> T "i22"
-    -> T "i23"
-    -> T "i24"
-    -> T "i25"
-    -> T "i26"
-    -> T "i27"
-    -> T "i28"
-    -> T "i29"
-       -- 30 .. 39
-    -> T "i30"
-    -> T "i31"
-    -> T "i32"
-    -> T "i33"
-    -> T "i34"
-    -> T "i35"
-    -> T "i36"
-    -> T "i37"
-    -> T "i38"
-    -> T "i39"
-       -- 40 .. 49
-    -> T "i40"
-    -> T "i41"
-    -> T "i42"
-    -> T "i43"
-    -> T "i44"
-    -> T "i45"
-    -> T "i46"
-    -> T "i47"
-    -> T "i48"
-    -> T "i49"
-       -- 50 .. 59
-    -> T "i50"
-    -> T "i51"
-    -> T "i52"
-    -> T "i53"
-    -> T "i54"
-    -> T "i55"
-    -> T "i56"
-    -> T "i57"
-    -> T "i58"
-    -> T "i59"
-       -- 60 .. 69
-    -> T "i60"
-    -> T "i61"
-    -> T "i62"
-    -> T "i63"
-    -> T "i64"
-    -> T "i65"
-    -> T "i66"
-    -> T "i67"
-    -> T "i68"
-    -> T "i69"
-       -- 70 .. 79
-    -> T "i70"
-    -> T "i71"
-    -> T "i72"
-    -> T "i73"
-    -> T "i74"
-    -> T "i75"
-    -> T "i76"
-    -> T "i77"
-    -> T "i78"
-    -> T "i79"
-    -> r
diff --git a/test/Test/Size/Ap/Index/Ix090.hs b/test/Test/Size/Ap/Index/Ix090.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Index/Ix090.hs
+++ /dev/null
@@ -1,105 +0,0 @@
-module Test.Size.Ap.Index.Ix090 (F) where
-
-import Test.Infra
-
-type F r =
-       -- 00 .. 09
-       T "i00"
-    -> T "i01"
-    -> T "i02"
-    -> T "i03"
-    -> T "i04"
-    -> T "i05"
-    -> T "i06"
-    -> T "i07"
-    -> T "i08"
-    -> T "i09"
-       -- 10 .. 19
-    -> T "i10"
-    -> T "i11"
-    -> T "i12"
-    -> T "i13"
-    -> T "i14"
-    -> T "i15"
-    -> T "i16"
-    -> T "i17"
-    -> T "i18"
-    -> T "i19"
-       -- 20 .. 29
-    -> T "i20"
-    -> T "i21"
-    -> T "i22"
-    -> T "i23"
-    -> T "i24"
-    -> T "i25"
-    -> T "i26"
-    -> T "i27"
-    -> T "i28"
-    -> T "i29"
-       -- 30 .. 39
-    -> T "i30"
-    -> T "i31"
-    -> T "i32"
-    -> T "i33"
-    -> T "i34"
-    -> T "i35"
-    -> T "i36"
-    -> T "i37"
-    -> T "i38"
-    -> T "i39"
-       -- 40 .. 49
-    -> T "i40"
-    -> T "i41"
-    -> T "i42"
-    -> T "i43"
-    -> T "i44"
-    -> T "i45"
-    -> T "i46"
-    -> T "i47"
-    -> T "i48"
-    -> T "i49"
-       -- 50 .. 59
-    -> T "i50"
-    -> T "i51"
-    -> T "i52"
-    -> T "i53"
-    -> T "i54"
-    -> T "i55"
-    -> T "i56"
-    -> T "i57"
-    -> T "i58"
-    -> T "i59"
-       -- 60 .. 69
-    -> T "i60"
-    -> T "i61"
-    -> T "i62"
-    -> T "i63"
-    -> T "i64"
-    -> T "i65"
-    -> T "i66"
-    -> T "i67"
-    -> T "i68"
-    -> T "i69"
-       -- 70 .. 79
-    -> T "i70"
-    -> T "i71"
-    -> T "i72"
-    -> T "i73"
-    -> T "i74"
-    -> T "i75"
-    -> T "i76"
-    -> T "i77"
-    -> T "i78"
-    -> T "i79"
-       -- 80 .. 89
-    -> T "i80"
-    -> T "i81"
-    -> T "i82"
-    -> T "i83"
-    -> T "i84"
-    -> T "i85"
-    -> T "i86"
-    -> T "i87"
-    -> T "i88"
-    -> T "i89"
-    -> r
diff --git a/test/Test/Size/Ap/Index/Ix100.hs b/test/Test/Size/Ap/Index/Ix100.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Index/Ix100.hs
+++ /dev/null
@@ -1,116 +0,0 @@
-module Test.Size.Ap.Index.Ix100 (F) where
-
-import Test.Infra
-
-type F r =
-       -- 00 .. 09
-       T "i00"
-    -> T "i01"
-    -> T "i02"
-    -> T "i03"
-    -> T "i04"
-    -> T "i05"
-    -> T "i06"
-    -> T "i07"
-    -> T "i08"
-    -> T "i09"
-       -- 10 .. 19
-    -> T "i10"
-    -> T "i11"
-    -> T "i12"
-    -> T "i13"
-    -> T "i14"
-    -> T "i15"
-    -> T "i16"
-    -> T "i17"
-    -> T "i18"
-    -> T "i19"
-       -- 20 .. 29
-    -> T "i20"
-    -> T "i21"
-    -> T "i22"
-    -> T "i23"
-    -> T "i24"
-    -> T "i25"
-    -> T "i26"
-    -> T "i27"
-    -> T "i28"
-    -> T "i29"
-       -- 30 .. 39
-    -> T "i30"
-    -> T "i31"
-    -> T "i32"
-    -> T "i33"
-    -> T "i34"
-    -> T "i35"
-    -> T "i36"
-    -> T "i37"
-    -> T "i38"
-    -> T "i39"
-       -- 40 .. 49
-    -> T "i40"
-    -> T "i41"
-    -> T "i42"
-    -> T "i43"
-    -> T "i44"
-    -> T "i45"
-    -> T "i46"
-    -> T "i47"
-    -> T "i48"
-    -> T "i49"
-       -- 50 .. 59
-    -> T "i50"
-    -> T "i51"
-    -> T "i52"
-    -> T "i53"
-    -> T "i54"
-    -> T "i55"
-    -> T "i56"
-    -> T "i57"
-    -> T "i58"
-    -> T "i59"
-       -- 60 .. 69
-    -> T "i60"
-    -> T "i61"
-    -> T "i62"
-    -> T "i63"
-    -> T "i64"
-    -> T "i65"
-    -> T "i66"
-    -> T "i67"
-    -> T "i68"
-    -> T "i69"
-       -- 70 .. 79
-    -> T "i70"
-    -> T "i71"
-    -> T "i72"
-    -> T "i73"
-    -> T "i74"
-    -> T "i75"
-    -> T "i76"
-    -> T "i77"
-    -> T "i78"
-    -> T "i79"
-       -- 80 .. 89
-    -> T "i80"
-    -> T "i81"
-    -> T "i82"
-    -> T "i83"
-    -> T "i84"
-    -> T "i85"
-    -> T "i86"
-    -> T "i87"
-    -> T "i88"
-    -> T "i89"
-       -- 90 .. 99
-    -> T "i90"
-    -> T "i91"
-    -> T "i92"
-    -> T "i93"
-    -> T "i94"
-    -> T "i95"
-    -> T "i96"
-    -> T "i97"
-    -> T "i98"
-    -> T "i99"
-    -> r
diff --git a/test/Test/Size/Ap/Let/Let010.hs b/test/Test/Size/Ap/Let/Let010.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Let/Let010.hs
+++ /dev/null
@@ -1,54 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.Ap.Let.Let010 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.Ap.Index.Ix010
-
-applyF :: forall f r. Applicative f => F r -> f r
-applyF f =
-    -- 09 .. 00
-    case letT (Proxy @(T "i09" -> r))   of { LetT (_ :: Proxy l09) ->
-    case letT (Proxy @(T "i08" -> l09)) of { LetT (_ :: Proxy l08) ->
-    case letT (Proxy @(T "i07" -> l08)) of { LetT (_ :: Proxy l07) ->
-    case letT (Proxy @(T "i06" -> l07)) of { LetT (_ :: Proxy l06) ->
-    case letT (Proxy @(T "i05" -> l06)) of { LetT (_ :: Proxy l05) ->
-    case letT (Proxy @(T "i04" -> l05)) of { LetT (_ :: Proxy l04) ->
-    case letT (Proxy @(T "i03" -> l04)) of { LetT (_ :: Proxy l03) ->
-    case letT (Proxy @(T "i02" -> l03)) of { LetT (_ :: Proxy l02) ->
-    case letT (Proxy @(T "i01" -> l02)) of { LetT (_ :: Proxy l01) ->
-    case letT (Proxy @(T "i00" -> l01)) of { LetT (_ :: Proxy l00) ->
-
-      let -- 00 .. 09
-          f00 :: f l00
-          f01 :: f l01
-          f02 :: f l02
-          f03 :: f l03
-          f04 :: f l04
-          f05 :: f l05
-          f06 :: f l06
-          f07 :: f l07
-          f08 :: f l08
-          f09 :: f l09
-
-          res :: f r
-
-          -- 00 .. 09
-          f00 = pure (castEqual f)
-          f01 = castEqual f00 <*> pure (MkT @"i00")
-          f02 = castEqual f01 <*> pure (MkT @"i01")
-          f03 = castEqual f02 <*> pure (MkT @"i02")
-          f04 = castEqual f03 <*> pure (MkT @"i03")
-          f05 = castEqual f04 <*> pure (MkT @"i04")
-          f06 = castEqual f05 <*> pure (MkT @"i05")
-          f07 = castEqual f06 <*> pure (MkT @"i06")
-          f08 = castEqual f07 <*> pure (MkT @"i07")
-          f09 = castEqual f08 <*> pure (MkT @"i08")
-
-          res = castEqual f09 <*> pure (MkT @"i09")
-
-      in res
-
-    }}}}}}}}}}
diff --git a/test/Test/Size/Ap/Let/Let020.hs b/test/Test/Size/Ap/Let/Let020.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Let/Let020.hs
+++ /dev/null
@@ -1,88 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.Ap.Let.Let020 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.Ap.Index.Ix020
-
-applyF :: forall f r. Applicative f => F r -> f r
-applyF f =
-    -- 19 .. 10
-    case letT (Proxy @(T "i19" -> r))   of { LetT (_ :: Proxy l19) ->
-    case letT (Proxy @(T "i18" -> l19)) of { LetT (_ :: Proxy l18) ->
-    case letT (Proxy @(T "i17" -> l18)) of { LetT (_ :: Proxy l17) ->
-    case letT (Proxy @(T "i16" -> l17)) of { LetT (_ :: Proxy l16) ->
-    case letT (Proxy @(T "i15" -> l16)) of { LetT (_ :: Proxy l15) ->
-    case letT (Proxy @(T "i14" -> l15)) of { LetT (_ :: Proxy l14) ->
-    case letT (Proxy @(T "i13" -> l14)) of { LetT (_ :: Proxy l13) ->
-    case letT (Proxy @(T "i12" -> l13)) of { LetT (_ :: Proxy l12) ->
-    case letT (Proxy @(T "i11" -> l12)) of { LetT (_ :: Proxy l11) ->
-    case letT (Proxy @(T "i10" -> l11)) of { LetT (_ :: Proxy l10) ->
-    -- 09 .. 00
-    case letT (Proxy @(T "i09" -> l10)) of { LetT (_ :: Proxy l09) ->
-    case letT (Proxy @(T "i08" -> l09)) of { LetT (_ :: Proxy l08) ->
-    case letT (Proxy @(T "i07" -> l08)) of { LetT (_ :: Proxy l07) ->
-    case letT (Proxy @(T "i06" -> l07)) of { LetT (_ :: Proxy l06) ->
-    case letT (Proxy @(T "i05" -> l06)) of { LetT (_ :: Proxy l05) ->
-    case letT (Proxy @(T "i04" -> l05)) of { LetT (_ :: Proxy l04) ->
-    case letT (Proxy @(T "i03" -> l04)) of { LetT (_ :: Proxy l03) ->
-    case letT (Proxy @(T "i02" -> l03)) of { LetT (_ :: Proxy l02) ->
-    case letT (Proxy @(T "i01" -> l02)) of { LetT (_ :: Proxy l01) ->
-    case letT (Proxy @(T "i00" -> l01)) of { LetT (_ :: Proxy l00) ->
-
-      let -- 00 .. 09
-          f00 :: f l00
-          f01 :: f l01
-          f02 :: f l02
-          f03 :: f l03
-          f04 :: f l04
-          f05 :: f l05
-          f06 :: f l06
-          f07 :: f l07
-          f08 :: f l08
-          f09 :: f l09
-          -- 10 .. 19
-          f10 :: f l10
-          f11 :: f l11
-          f12 :: f l12
-          f13 :: f l13
-          f14 :: f l14
-          f15 :: f l15
-          f16 :: f l16
-          f17 :: f l17
-          f18 :: f l18
-          f19 :: f l19
-
-          res :: f r
-
-          -- 00 .. 09
-          f00 = pure (castEqual f)
-          f01 = castEqual f00 <*> pure (MkT @"i00")
-          f02 = castEqual f01 <*> pure (MkT @"i01")
-          f03 = castEqual f02 <*> pure (MkT @"i02")
-          f04 = castEqual f03 <*> pure (MkT @"i03")
-          f05 = castEqual f04 <*> pure (MkT @"i04")
-          f06 = castEqual f05 <*> pure (MkT @"i05")
-          f07 = castEqual f06 <*> pure (MkT @"i06")
-          f08 = castEqual f07 <*> pure (MkT @"i07")
-          f09 = castEqual f08 <*> pure (MkT @"i08")
-          -- 10 .. 19
-          f10 = castEqual f09 <*> pure (MkT @"i09")
-          f11 = castEqual f10 <*> pure (MkT @"i10")
-          f12 = castEqual f11 <*> pure (MkT @"i11")
-          f13 = castEqual f12 <*> pure (MkT @"i12")
-          f14 = castEqual f13 <*> pure (MkT @"i13")
-          f15 = castEqual f14 <*> pure (MkT @"i14")
-          f16 = castEqual f15 <*> pure (MkT @"i15")
-          f17 = castEqual f16 <*> pure (MkT @"i16")
-          f18 = castEqual f17 <*> pure (MkT @"i17")
-          f19 = castEqual f18 <*> pure (MkT @"i18")
-
-          res = castEqual f19 <*> pure (MkT @"i19")
-
-      in res
-
-    }}}}}}}}}}
-    }}}}}}}}}}
diff --git a/test/Test/Size/Ap/Let/Let030.hs b/test/Test/Size/Ap/Let/Let030.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Let/Let030.hs
+++ /dev/null
@@ -1,122 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.Ap.Let.Let030 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.Ap.Index.Ix030
-
-applyF :: forall f r. Applicative f => F r -> f r
-applyF f =
-    -- 29 .. 20
-    case letT (Proxy @(T "i29" -> r))   of { LetT (_ :: Proxy l29) ->
-    case letT (Proxy @(T "i28" -> l29)) of { LetT (_ :: Proxy l28) ->
-    case letT (Proxy @(T "i27" -> l28)) of { LetT (_ :: Proxy l27) ->
-    case letT (Proxy @(T "i26" -> l27)) of { LetT (_ :: Proxy l26) ->
-    case letT (Proxy @(T "i25" -> l26)) of { LetT (_ :: Proxy l25) ->
-    case letT (Proxy @(T "i24" -> l25)) of { LetT (_ :: Proxy l24) ->
-    case letT (Proxy @(T "i23" -> l24)) of { LetT (_ :: Proxy l23) ->
-    case letT (Proxy @(T "i22" -> l23)) of { LetT (_ :: Proxy l22) ->
-    case letT (Proxy @(T "i21" -> l22)) of { LetT (_ :: Proxy l21) ->
-    case letT (Proxy @(T "i20" -> l21)) of { LetT (_ :: Proxy l20) ->
-    -- 19 .. 10
-    case letT (Proxy @(T "i19" -> l20)) of { LetT (_ :: Proxy l19) ->
-    case letT (Proxy @(T "i18" -> l19)) of { LetT (_ :: Proxy l18) ->
-    case letT (Proxy @(T "i17" -> l18)) of { LetT (_ :: Proxy l17) ->
-    case letT (Proxy @(T "i16" -> l17)) of { LetT (_ :: Proxy l16) ->
-    case letT (Proxy @(T "i15" -> l16)) of { LetT (_ :: Proxy l15) ->
-    case letT (Proxy @(T "i14" -> l15)) of { LetT (_ :: Proxy l14) ->
-    case letT (Proxy @(T "i13" -> l14)) of { LetT (_ :: Proxy l13) ->
-    case letT (Proxy @(T "i12" -> l13)) of { LetT (_ :: Proxy l12) ->
-    case letT (Proxy @(T "i11" -> l12)) of { LetT (_ :: Proxy l11) ->
-    case letT (Proxy @(T "i10" -> l11)) of { LetT (_ :: Proxy l10) ->
-    -- 09 .. 00
-    case letT (Proxy @(T "i09" -> l10)) of { LetT (_ :: Proxy l09) ->
-    case letT (Proxy @(T "i08" -> l09)) of { LetT (_ :: Proxy l08) ->
-    case letT (Proxy @(T "i07" -> l08)) of { LetT (_ :: Proxy l07) ->
-    case letT (Proxy @(T "i06" -> l07)) of { LetT (_ :: Proxy l06) ->
-    case letT (Proxy @(T "i05" -> l06)) of { LetT (_ :: Proxy l05) ->
-    case letT (Proxy @(T "i04" -> l05)) of { LetT (_ :: Proxy l04) ->
-    case letT (Proxy @(T "i03" -> l04)) of { LetT (_ :: Proxy l03) ->
-    case letT (Proxy @(T "i02" -> l03)) of { LetT (_ :: Proxy l02) ->
-    case letT (Proxy @(T "i01" -> l02)) of { LetT (_ :: Proxy l01) ->
-    case letT (Proxy @(T "i00" -> l01)) of { LetT (_ :: Proxy l00) ->
-
-      let -- 00 .. 09
-          f00 :: f l00
-          f01 :: f l01
-          f02 :: f l02
-          f03 :: f l03
-          f04 :: f l04
-          f05 :: f l05
-          f06 :: f l06
-          f07 :: f l07
-          f08 :: f l08
-          f09 :: f l09
-          -- 10 .. 19
-          f10 :: f l10
-          f11 :: f l11
-          f12 :: f l12
-          f13 :: f l13
-          f14 :: f l14
-          f15 :: f l15
-          f16 :: f l16
-          f17 :: f l17
-          f18 :: f l18
-          f19 :: f l19
-          -- 20 .. 29
-          f20 :: f l20
-          f21 :: f l21
-          f22 :: f l22
-          f23 :: f l23
-          f24 :: f l24
-          f25 :: f l25
-          f26 :: f l26
-          f27 :: f l27
-          f28 :: f l28
-          f29 :: f l29
-
-          res :: f r
-
-          -- 00 .. 09
-          f00 = pure (castEqual f)
-          f01 = castEqual f00 <*> pure (MkT @"i00")
-          f02 = castEqual f01 <*> pure (MkT @"i01")
-          f03 = castEqual f02 <*> pure (MkT @"i02")
-          f04 = castEqual f03 <*> pure (MkT @"i03")
-          f05 = castEqual f04 <*> pure (MkT @"i04")
-          f06 = castEqual f05 <*> pure (MkT @"i05")
-          f07 = castEqual f06 <*> pure (MkT @"i06")
-          f08 = castEqual f07 <*> pure (MkT @"i07")
-          f09 = castEqual f08 <*> pure (MkT @"i08")
-          -- 10 .. 19
-          f10 = castEqual f09 <*> pure (MkT @"i09")
-          f11 = castEqual f10 <*> pure (MkT @"i10")
-          f12 = castEqual f11 <*> pure (MkT @"i11")
-          f13 = castEqual f12 <*> pure (MkT @"i12")
-          f14 = castEqual f13 <*> pure (MkT @"i13")
-          f15 = castEqual f14 <*> pure (MkT @"i14")
-          f16 = castEqual f15 <*> pure (MkT @"i15")
-          f17 = castEqual f16 <*> pure (MkT @"i16")
-          f18 = castEqual f17 <*> pure (MkT @"i17")
-          f19 = castEqual f18 <*> pure (MkT @"i18")
-          -- 20 .. 29
-          f20 = castEqual f19 <*> pure (MkT @"i19")
-          f21 = castEqual f20 <*> pure (MkT @"i20")
-          f22 = castEqual f21 <*> pure (MkT @"i21")
-          f23 = castEqual f22 <*> pure (MkT @"i22")
-          f24 = castEqual f23 <*> pure (MkT @"i23")
-          f25 = castEqual f24 <*> pure (MkT @"i24")
-          f26 = castEqual f25 <*> pure (MkT @"i25")
-          f27 = castEqual f26 <*> pure (MkT @"i26")
-          f28 = castEqual f27 <*> pure (MkT @"i27")
-          f29 = castEqual f28 <*> pure (MkT @"i28")
-
-          res = castEqual f29 <*> pure (MkT @"i29")
-
-      in res
-
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
diff --git a/test/Test/Size/Ap/Let/Let040.hs b/test/Test/Size/Ap/Let/Let040.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Let/Let040.hs
+++ /dev/null
@@ -1,156 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.Ap.Let.Let040 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.Ap.Index.Ix040
-
-applyF :: forall f r. Applicative f => F r -> f r
-applyF f =
-    -- 39 .. 30
-    case letT (Proxy @(T "i39" -> r))   of { LetT (_ :: Proxy l39) ->
-    case letT (Proxy @(T "i38" -> l39)) of { LetT (_ :: Proxy l38) ->
-    case letT (Proxy @(T "i37" -> l38)) of { LetT (_ :: Proxy l37) ->
-    case letT (Proxy @(T "i36" -> l37)) of { LetT (_ :: Proxy l36) ->
-    case letT (Proxy @(T "i35" -> l36)) of { LetT (_ :: Proxy l35) ->
-    case letT (Proxy @(T "i34" -> l35)) of { LetT (_ :: Proxy l34) ->
-    case letT (Proxy @(T "i33" -> l34)) of { LetT (_ :: Proxy l33) ->
-    case letT (Proxy @(T "i32" -> l33)) of { LetT (_ :: Proxy l32) ->
-    case letT (Proxy @(T "i31" -> l32)) of { LetT (_ :: Proxy l31) ->
-    case letT (Proxy @(T "i30" -> l31)) of { LetT (_ :: Proxy l30) ->
-    -- 29 .. 20
-    case letT (Proxy @(T "i29" -> l30)) of { LetT (_ :: Proxy l29) ->
-    case letT (Proxy @(T "i28" -> l29)) of { LetT (_ :: Proxy l28) ->
-    case letT (Proxy @(T "i27" -> l28)) of { LetT (_ :: Proxy l27) ->
-    case letT (Proxy @(T "i26" -> l27)) of { LetT (_ :: Proxy l26) ->
-    case letT (Proxy @(T "i25" -> l26)) of { LetT (_ :: Proxy l25) ->
-    case letT (Proxy @(T "i24" -> l25)) of { LetT (_ :: Proxy l24) ->
-    case letT (Proxy @(T "i23" -> l24)) of { LetT (_ :: Proxy l23) ->
-    case letT (Proxy @(T "i22" -> l23)) of { LetT (_ :: Proxy l22) ->
-    case letT (Proxy @(T "i21" -> l22)) of { LetT (_ :: Proxy l21) ->
-    case letT (Proxy @(T "i20" -> l21)) of { LetT (_ :: Proxy l20) ->
-    -- 19 .. 10
-    case letT (Proxy @(T "i19" -> l20)) of { LetT (_ :: Proxy l19) ->
-    case letT (Proxy @(T "i18" -> l19)) of { LetT (_ :: Proxy l18) ->
-    case letT (Proxy @(T "i17" -> l18)) of { LetT (_ :: Proxy l17) ->
-    case letT (Proxy @(T "i16" -> l17)) of { LetT (_ :: Proxy l16) ->
-    case letT (Proxy @(T "i15" -> l16)) of { LetT (_ :: Proxy l15) ->
-    case letT (Proxy @(T "i14" -> l15)) of { LetT (_ :: Proxy l14) ->
-    case letT (Proxy @(T "i13" -> l14)) of { LetT (_ :: Proxy l13) ->
-    case letT (Proxy @(T "i12" -> l13)) of { LetT (_ :: Proxy l12) ->
-    case letT (Proxy @(T "i11" -> l12)) of { LetT (_ :: Proxy l11) ->
-    case letT (Proxy @(T "i10" -> l11)) of { LetT (_ :: Proxy l10) ->
-    -- 09 .. 00
-    case letT (Proxy @(T "i09" -> l10)) of { LetT (_ :: Proxy l09) ->
-    case letT (Proxy @(T "i08" -> l09)) of { LetT (_ :: Proxy l08) ->
-    case letT (Proxy @(T "i07" -> l08)) of { LetT (_ :: Proxy l07) ->
-    case letT (Proxy @(T "i06" -> l07)) of { LetT (_ :: Proxy l06) ->
-    case letT (Proxy @(T "i05" -> l06)) of { LetT (_ :: Proxy l05) ->
-    case letT (Proxy @(T "i04" -> l05)) of { LetT (_ :: Proxy l04) ->
-    case letT (Proxy @(T "i03" -> l04)) of { LetT (_ :: Proxy l03) ->
-    case letT (Proxy @(T "i02" -> l03)) of { LetT (_ :: Proxy l02) ->
-    case letT (Proxy @(T "i01" -> l02)) of { LetT (_ :: Proxy l01) ->
-    case letT (Proxy @(T "i00" -> l01)) of { LetT (_ :: Proxy l00) ->
-
-      let -- 00 .. 09
-          f00 :: f l00
-          f01 :: f l01
-          f02 :: f l02
-          f03 :: f l03
-          f04 :: f l04
-          f05 :: f l05
-          f06 :: f l06
-          f07 :: f l07
-          f08 :: f l08
-          f09 :: f l09
-          -- 10 .. 19
-          f10 :: f l10
-          f11 :: f l11
-          f12 :: f l12
-          f13 :: f l13
-          f14 :: f l14
-          f15 :: f l15
-          f16 :: f l16
-          f17 :: f l17
-          f18 :: f l18
-          f19 :: f l19
-          -- 20 .. 29
-          f20 :: f l20
-          f21 :: f l21
-          f22 :: f l22
-          f23 :: f l23
-          f24 :: f l24
-          f25 :: f l25
-          f26 :: f l26
-          f27 :: f l27
-          f28 :: f l28
-          f29 :: f l29
-          -- 30 .. 39
-          f30 :: f l30
-          f31 :: f l31
-          f32 :: f l32
-          f33 :: f l33
-          f34 :: f l34
-          f35 :: f l35
-          f36 :: f l36
-          f37 :: f l37
-          f38 :: f l38
-          f39 :: f l39
-
-          res :: f r
-
-          -- 00 .. 09
-          f00 = pure (castEqual f)
-          f01 = castEqual f00 <*> pure (MkT @"i00")
-          f02 = castEqual f01 <*> pure (MkT @"i01")
-          f03 = castEqual f02 <*> pure (MkT @"i02")
-          f04 = castEqual f03 <*> pure (MkT @"i03")
-          f05 = castEqual f04 <*> pure (MkT @"i04")
-          f06 = castEqual f05 <*> pure (MkT @"i05")
-          f07 = castEqual f06 <*> pure (MkT @"i06")
-          f08 = castEqual f07 <*> pure (MkT @"i07")
-          f09 = castEqual f08 <*> pure (MkT @"i08")
-          -- 10 .. 19
-          f10 = castEqual f09 <*> pure (MkT @"i09")
-          f11 = castEqual f10 <*> pure (MkT @"i10")
-          f12 = castEqual f11 <*> pure (MkT @"i11")
-          f13 = castEqual f12 <*> pure (MkT @"i12")
-          f14 = castEqual f13 <*> pure (MkT @"i13")
-          f15 = castEqual f14 <*> pure (MkT @"i14")
-          f16 = castEqual f15 <*> pure (MkT @"i15")
-          f17 = castEqual f16 <*> pure (MkT @"i16")
-          f18 = castEqual f17 <*> pure (MkT @"i17")
-          f19 = castEqual f18 <*> pure (MkT @"i18")
-          -- 20 .. 29
-          f20 = castEqual f19 <*> pure (MkT @"i19")
-          f21 = castEqual f20 <*> pure (MkT @"i20")
-          f22 = castEqual f21 <*> pure (MkT @"i21")
-          f23 = castEqual f22 <*> pure (MkT @"i22")
-          f24 = castEqual f23 <*> pure (MkT @"i23")
-          f25 = castEqual f24 <*> pure (MkT @"i24")
-          f26 = castEqual f25 <*> pure (MkT @"i25")
-          f27 = castEqual f26 <*> pure (MkT @"i26")
-          f28 = castEqual f27 <*> pure (MkT @"i27")
-          f29 = castEqual f28 <*> pure (MkT @"i28")
-          -- 30 .. 39
-          f30 = castEqual f29 <*> pure (MkT @"i29")
-          f31 = castEqual f30 <*> pure (MkT @"i30")
-          f32 = castEqual f31 <*> pure (MkT @"i31")
-          f33 = castEqual f32 <*> pure (MkT @"i32")
-          f34 = castEqual f33 <*> pure (MkT @"i33")
-          f35 = castEqual f34 <*> pure (MkT @"i34")
-          f36 = castEqual f35 <*> pure (MkT @"i35")
-          f37 = castEqual f36 <*> pure (MkT @"i36")
-          f38 = castEqual f37 <*> pure (MkT @"i37")
-          f39 = castEqual f38 <*> pure (MkT @"i38")
-
-          res = castEqual f39 <*> pure (MkT @"i39")
-
-      in res
-
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
diff --git a/test/Test/Size/Ap/Let/Let050.hs b/test/Test/Size/Ap/Let/Let050.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Let/Let050.hs
+++ /dev/null
@@ -1,190 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.Ap.Let.Let050 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.Ap.Index.Ix050
-
-applyF :: forall f r. Applicative f => F r -> f r
-applyF f =
-    -- 49 .. 40
-    case letT (Proxy @(T "i49" -> r))   of { LetT (_ :: Proxy l49) ->
-    case letT (Proxy @(T "i48" -> l49)) of { LetT (_ :: Proxy l48) ->
-    case letT (Proxy @(T "i47" -> l48)) of { LetT (_ :: Proxy l47) ->
-    case letT (Proxy @(T "i46" -> l47)) of { LetT (_ :: Proxy l46) ->
-    case letT (Proxy @(T "i45" -> l46)) of { LetT (_ :: Proxy l45) ->
-    case letT (Proxy @(T "i44" -> l45)) of { LetT (_ :: Proxy l44) ->
-    case letT (Proxy @(T "i43" -> l44)) of { LetT (_ :: Proxy l43) ->
-    case letT (Proxy @(T "i42" -> l43)) of { LetT (_ :: Proxy l42) ->
-    case letT (Proxy @(T "i41" -> l42)) of { LetT (_ :: Proxy l41) ->
-    case letT (Proxy @(T "i40" -> l41)) of { LetT (_ :: Proxy l40) ->
-    -- 39 .. 30
-    case letT (Proxy @(T "i39" -> l40)) of { LetT (_ :: Proxy l39) ->
-    case letT (Proxy @(T "i38" -> l39)) of { LetT (_ :: Proxy l38) ->
-    case letT (Proxy @(T "i37" -> l38)) of { LetT (_ :: Proxy l37) ->
-    case letT (Proxy @(T "i36" -> l37)) of { LetT (_ :: Proxy l36) ->
-    case letT (Proxy @(T "i35" -> l36)) of { LetT (_ :: Proxy l35) ->
-    case letT (Proxy @(T "i34" -> l35)) of { LetT (_ :: Proxy l34) ->
-    case letT (Proxy @(T "i33" -> l34)) of { LetT (_ :: Proxy l33) ->
-    case letT (Proxy @(T "i32" -> l33)) of { LetT (_ :: Proxy l32) ->
-    case letT (Proxy @(T "i31" -> l32)) of { LetT (_ :: Proxy l31) ->
-    case letT (Proxy @(T "i30" -> l31)) of { LetT (_ :: Proxy l30) ->
-    -- 29 .. 20
-    case letT (Proxy @(T "i29" -> l30)) of { LetT (_ :: Proxy l29) ->
-    case letT (Proxy @(T "i28" -> l29)) of { LetT (_ :: Proxy l28) ->
-    case letT (Proxy @(T "i27" -> l28)) of { LetT (_ :: Proxy l27) ->
-    case letT (Proxy @(T "i26" -> l27)) of { LetT (_ :: Proxy l26) ->
-    case letT (Proxy @(T "i25" -> l26)) of { LetT (_ :: Proxy l25) ->
-    case letT (Proxy @(T "i24" -> l25)) of { LetT (_ :: Proxy l24) ->
-    case letT (Proxy @(T "i23" -> l24)) of { LetT (_ :: Proxy l23) ->
-    case letT (Proxy @(T "i22" -> l23)) of { LetT (_ :: Proxy l22) ->
-    case letT (Proxy @(T "i21" -> l22)) of { LetT (_ :: Proxy l21) ->
-    case letT (Proxy @(T "i20" -> l21)) of { LetT (_ :: Proxy l20) ->
-    -- 19 .. 10
-    case letT (Proxy @(T "i19" -> l20)) of { LetT (_ :: Proxy l19) ->
-    case letT (Proxy @(T "i18" -> l19)) of { LetT (_ :: Proxy l18) ->
-    case letT (Proxy @(T "i17" -> l18)) of { LetT (_ :: Proxy l17) ->
-    case letT (Proxy @(T "i16" -> l17)) of { LetT (_ :: Proxy l16) ->
-    case letT (Proxy @(T "i15" -> l16)) of { LetT (_ :: Proxy l15) ->
-    case letT (Proxy @(T "i14" -> l15)) of { LetT (_ :: Proxy l14) ->
-    case letT (Proxy @(T "i13" -> l14)) of { LetT (_ :: Proxy l13) ->
-    case letT (Proxy @(T "i12" -> l13)) of { LetT (_ :: Proxy l12) ->
-    case letT (Proxy @(T "i11" -> l12)) of { LetT (_ :: Proxy l11) ->
-    case letT (Proxy @(T "i10" -> l11)) of { LetT (_ :: Proxy l10) ->
-    -- 09 .. 00
-    case letT (Proxy @(T "i09" -> l10)) of { LetT (_ :: Proxy l09) ->
-    case letT (Proxy @(T "i08" -> l09)) of { LetT (_ :: Proxy l08) ->
-    case letT (Proxy @(T "i07" -> l08)) of { LetT (_ :: Proxy l07) ->
-    case letT (Proxy @(T "i06" -> l07)) of { LetT (_ :: Proxy l06) ->
-    case letT (Proxy @(T "i05" -> l06)) of { LetT (_ :: Proxy l05) ->
-    case letT (Proxy @(T "i04" -> l05)) of { LetT (_ :: Proxy l04) ->
-    case letT (Proxy @(T "i03" -> l04)) of { LetT (_ :: Proxy l03) ->
-    case letT (Proxy @(T "i02" -> l03)) of { LetT (_ :: Proxy l02) ->
-    case letT (Proxy @(T "i01" -> l02)) of { LetT (_ :: Proxy l01) ->
-    case letT (Proxy @(T "i00" -> l01)) of { LetT (_ :: Proxy l00) ->
-
-      let -- 00 .. 09
-          f00 :: f l00
-          f01 :: f l01
-          f02 :: f l02
-          f03 :: f l03
-          f04 :: f l04
-          f05 :: f l05
-          f06 :: f l06
-          f07 :: f l07
-          f08 :: f l08
-          f09 :: f l09
-          -- 10 .. 19
-          f10 :: f l10
-          f11 :: f l11
-          f12 :: f l12
-          f13 :: f l13
-          f14 :: f l14
-          f15 :: f l15
-          f16 :: f l16
-          f17 :: f l17
-          f18 :: f l18
-          f19 :: f l19
-          -- 20 .. 29
-          f20 :: f l20
-          f21 :: f l21
-          f22 :: f l22
-          f23 :: f l23
-          f24 :: f l24
-          f25 :: f l25
-          f26 :: f l26
-          f27 :: f l27
-          f28 :: f l28
-          f29 :: f l29
-          -- 30 .. 39
-          f30 :: f l30
-          f31 :: f l31
-          f32 :: f l32
-          f33 :: f l33
-          f34 :: f l34
-          f35 :: f l35
-          f36 :: f l36
-          f37 :: f l37
-          f38 :: f l38
-          f39 :: f l39
-          -- 40 .. 49
-          f40 :: f l40
-          f41 :: f l41
-          f42 :: f l42
-          f43 :: f l43
-          f44 :: f l44
-          f45 :: f l45
-          f46 :: f l46
-          f47 :: f l47
-          f48 :: f l48
-          f49 :: f l49
-
-          res :: f r
-
-          -- 00 .. 09
-          f00 = pure (castEqual f)
-          f01 = castEqual f00 <*> pure (MkT @"i00")
-          f02 = castEqual f01 <*> pure (MkT @"i01")
-          f03 = castEqual f02 <*> pure (MkT @"i02")
-          f04 = castEqual f03 <*> pure (MkT @"i03")
-          f05 = castEqual f04 <*> pure (MkT @"i04")
-          f06 = castEqual f05 <*> pure (MkT @"i05")
-          f07 = castEqual f06 <*> pure (MkT @"i06")
-          f08 = castEqual f07 <*> pure (MkT @"i07")
-          f09 = castEqual f08 <*> pure (MkT @"i08")
-          -- 10 .. 19
-          f10 = castEqual f09 <*> pure (MkT @"i09")
-          f11 = castEqual f10 <*> pure (MkT @"i10")
-          f12 = castEqual f11 <*> pure (MkT @"i11")
-          f13 = castEqual f12 <*> pure (MkT @"i12")
-          f14 = castEqual f13 <*> pure (MkT @"i13")
-          f15 = castEqual f14 <*> pure (MkT @"i14")
-          f16 = castEqual f15 <*> pure (MkT @"i15")
-          f17 = castEqual f16 <*> pure (MkT @"i16")
-          f18 = castEqual f17 <*> pure (MkT @"i17")
-          f19 = castEqual f18 <*> pure (MkT @"i18")
-          -- 20 .. 29
-          f20 = castEqual f19 <*> pure (MkT @"i19")
-          f21 = castEqual f20 <*> pure (MkT @"i20")
-          f22 = castEqual f21 <*> pure (MkT @"i21")
-          f23 = castEqual f22 <*> pure (MkT @"i22")
-          f24 = castEqual f23 <*> pure (MkT @"i23")
-          f25 = castEqual f24 <*> pure (MkT @"i24")
-          f26 = castEqual f25 <*> pure (MkT @"i25")
-          f27 = castEqual f26 <*> pure (MkT @"i26")
-          f28 = castEqual f27 <*> pure (MkT @"i27")
-          f29 = castEqual f28 <*> pure (MkT @"i28")
-          -- 30 .. 39
-          f30 = castEqual f29 <*> pure (MkT @"i29")
-          f31 = castEqual f30 <*> pure (MkT @"i30")
-          f32 = castEqual f31 <*> pure (MkT @"i31")
-          f33 = castEqual f32 <*> pure (MkT @"i32")
-          f34 = castEqual f33 <*> pure (MkT @"i33")
-          f35 = castEqual f34 <*> pure (MkT @"i34")
-          f36 = castEqual f35 <*> pure (MkT @"i35")
-          f37 = castEqual f36 <*> pure (MkT @"i36")
-          f38 = castEqual f37 <*> pure (MkT @"i37")
-          f39 = castEqual f38 <*> pure (MkT @"i38")
-          -- 40 .. 49
-          f40 = castEqual f39 <*> pure (MkT @"i39")
-          f41 = castEqual f40 <*> pure (MkT @"i40")
-          f42 = castEqual f41 <*> pure (MkT @"i41")
-          f43 = castEqual f42 <*> pure (MkT @"i42")
-          f44 = castEqual f43 <*> pure (MkT @"i43")
-          f45 = castEqual f44 <*> pure (MkT @"i44")
-          f46 = castEqual f45 <*> pure (MkT @"i45")
-          f47 = castEqual f46 <*> pure (MkT @"i46")
-          f48 = castEqual f47 <*> pure (MkT @"i47")
-          f49 = castEqual f48 <*> pure (MkT @"i48")
-
-          res = castEqual f49 <*> pure (MkT @"i49")
-
-      in res
-
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
diff --git a/test/Test/Size/Ap/Let/Let060.hs b/test/Test/Size/Ap/Let/Let060.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Let/Let060.hs
+++ /dev/null
@@ -1,224 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.Ap.Let.Let060 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.Ap.Index.Ix060
-
-applyF :: forall f r. Applicative f => F r -> f r
-applyF f =
-    -- 59 .. 50
-    case letT (Proxy @(T "i59" -> r))   of { LetT (_ :: Proxy l59) ->
-    case letT (Proxy @(T "i58" -> l59)) of { LetT (_ :: Proxy l58) ->
-    case letT (Proxy @(T "i57" -> l58)) of { LetT (_ :: Proxy l57) ->
-    case letT (Proxy @(T "i56" -> l57)) of { LetT (_ :: Proxy l56) ->
-    case letT (Proxy @(T "i55" -> l56)) of { LetT (_ :: Proxy l55) ->
-    case letT (Proxy @(T "i54" -> l55)) of { LetT (_ :: Proxy l54) ->
-    case letT (Proxy @(T "i53" -> l54)) of { LetT (_ :: Proxy l53) ->
-    case letT (Proxy @(T "i52" -> l53)) of { LetT (_ :: Proxy l52) ->
-    case letT (Proxy @(T "i51" -> l52)) of { LetT (_ :: Proxy l51) ->
-    case letT (Proxy @(T "i50" -> l51)) of { LetT (_ :: Proxy l50) ->
-    -- 49 .. 40
-    case letT (Proxy @(T "i49" -> l50)) of { LetT (_ :: Proxy l49) ->
-    case letT (Proxy @(T "i48" -> l49)) of { LetT (_ :: Proxy l48) ->
-    case letT (Proxy @(T "i47" -> l48)) of { LetT (_ :: Proxy l47) ->
-    case letT (Proxy @(T "i46" -> l47)) of { LetT (_ :: Proxy l46) ->
-    case letT (Proxy @(T "i45" -> l46)) of { LetT (_ :: Proxy l45) ->
-    case letT (Proxy @(T "i44" -> l45)) of { LetT (_ :: Proxy l44) ->
-    case letT (Proxy @(T "i43" -> l44)) of { LetT (_ :: Proxy l43) ->
-    case letT (Proxy @(T "i42" -> l43)) of { LetT (_ :: Proxy l42) ->
-    case letT (Proxy @(T "i41" -> l42)) of { LetT (_ :: Proxy l41) ->
-    case letT (Proxy @(T "i40" -> l41)) of { LetT (_ :: Proxy l40) ->
-    -- 39 .. 30
-    case letT (Proxy @(T "i39" -> l40)) of { LetT (_ :: Proxy l39) ->
-    case letT (Proxy @(T "i38" -> l39)) of { LetT (_ :: Proxy l38) ->
-    case letT (Proxy @(T "i37" -> l38)) of { LetT (_ :: Proxy l37) ->
-    case letT (Proxy @(T "i36" -> l37)) of { LetT (_ :: Proxy l36) ->
-    case letT (Proxy @(T "i35" -> l36)) of { LetT (_ :: Proxy l35) ->
-    case letT (Proxy @(T "i34" -> l35)) of { LetT (_ :: Proxy l34) ->
-    case letT (Proxy @(T "i33" -> l34)) of { LetT (_ :: Proxy l33) ->
-    case letT (Proxy @(T "i32" -> l33)) of { LetT (_ :: Proxy l32) ->
-    case letT (Proxy @(T "i31" -> l32)) of { LetT (_ :: Proxy l31) ->
-    case letT (Proxy @(T "i30" -> l31)) of { LetT (_ :: Proxy l30) ->
-    -- 29 .. 20
-    case letT (Proxy @(T "i29" -> l30)) of { LetT (_ :: Proxy l29) ->
-    case letT (Proxy @(T "i28" -> l29)) of { LetT (_ :: Proxy l28) ->
-    case letT (Proxy @(T "i27" -> l28)) of { LetT (_ :: Proxy l27) ->
-    case letT (Proxy @(T "i26" -> l27)) of { LetT (_ :: Proxy l26) ->
-    case letT (Proxy @(T "i25" -> l26)) of { LetT (_ :: Proxy l25) ->
-    case letT (Proxy @(T "i24" -> l25)) of { LetT (_ :: Proxy l24) ->
-    case letT (Proxy @(T "i23" -> l24)) of { LetT (_ :: Proxy l23) ->
-    case letT (Proxy @(T "i22" -> l23)) of { LetT (_ :: Proxy l22) ->
-    case letT (Proxy @(T "i21" -> l22)) of { LetT (_ :: Proxy l21) ->
-    case letT (Proxy @(T "i20" -> l21)) of { LetT (_ :: Proxy l20) ->
-    -- 19 .. 10
-    case letT (Proxy @(T "i19" -> l20)) of { LetT (_ :: Proxy l19) ->
-    case letT (Proxy @(T "i18" -> l19)) of { LetT (_ :: Proxy l18) ->
-    case letT (Proxy @(T "i17" -> l18)) of { LetT (_ :: Proxy l17) ->
-    case letT (Proxy @(T "i16" -> l17)) of { LetT (_ :: Proxy l16) ->
-    case letT (Proxy @(T "i15" -> l16)) of { LetT (_ :: Proxy l15) ->
-    case letT (Proxy @(T "i14" -> l15)) of { LetT (_ :: Proxy l14) ->
-    case letT (Proxy @(T "i13" -> l14)) of { LetT (_ :: Proxy l13) ->
-    case letT (Proxy @(T "i12" -> l13)) of { LetT (_ :: Proxy l12) ->
-    case letT (Proxy @(T "i11" -> l12)) of { LetT (_ :: Proxy l11) ->
-    case letT (Proxy @(T "i10" -> l11)) of { LetT (_ :: Proxy l10) ->
-    -- 09 .. 00
-    case letT (Proxy @(T "i09" -> l10)) of { LetT (_ :: Proxy l09) ->
-    case letT (Proxy @(T "i08" -> l09)) of { LetT (_ :: Proxy l08) ->
-    case letT (Proxy @(T "i07" -> l08)) of { LetT (_ :: Proxy l07) ->
-    case letT (Proxy @(T "i06" -> l07)) of { LetT (_ :: Proxy l06) ->
-    case letT (Proxy @(T "i05" -> l06)) of { LetT (_ :: Proxy l05) ->
-    case letT (Proxy @(T "i04" -> l05)) of { LetT (_ :: Proxy l04) ->
-    case letT (Proxy @(T "i03" -> l04)) of { LetT (_ :: Proxy l03) ->
-    case letT (Proxy @(T "i02" -> l03)) of { LetT (_ :: Proxy l02) ->
-    case letT (Proxy @(T "i01" -> l02)) of { LetT (_ :: Proxy l01) ->
-    case letT (Proxy @(T "i00" -> l01)) of { LetT (_ :: Proxy l00) ->
-
-      let -- 00 .. 09
-          f00 :: f l00
-          f01 :: f l01
-          f02 :: f l02
-          f03 :: f l03
-          f04 :: f l04
-          f05 :: f l05
-          f06 :: f l06
-          f07 :: f l07
-          f08 :: f l08
-          f09 :: f l09
-          -- 10 .. 19
-          f10 :: f l10
-          f11 :: f l11
-          f12 :: f l12
-          f13 :: f l13
-          f14 :: f l14
-          f15 :: f l15
-          f16 :: f l16
-          f17 :: f l17
-          f18 :: f l18
-          f19 :: f l19
-          -- 20 .. 29
-          f20 :: f l20
-          f21 :: f l21
-          f22 :: f l22
-          f23 :: f l23
-          f24 :: f l24
-          f25 :: f l25
-          f26 :: f l26
-          f27 :: f l27
-          f28 :: f l28
-          f29 :: f l29
-          -- 30 .. 39
-          f30 :: f l30
-          f31 :: f l31
-          f32 :: f l32
-          f33 :: f l33
-          f34 :: f l34
-          f35 :: f l35
-          f36 :: f l36
-          f37 :: f l37
-          f38 :: f l38
-          f39 :: f l39
-          -- 40 .. 49
-          f40 :: f l40
-          f41 :: f l41
-          f42 :: f l42
-          f43 :: f l43
-          f44 :: f l44
-          f45 :: f l45
-          f46 :: f l46
-          f47 :: f l47
-          f48 :: f l48
-          f49 :: f l49
-          -- 50 .. 59
-          f50 :: f l50
-          f51 :: f l51
-          f52 :: f l52
-          f53 :: f l53
-          f54 :: f l54
-          f55 :: f l55
-          f56 :: f l56
-          f57 :: f l57
-          f58 :: f l58
-          f59 :: f l59
-
-          res :: f r
-
-          -- 00 .. 09
-          f00 = pure (castEqual f)
-          f01 = castEqual f00 <*> pure (MkT @"i00")
-          f02 = castEqual f01 <*> pure (MkT @"i01")
-          f03 = castEqual f02 <*> pure (MkT @"i02")
-          f04 = castEqual f03 <*> pure (MkT @"i03")
-          f05 = castEqual f04 <*> pure (MkT @"i04")
-          f06 = castEqual f05 <*> pure (MkT @"i05")
-          f07 = castEqual f06 <*> pure (MkT @"i06")
-          f08 = castEqual f07 <*> pure (MkT @"i07")
-          f09 = castEqual f08 <*> pure (MkT @"i08")
-          -- 10 .. 19
-          f10 = castEqual f09 <*> pure (MkT @"i09")
-          f11 = castEqual f10 <*> pure (MkT @"i10")
-          f12 = castEqual f11 <*> pure (MkT @"i11")
-          f13 = castEqual f12 <*> pure (MkT @"i12")
-          f14 = castEqual f13 <*> pure (MkT @"i13")
-          f15 = castEqual f14 <*> pure (MkT @"i14")
-          f16 = castEqual f15 <*> pure (MkT @"i15")
-          f17 = castEqual f16 <*> pure (MkT @"i16")
-          f18 = castEqual f17 <*> pure (MkT @"i17")
-          f19 = castEqual f18 <*> pure (MkT @"i18")
-          -- 20 .. 29
-          f20 = castEqual f19 <*> pure (MkT @"i19")
-          f21 = castEqual f20 <*> pure (MkT @"i20")
-          f22 = castEqual f21 <*> pure (MkT @"i21")
-          f23 = castEqual f22 <*> pure (MkT @"i22")
-          f24 = castEqual f23 <*> pure (MkT @"i23")
-          f25 = castEqual f24 <*> pure (MkT @"i24")
-          f26 = castEqual f25 <*> pure (MkT @"i25")
-          f27 = castEqual f26 <*> pure (MkT @"i26")
-          f28 = castEqual f27 <*> pure (MkT @"i27")
-          f29 = castEqual f28 <*> pure (MkT @"i28")
-          -- 30 .. 39
-          f30 = castEqual f29 <*> pure (MkT @"i29")
-          f31 = castEqual f30 <*> pure (MkT @"i30")
-          f32 = castEqual f31 <*> pure (MkT @"i31")
-          f33 = castEqual f32 <*> pure (MkT @"i32")
-          f34 = castEqual f33 <*> pure (MkT @"i33")
-          f35 = castEqual f34 <*> pure (MkT @"i34")
-          f36 = castEqual f35 <*> pure (MkT @"i35")
-          f37 = castEqual f36 <*> pure (MkT @"i36")
-          f38 = castEqual f37 <*> pure (MkT @"i37")
-          f39 = castEqual f38 <*> pure (MkT @"i38")
-          -- 40 .. 49
-          f40 = castEqual f39 <*> pure (MkT @"i39")
-          f41 = castEqual f40 <*> pure (MkT @"i40")
-          f42 = castEqual f41 <*> pure (MkT @"i41")
-          f43 = castEqual f42 <*> pure (MkT @"i42")
-          f44 = castEqual f43 <*> pure (MkT @"i43")
-          f45 = castEqual f44 <*> pure (MkT @"i44")
-          f46 = castEqual f45 <*> pure (MkT @"i45")
-          f47 = castEqual f46 <*> pure (MkT @"i46")
-          f48 = castEqual f47 <*> pure (MkT @"i47")
-          f49 = castEqual f48 <*> pure (MkT @"i48")
-          -- 50 .. 59
-          f50 = castEqual f49 <*> pure (MkT @"i49")
-          f51 = castEqual f50 <*> pure (MkT @"i50")
-          f52 = castEqual f51 <*> pure (MkT @"i51")
-          f53 = castEqual f52 <*> pure (MkT @"i52")
-          f54 = castEqual f53 <*> pure (MkT @"i53")
-          f55 = castEqual f54 <*> pure (MkT @"i54")
-          f56 = castEqual f55 <*> pure (MkT @"i55")
-          f57 = castEqual f56 <*> pure (MkT @"i56")
-          f58 = castEqual f57 <*> pure (MkT @"i57")
-          f59 = castEqual f58 <*> pure (MkT @"i58")
-
-          res = castEqual f59 <*> pure (MkT @"i59")
-
-      in res
-
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
diff --git a/test/Test/Size/Ap/Let/Let070.hs b/test/Test/Size/Ap/Let/Let070.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Let/Let070.hs
+++ /dev/null
@@ -1,258 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.Ap.Let.Let070 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.Ap.Index.Ix070
-
-applyF :: forall f r. Applicative f => F r -> f r
-applyF f =
-    -- 69 .. 60
-    case letT (Proxy @(T "i69" -> r))   of { LetT (_ :: Proxy l69) ->
-    case letT (Proxy @(T "i68" -> l69)) of { LetT (_ :: Proxy l68) ->
-    case letT (Proxy @(T "i67" -> l68)) of { LetT (_ :: Proxy l67) ->
-    case letT (Proxy @(T "i66" -> l67)) of { LetT (_ :: Proxy l66) ->
-    case letT (Proxy @(T "i65" -> l66)) of { LetT (_ :: Proxy l65) ->
-    case letT (Proxy @(T "i64" -> l65)) of { LetT (_ :: Proxy l64) ->
-    case letT (Proxy @(T "i63" -> l64)) of { LetT (_ :: Proxy l63) ->
-    case letT (Proxy @(T "i62" -> l63)) of { LetT (_ :: Proxy l62) ->
-    case letT (Proxy @(T "i61" -> l62)) of { LetT (_ :: Proxy l61) ->
-    case letT (Proxy @(T "i60" -> l61)) of { LetT (_ :: Proxy l60) ->
-    -- 59 .. 50
-    case letT (Proxy @(T "i59" -> l60)) of { LetT (_ :: Proxy l59) ->
-    case letT (Proxy @(T "i58" -> l59)) of { LetT (_ :: Proxy l58) ->
-    case letT (Proxy @(T "i57" -> l58)) of { LetT (_ :: Proxy l57) ->
-    case letT (Proxy @(T "i56" -> l57)) of { LetT (_ :: Proxy l56) ->
-    case letT (Proxy @(T "i55" -> l56)) of { LetT (_ :: Proxy l55) ->
-    case letT (Proxy @(T "i54" -> l55)) of { LetT (_ :: Proxy l54) ->
-    case letT (Proxy @(T "i53" -> l54)) of { LetT (_ :: Proxy l53) ->
-    case letT (Proxy @(T "i52" -> l53)) of { LetT (_ :: Proxy l52) ->
-    case letT (Proxy @(T "i51" -> l52)) of { LetT (_ :: Proxy l51) ->
-    case letT (Proxy @(T "i50" -> l51)) of { LetT (_ :: Proxy l50) ->
-    -- 49 .. 40
-    case letT (Proxy @(T "i49" -> l50)) of { LetT (_ :: Proxy l49) ->
-    case letT (Proxy @(T "i48" -> l49)) of { LetT (_ :: Proxy l48) ->
-    case letT (Proxy @(T "i47" -> l48)) of { LetT (_ :: Proxy l47) ->
-    case letT (Proxy @(T "i46" -> l47)) of { LetT (_ :: Proxy l46) ->
-    case letT (Proxy @(T "i45" -> l46)) of { LetT (_ :: Proxy l45) ->
-    case letT (Proxy @(T "i44" -> l45)) of { LetT (_ :: Proxy l44) ->
-    case letT (Proxy @(T "i43" -> l44)) of { LetT (_ :: Proxy l43) ->
-    case letT (Proxy @(T "i42" -> l43)) of { LetT (_ :: Proxy l42) ->
-    case letT (Proxy @(T "i41" -> l42)) of { LetT (_ :: Proxy l41) ->
-    case letT (Proxy @(T "i40" -> l41)) of { LetT (_ :: Proxy l40) ->
-    -- 39 .. 30
-    case letT (Proxy @(T "i39" -> l40)) of { LetT (_ :: Proxy l39) ->
-    case letT (Proxy @(T "i38" -> l39)) of { LetT (_ :: Proxy l38) ->
-    case letT (Proxy @(T "i37" -> l38)) of { LetT (_ :: Proxy l37) ->
-    case letT (Proxy @(T "i36" -> l37)) of { LetT (_ :: Proxy l36) ->
-    case letT (Proxy @(T "i35" -> l36)) of { LetT (_ :: Proxy l35) ->
-    case letT (Proxy @(T "i34" -> l35)) of { LetT (_ :: Proxy l34) ->
-    case letT (Proxy @(T "i33" -> l34)) of { LetT (_ :: Proxy l33) ->
-    case letT (Proxy @(T "i32" -> l33)) of { LetT (_ :: Proxy l32) ->
-    case letT (Proxy @(T "i31" -> l32)) of { LetT (_ :: Proxy l31) ->
-    case letT (Proxy @(T "i30" -> l31)) of { LetT (_ :: Proxy l30) ->
-    -- 29 .. 20
-    case letT (Proxy @(T "i29" -> l30)) of { LetT (_ :: Proxy l29) ->
-    case letT (Proxy @(T "i28" -> l29)) of { LetT (_ :: Proxy l28) ->
-    case letT (Proxy @(T "i27" -> l28)) of { LetT (_ :: Proxy l27) ->
-    case letT (Proxy @(T "i26" -> l27)) of { LetT (_ :: Proxy l26) ->
-    case letT (Proxy @(T "i25" -> l26)) of { LetT (_ :: Proxy l25) ->
-    case letT (Proxy @(T "i24" -> l25)) of { LetT (_ :: Proxy l24) ->
-    case letT (Proxy @(T "i23" -> l24)) of { LetT (_ :: Proxy l23) ->
-    case letT (Proxy @(T "i22" -> l23)) of { LetT (_ :: Proxy l22) ->
-    case letT (Proxy @(T "i21" -> l22)) of { LetT (_ :: Proxy l21) ->
-    case letT (Proxy @(T "i20" -> l21)) of { LetT (_ :: Proxy l20) ->
-    -- 19 .. 10
-    case letT (Proxy @(T "i19" -> l20)) of { LetT (_ :: Proxy l19) ->
-    case letT (Proxy @(T "i18" -> l19)) of { LetT (_ :: Proxy l18) ->
-    case letT (Proxy @(T "i17" -> l18)) of { LetT (_ :: Proxy l17) ->
-    case letT (Proxy @(T "i16" -> l17)) of { LetT (_ :: Proxy l16) ->
-    case letT (Proxy @(T "i15" -> l16)) of { LetT (_ :: Proxy l15) ->
-    case letT (Proxy @(T "i14" -> l15)) of { LetT (_ :: Proxy l14) ->
-    case letT (Proxy @(T "i13" -> l14)) of { LetT (_ :: Proxy l13) ->
-    case letT (Proxy @(T "i12" -> l13)) of { LetT (_ :: Proxy l12) ->
-    case letT (Proxy @(T "i11" -> l12)) of { LetT (_ :: Proxy l11) ->
-    case letT (Proxy @(T "i10" -> l11)) of { LetT (_ :: Proxy l10) ->
-    -- 09 .. 00
-    case letT (Proxy @(T "i09" -> l10)) of { LetT (_ :: Proxy l09) ->
-    case letT (Proxy @(T "i08" -> l09)) of { LetT (_ :: Proxy l08) ->
-    case letT (Proxy @(T "i07" -> l08)) of { LetT (_ :: Proxy l07) ->
-    case letT (Proxy @(T "i06" -> l07)) of { LetT (_ :: Proxy l06) ->
-    case letT (Proxy @(T "i05" -> l06)) of { LetT (_ :: Proxy l05) ->
-    case letT (Proxy @(T "i04" -> l05)) of { LetT (_ :: Proxy l04) ->
-    case letT (Proxy @(T "i03" -> l04)) of { LetT (_ :: Proxy l03) ->
-    case letT (Proxy @(T "i02" -> l03)) of { LetT (_ :: Proxy l02) ->
-    case letT (Proxy @(T "i01" -> l02)) of { LetT (_ :: Proxy l01) ->
-    case letT (Proxy @(T "i00" -> l01)) of { LetT (_ :: Proxy l00) ->
-
-      let -- 00 .. 09
-          f00 :: f l00
-          f01 :: f l01
-          f02 :: f l02
-          f03 :: f l03
-          f04 :: f l04
-          f05 :: f l05
-          f06 :: f l06
-          f07 :: f l07
-          f08 :: f l08
-          f09 :: f l09
-          -- 10 .. 19
-          f10 :: f l10
-          f11 :: f l11
-          f12 :: f l12
-          f13 :: f l13
-          f14 :: f l14
-          f15 :: f l15
-          f16 :: f l16
-          f17 :: f l17
-          f18 :: f l18
-          f19 :: f l19
-          -- 20 .. 29
-          f20 :: f l20
-          f21 :: f l21
-          f22 :: f l22
-          f23 :: f l23
-          f24 :: f l24
-          f25 :: f l25
-          f26 :: f l26
-          f27 :: f l27
-          f28 :: f l28
-          f29 :: f l29
-          -- 30 .. 39
-          f30 :: f l30
-          f31 :: f l31
-          f32 :: f l32
-          f33 :: f l33
-          f34 :: f l34
-          f35 :: f l35
-          f36 :: f l36
-          f37 :: f l37
-          f38 :: f l38
-          f39 :: f l39
-          -- 40 .. 49
-          f40 :: f l40
-          f41 :: f l41
-          f42 :: f l42
-          f43 :: f l43
-          f44 :: f l44
-          f45 :: f l45
-          f46 :: f l46
-          f47 :: f l47
-          f48 :: f l48
-          f49 :: f l49
-          -- 50 .. 59
-          f50 :: f l50
-          f51 :: f l51
-          f52 :: f l52
-          f53 :: f l53
-          f54 :: f l54
-          f55 :: f l55
-          f56 :: f l56
-          f57 :: f l57
-          f58 :: f l58
-          f59 :: f l59
-          -- 60 .. 69
-          f60 :: f l60
-          f61 :: f l61
-          f62 :: f l62
-          f63 :: f l63
-          f64 :: f l64
-          f65 :: f l65
-          f66 :: f l66
-          f67 :: f l67
-          f68 :: f l68
-          f69 :: f l69
-
-          res :: f r
-
-          -- 00 .. 09
-          f00 = pure (castEqual f)
-          f01 = castEqual f00 <*> pure (MkT @"i00")
-          f02 = castEqual f01 <*> pure (MkT @"i01")
-          f03 = castEqual f02 <*> pure (MkT @"i02")
-          f04 = castEqual f03 <*> pure (MkT @"i03")
-          f05 = castEqual f04 <*> pure (MkT @"i04")
-          f06 = castEqual f05 <*> pure (MkT @"i05")
-          f07 = castEqual f06 <*> pure (MkT @"i06")
-          f08 = castEqual f07 <*> pure (MkT @"i07")
-          f09 = castEqual f08 <*> pure (MkT @"i08")
-          -- 10 .. 19
-          f10 = castEqual f09 <*> pure (MkT @"i09")
-          f11 = castEqual f10 <*> pure (MkT @"i10")
-          f12 = castEqual f11 <*> pure (MkT @"i11")
-          f13 = castEqual f12 <*> pure (MkT @"i12")
-          f14 = castEqual f13 <*> pure (MkT @"i13")
-          f15 = castEqual f14 <*> pure (MkT @"i14")
-          f16 = castEqual f15 <*> pure (MkT @"i15")
-          f17 = castEqual f16 <*> pure (MkT @"i16")
-          f18 = castEqual f17 <*> pure (MkT @"i17")
-          f19 = castEqual f18 <*> pure (MkT @"i18")
-          -- 20 .. 29
-          f20 = castEqual f19 <*> pure (MkT @"i19")
-          f21 = castEqual f20 <*> pure (MkT @"i20")
-          f22 = castEqual f21 <*> pure (MkT @"i21")
-          f23 = castEqual f22 <*> pure (MkT @"i22")
-          f24 = castEqual f23 <*> pure (MkT @"i23")
-          f25 = castEqual f24 <*> pure (MkT @"i24")
-          f26 = castEqual f25 <*> pure (MkT @"i25")
-          f27 = castEqual f26 <*> pure (MkT @"i26")
-          f28 = castEqual f27 <*> pure (MkT @"i27")
-          f29 = castEqual f28 <*> pure (MkT @"i28")
-          -- 30 .. 39
-          f30 = castEqual f29 <*> pure (MkT @"i29")
-          f31 = castEqual f30 <*> pure (MkT @"i30")
-          f32 = castEqual f31 <*> pure (MkT @"i31")
-          f33 = castEqual f32 <*> pure (MkT @"i32")
-          f34 = castEqual f33 <*> pure (MkT @"i33")
-          f35 = castEqual f34 <*> pure (MkT @"i34")
-          f36 = castEqual f35 <*> pure (MkT @"i35")
-          f37 = castEqual f36 <*> pure (MkT @"i36")
-          f38 = castEqual f37 <*> pure (MkT @"i37")
-          f39 = castEqual f38 <*> pure (MkT @"i38")
-          -- 40 .. 49
-          f40 = castEqual f39 <*> pure (MkT @"i39")
-          f41 = castEqual f40 <*> pure (MkT @"i40")
-          f42 = castEqual f41 <*> pure (MkT @"i41")
-          f43 = castEqual f42 <*> pure (MkT @"i42")
-          f44 = castEqual f43 <*> pure (MkT @"i43")
-          f45 = castEqual f44 <*> pure (MkT @"i44")
-          f46 = castEqual f45 <*> pure (MkT @"i45")
-          f47 = castEqual f46 <*> pure (MkT @"i46")
-          f48 = castEqual f47 <*> pure (MkT @"i47")
-          f49 = castEqual f48 <*> pure (MkT @"i48")
-          -- 50 .. 59
-          f50 = castEqual f49 <*> pure (MkT @"i49")
-          f51 = castEqual f50 <*> pure (MkT @"i50")
-          f52 = castEqual f51 <*> pure (MkT @"i51")
-          f53 = castEqual f52 <*> pure (MkT @"i52")
-          f54 = castEqual f53 <*> pure (MkT @"i53")
-          f55 = castEqual f54 <*> pure (MkT @"i54")
-          f56 = castEqual f55 <*> pure (MkT @"i55")
-          f57 = castEqual f56 <*> pure (MkT @"i56")
-          f58 = castEqual f57 <*> pure (MkT @"i57")
-          f59 = castEqual f58 <*> pure (MkT @"i58")
-          -- 60 .. 69
-          f60 = castEqual f59 <*> pure (MkT @"i59")
-          f61 = castEqual f60 <*> pure (MkT @"i60")
-          f62 = castEqual f61 <*> pure (MkT @"i61")
-          f63 = castEqual f62 <*> pure (MkT @"i62")
-          f64 = castEqual f63 <*> pure (MkT @"i63")
-          f65 = castEqual f64 <*> pure (MkT @"i64")
-          f66 = castEqual f65 <*> pure (MkT @"i65")
-          f67 = castEqual f66 <*> pure (MkT @"i66")
-          f68 = castEqual f67 <*> pure (MkT @"i67")
-          f69 = castEqual f68 <*> pure (MkT @"i68")
-
-          res = castEqual f69 <*> pure (MkT @"i69")
-
-      in res
-
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
diff --git a/test/Test/Size/Ap/Let/Let080.hs b/test/Test/Size/Ap/Let/Let080.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Let/Let080.hs
+++ /dev/null
@@ -1,292 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.Ap.Let.Let080 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.Ap.Index.Ix080
-
-applyF :: forall f r. Applicative f => F r -> f r
-applyF f =
-    -- 79 .. 70
-    case letT (Proxy @(T "i79" -> r))   of { LetT (_ :: Proxy l79) ->
-    case letT (Proxy @(T "i78" -> l79)) of { LetT (_ :: Proxy l78) ->
-    case letT (Proxy @(T "i77" -> l78)) of { LetT (_ :: Proxy l77) ->
-    case letT (Proxy @(T "i76" -> l77)) of { LetT (_ :: Proxy l76) ->
-    case letT (Proxy @(T "i75" -> l76)) of { LetT (_ :: Proxy l75) ->
-    case letT (Proxy @(T "i74" -> l75)) of { LetT (_ :: Proxy l74) ->
-    case letT (Proxy @(T "i73" -> l74)) of { LetT (_ :: Proxy l73) ->
-    case letT (Proxy @(T "i72" -> l73)) of { LetT (_ :: Proxy l72) ->
-    case letT (Proxy @(T "i71" -> l72)) of { LetT (_ :: Proxy l71) ->
-    case letT (Proxy @(T "i70" -> l71)) of { LetT (_ :: Proxy l70) ->
-    -- 69 .. 60
-    case letT (Proxy @(T "i69" -> l70)) of { LetT (_ :: Proxy l69) ->
-    case letT (Proxy @(T "i68" -> l69)) of { LetT (_ :: Proxy l68) ->
-    case letT (Proxy @(T "i67" -> l68)) of { LetT (_ :: Proxy l67) ->
-    case letT (Proxy @(T "i66" -> l67)) of { LetT (_ :: Proxy l66) ->
-    case letT (Proxy @(T "i65" -> l66)) of { LetT (_ :: Proxy l65) ->
-    case letT (Proxy @(T "i64" -> l65)) of { LetT (_ :: Proxy l64) ->
-    case letT (Proxy @(T "i63" -> l64)) of { LetT (_ :: Proxy l63) ->
-    case letT (Proxy @(T "i62" -> l63)) of { LetT (_ :: Proxy l62) ->
-    case letT (Proxy @(T "i61" -> l62)) of { LetT (_ :: Proxy l61) ->
-    case letT (Proxy @(T "i60" -> l61)) of { LetT (_ :: Proxy l60) ->
-    -- 59 .. 50
-    case letT (Proxy @(T "i59" -> l60)) of { LetT (_ :: Proxy l59) ->
-    case letT (Proxy @(T "i58" -> l59)) of { LetT (_ :: Proxy l58) ->
-    case letT (Proxy @(T "i57" -> l58)) of { LetT (_ :: Proxy l57) ->
-    case letT (Proxy @(T "i56" -> l57)) of { LetT (_ :: Proxy l56) ->
-    case letT (Proxy @(T "i55" -> l56)) of { LetT (_ :: Proxy l55) ->
-    case letT (Proxy @(T "i54" -> l55)) of { LetT (_ :: Proxy l54) ->
-    case letT (Proxy @(T "i53" -> l54)) of { LetT (_ :: Proxy l53) ->
-    case letT (Proxy @(T "i52" -> l53)) of { LetT (_ :: Proxy l52) ->
-    case letT (Proxy @(T "i51" -> l52)) of { LetT (_ :: Proxy l51) ->
-    case letT (Proxy @(T "i50" -> l51)) of { LetT (_ :: Proxy l50) ->
-    -- 49 .. 40
-    case letT (Proxy @(T "i49" -> l50)) of { LetT (_ :: Proxy l49) ->
-    case letT (Proxy @(T "i48" -> l49)) of { LetT (_ :: Proxy l48) ->
-    case letT (Proxy @(T "i47" -> l48)) of { LetT (_ :: Proxy l47) ->
-    case letT (Proxy @(T "i46" -> l47)) of { LetT (_ :: Proxy l46) ->
-    case letT (Proxy @(T "i45" -> l46)) of { LetT (_ :: Proxy l45) ->
-    case letT (Proxy @(T "i44" -> l45)) of { LetT (_ :: Proxy l44) ->
-    case letT (Proxy @(T "i43" -> l44)) of { LetT (_ :: Proxy l43) ->
-    case letT (Proxy @(T "i42" -> l43)) of { LetT (_ :: Proxy l42) ->
-    case letT (Proxy @(T "i41" -> l42)) of { LetT (_ :: Proxy l41) ->
-    case letT (Proxy @(T "i40" -> l41)) of { LetT (_ :: Proxy l40) ->
-    -- 39 .. 30
-    case letT (Proxy @(T "i39" -> l40)) of { LetT (_ :: Proxy l39) ->
-    case letT (Proxy @(T "i38" -> l39)) of { LetT (_ :: Proxy l38) ->
-    case letT (Proxy @(T "i37" -> l38)) of { LetT (_ :: Proxy l37) ->
-    case letT (Proxy @(T "i36" -> l37)) of { LetT (_ :: Proxy l36) ->
-    case letT (Proxy @(T "i35" -> l36)) of { LetT (_ :: Proxy l35) ->
-    case letT (Proxy @(T "i34" -> l35)) of { LetT (_ :: Proxy l34) ->
-    case letT (Proxy @(T "i33" -> l34)) of { LetT (_ :: Proxy l33) ->
-    case letT (Proxy @(T "i32" -> l33)) of { LetT (_ :: Proxy l32) ->
-    case letT (Proxy @(T "i31" -> l32)) of { LetT (_ :: Proxy l31) ->
-    case letT (Proxy @(T "i30" -> l31)) of { LetT (_ :: Proxy l30) ->
-    -- 29 .. 20
-    case letT (Proxy @(T "i29" -> l30)) of { LetT (_ :: Proxy l29) ->
-    case letT (Proxy @(T "i28" -> l29)) of { LetT (_ :: Proxy l28) ->
-    case letT (Proxy @(T "i27" -> l28)) of { LetT (_ :: Proxy l27) ->
-    case letT (Proxy @(T "i26" -> l27)) of { LetT (_ :: Proxy l26) ->
-    case letT (Proxy @(T "i25" -> l26)) of { LetT (_ :: Proxy l25) ->
-    case letT (Proxy @(T "i24" -> l25)) of { LetT (_ :: Proxy l24) ->
-    case letT (Proxy @(T "i23" -> l24)) of { LetT (_ :: Proxy l23) ->
-    case letT (Proxy @(T "i22" -> l23)) of { LetT (_ :: Proxy l22) ->
-    case letT (Proxy @(T "i21" -> l22)) of { LetT (_ :: Proxy l21) ->
-    case letT (Proxy @(T "i20" -> l21)) of { LetT (_ :: Proxy l20) ->
-    -- 19 .. 10
-    case letT (Proxy @(T "i19" -> l20)) of { LetT (_ :: Proxy l19) ->
-    case letT (Proxy @(T "i18" -> l19)) of { LetT (_ :: Proxy l18) ->
-    case letT (Proxy @(T "i17" -> l18)) of { LetT (_ :: Proxy l17) ->
-    case letT (Proxy @(T "i16" -> l17)) of { LetT (_ :: Proxy l16) ->
-    case letT (Proxy @(T "i15" -> l16)) of { LetT (_ :: Proxy l15) ->
-    case letT (Proxy @(T "i14" -> l15)) of { LetT (_ :: Proxy l14) ->
-    case letT (Proxy @(T "i13" -> l14)) of { LetT (_ :: Proxy l13) ->
-    case letT (Proxy @(T "i12" -> l13)) of { LetT (_ :: Proxy l12) ->
-    case letT (Proxy @(T "i11" -> l12)) of { LetT (_ :: Proxy l11) ->
-    case letT (Proxy @(T "i10" -> l11)) of { LetT (_ :: Proxy l10) ->
-    -- 09 .. 00
-    case letT (Proxy @(T "i09" -> l10)) of { LetT (_ :: Proxy l09) ->
-    case letT (Proxy @(T "i08" -> l09)) of { LetT (_ :: Proxy l08) ->
-    case letT (Proxy @(T "i07" -> l08)) of { LetT (_ :: Proxy l07) ->
-    case letT (Proxy @(T "i06" -> l07)) of { LetT (_ :: Proxy l06) ->
-    case letT (Proxy @(T "i05" -> l06)) of { LetT (_ :: Proxy l05) ->
-    case letT (Proxy @(T "i04" -> l05)) of { LetT (_ :: Proxy l04) ->
-    case letT (Proxy @(T "i03" -> l04)) of { LetT (_ :: Proxy l03) ->
-    case letT (Proxy @(T "i02" -> l03)) of { LetT (_ :: Proxy l02) ->
-    case letT (Proxy @(T "i01" -> l02)) of { LetT (_ :: Proxy l01) ->
-    case letT (Proxy @(T "i00" -> l01)) of { LetT (_ :: Proxy l00) ->
-
-      let -- 00 .. 09
-          f00 :: f l00
-          f01 :: f l01
-          f02 :: f l02
-          f03 :: f l03
-          f04 :: f l04
-          f05 :: f l05
-          f06 :: f l06
-          f07 :: f l07
-          f08 :: f l08
-          f09 :: f l09
-          -- 10 .. 19
-          f10 :: f l10
-          f11 :: f l11
-          f12 :: f l12
-          f13 :: f l13
-          f14 :: f l14
-          f15 :: f l15
-          f16 :: f l16
-          f17 :: f l17
-          f18 :: f l18
-          f19 :: f l19
-          -- 20 .. 29
-          f20 :: f l20
-          f21 :: f l21
-          f22 :: f l22
-          f23 :: f l23
-          f24 :: f l24
-          f25 :: f l25
-          f26 :: f l26
-          f27 :: f l27
-          f28 :: f l28
-          f29 :: f l29
-          -- 30 .. 39
-          f30 :: f l30
-          f31 :: f l31
-          f32 :: f l32
-          f33 :: f l33
-          f34 :: f l34
-          f35 :: f l35
-          f36 :: f l36
-          f37 :: f l37
-          f38 :: f l38
-          f39 :: f l39
-          -- 40 .. 49
-          f40 :: f l40
-          f41 :: f l41
-          f42 :: f l42
-          f43 :: f l43
-          f44 :: f l44
-          f45 :: f l45
-          f46 :: f l46
-          f47 :: f l47
-          f48 :: f l48
-          f49 :: f l49
-          -- 50 .. 59
-          f50 :: f l50
-          f51 :: f l51
-          f52 :: f l52
-          f53 :: f l53
-          f54 :: f l54
-          f55 :: f l55
-          f56 :: f l56
-          f57 :: f l57
-          f58 :: f l58
-          f59 :: f l59
-          -- 60 .. 69
-          f60 :: f l60
-          f61 :: f l61
-          f62 :: f l62
-          f63 :: f l63
-          f64 :: f l64
-          f65 :: f l65
-          f66 :: f l66
-          f67 :: f l67
-          f68 :: f l68
-          f69 :: f l69
-          -- 70 .. 79
-          f70 :: f l70
-          f71 :: f l71
-          f72 :: f l72
-          f73 :: f l73
-          f74 :: f l74
-          f75 :: f l75
-          f76 :: f l76
-          f77 :: f l77
-          f78 :: f l78
-          f79 :: f l79
-
-          res :: f r
-
-          -- 00 .. 09
-          f00 = pure (castEqual f)
-          f01 = castEqual f00 <*> pure (MkT @"i00")
-          f02 = castEqual f01 <*> pure (MkT @"i01")
-          f03 = castEqual f02 <*> pure (MkT @"i02")
-          f04 = castEqual f03 <*> pure (MkT @"i03")
-          f05 = castEqual f04 <*> pure (MkT @"i04")
-          f06 = castEqual f05 <*> pure (MkT @"i05")
-          f07 = castEqual f06 <*> pure (MkT @"i06")
-          f08 = castEqual f07 <*> pure (MkT @"i07")
-          f09 = castEqual f08 <*> pure (MkT @"i08")
-          -- 10 .. 19
-          f10 = castEqual f09 <*> pure (MkT @"i09")
-          f11 = castEqual f10 <*> pure (MkT @"i10")
-          f12 = castEqual f11 <*> pure (MkT @"i11")
-          f13 = castEqual f12 <*> pure (MkT @"i12")
-          f14 = castEqual f13 <*> pure (MkT @"i13")
-          f15 = castEqual f14 <*> pure (MkT @"i14")
-          f16 = castEqual f15 <*> pure (MkT @"i15")
-          f17 = castEqual f16 <*> pure (MkT @"i16")
-          f18 = castEqual f17 <*> pure (MkT @"i17")
-          f19 = castEqual f18 <*> pure (MkT @"i18")
-          -- 20 .. 29
-          f20 = castEqual f19 <*> pure (MkT @"i19")
-          f21 = castEqual f20 <*> pure (MkT @"i20")
-          f22 = castEqual f21 <*> pure (MkT @"i21")
-          f23 = castEqual f22 <*> pure (MkT @"i22")
-          f24 = castEqual f23 <*> pure (MkT @"i23")
-          f25 = castEqual f24 <*> pure (MkT @"i24")
-          f26 = castEqual f25 <*> pure (MkT @"i25")
-          f27 = castEqual f26 <*> pure (MkT @"i26")
-          f28 = castEqual f27 <*> pure (MkT @"i27")
-          f29 = castEqual f28 <*> pure (MkT @"i28")
-          -- 30 .. 39
-          f30 = castEqual f29 <*> pure (MkT @"i29")
-          f31 = castEqual f30 <*> pure (MkT @"i30")
-          f32 = castEqual f31 <*> pure (MkT @"i31")
-          f33 = castEqual f32 <*> pure (MkT @"i32")
-          f34 = castEqual f33 <*> pure (MkT @"i33")
-          f35 = castEqual f34 <*> pure (MkT @"i34")
-          f36 = castEqual f35 <*> pure (MkT @"i35")
-          f37 = castEqual f36 <*> pure (MkT @"i36")
-          f38 = castEqual f37 <*> pure (MkT @"i37")
-          f39 = castEqual f38 <*> pure (MkT @"i38")
-          -- 40 .. 49
-          f40 = castEqual f39 <*> pure (MkT @"i39")
-          f41 = castEqual f40 <*> pure (MkT @"i40")
-          f42 = castEqual f41 <*> pure (MkT @"i41")
-          f43 = castEqual f42 <*> pure (MkT @"i42")
-          f44 = castEqual f43 <*> pure (MkT @"i43")
-          f45 = castEqual f44 <*> pure (MkT @"i44")
-          f46 = castEqual f45 <*> pure (MkT @"i45")
-          f47 = castEqual f46 <*> pure (MkT @"i46")
-          f48 = castEqual f47 <*> pure (MkT @"i47")
-          f49 = castEqual f48 <*> pure (MkT @"i48")
-          -- 50 .. 59
-          f50 = castEqual f49 <*> pure (MkT @"i49")
-          f51 = castEqual f50 <*> pure (MkT @"i50")
-          f52 = castEqual f51 <*> pure (MkT @"i51")
-          f53 = castEqual f52 <*> pure (MkT @"i52")
-          f54 = castEqual f53 <*> pure (MkT @"i53")
-          f55 = castEqual f54 <*> pure (MkT @"i54")
-          f56 = castEqual f55 <*> pure (MkT @"i55")
-          f57 = castEqual f56 <*> pure (MkT @"i56")
-          f58 = castEqual f57 <*> pure (MkT @"i57")
-          f59 = castEqual f58 <*> pure (MkT @"i58")
-          -- 60 .. 69
-          f60 = castEqual f59 <*> pure (MkT @"i59")
-          f61 = castEqual f60 <*> pure (MkT @"i60")
-          f62 = castEqual f61 <*> pure (MkT @"i61")
-          f63 = castEqual f62 <*> pure (MkT @"i62")
-          f64 = castEqual f63 <*> pure (MkT @"i63")
-          f65 = castEqual f64 <*> pure (MkT @"i64")
-          f66 = castEqual f65 <*> pure (MkT @"i65")
-          f67 = castEqual f66 <*> pure (MkT @"i66")
-          f68 = castEqual f67 <*> pure (MkT @"i67")
-          f69 = castEqual f68 <*> pure (MkT @"i68")
-          -- 70 .. 79
-          f70 = castEqual f69 <*> pure (MkT @"i69")
-          f71 = castEqual f70 <*> pure (MkT @"i70")
-          f72 = castEqual f71 <*> pure (MkT @"i71")
-          f73 = castEqual f72 <*> pure (MkT @"i72")
-          f74 = castEqual f73 <*> pure (MkT @"i73")
-          f75 = castEqual f74 <*> pure (MkT @"i74")
-          f76 = castEqual f75 <*> pure (MkT @"i75")
-          f77 = castEqual f76 <*> pure (MkT @"i76")
-          f78 = castEqual f77 <*> pure (MkT @"i77")
-          f79 = castEqual f78 <*> pure (MkT @"i78")
-
-          res = castEqual f79 <*> pure (MkT @"i79")
-
-      in res
-
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
diff --git a/test/Test/Size/Ap/Let/Let090.hs b/test/Test/Size/Ap/Let/Let090.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Let/Let090.hs
+++ /dev/null
@@ -1,326 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.Ap.Let.Let090 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.Ap.Index.Ix090
-
-applyF :: forall f r. Applicative f => F r -> f r
-applyF f =
-    -- 89 .. 80
-    case letT (Proxy @(T "i89" -> r))   of { LetT (_ :: Proxy l89) ->
-    case letT (Proxy @(T "i88" -> l89)) of { LetT (_ :: Proxy l88) ->
-    case letT (Proxy @(T "i87" -> l88)) of { LetT (_ :: Proxy l87) ->
-    case letT (Proxy @(T "i86" -> l87)) of { LetT (_ :: Proxy l86) ->
-    case letT (Proxy @(T "i85" -> l86)) of { LetT (_ :: Proxy l85) ->
-    case letT (Proxy @(T "i84" -> l85)) of { LetT (_ :: Proxy l84) ->
-    case letT (Proxy @(T "i83" -> l84)) of { LetT (_ :: Proxy l83) ->
-    case letT (Proxy @(T "i82" -> l83)) of { LetT (_ :: Proxy l82) ->
-    case letT (Proxy @(T "i81" -> l82)) of { LetT (_ :: Proxy l81) ->
-    case letT (Proxy @(T "i80" -> l81)) of { LetT (_ :: Proxy l80) ->
-    -- 79 .. 70
-    case letT (Proxy @(T "i79" -> l80)) of { LetT (_ :: Proxy l79) ->
-    case letT (Proxy @(T "i78" -> l79)) of { LetT (_ :: Proxy l78) ->
-    case letT (Proxy @(T "i77" -> l78)) of { LetT (_ :: Proxy l77) ->
-    case letT (Proxy @(T "i76" -> l77)) of { LetT (_ :: Proxy l76) ->
-    case letT (Proxy @(T "i75" -> l76)) of { LetT (_ :: Proxy l75) ->
-    case letT (Proxy @(T "i74" -> l75)) of { LetT (_ :: Proxy l74) ->
-    case letT (Proxy @(T "i73" -> l74)) of { LetT (_ :: Proxy l73) ->
-    case letT (Proxy @(T "i72" -> l73)) of { LetT (_ :: Proxy l72) ->
-    case letT (Proxy @(T "i71" -> l72)) of { LetT (_ :: Proxy l71) ->
-    case letT (Proxy @(T "i70" -> l71)) of { LetT (_ :: Proxy l70) ->
-    -- 69 .. 60
-    case letT (Proxy @(T "i69" -> l70)) of { LetT (_ :: Proxy l69) ->
-    case letT (Proxy @(T "i68" -> l69)) of { LetT (_ :: Proxy l68) ->
-    case letT (Proxy @(T "i67" -> l68)) of { LetT (_ :: Proxy l67) ->
-    case letT (Proxy @(T "i66" -> l67)) of { LetT (_ :: Proxy l66) ->
-    case letT (Proxy @(T "i65" -> l66)) of { LetT (_ :: Proxy l65) ->
-    case letT (Proxy @(T "i64" -> l65)) of { LetT (_ :: Proxy l64) ->
-    case letT (Proxy @(T "i63" -> l64)) of { LetT (_ :: Proxy l63) ->
-    case letT (Proxy @(T "i62" -> l63)) of { LetT (_ :: Proxy l62) ->
-    case letT (Proxy @(T "i61" -> l62)) of { LetT (_ :: Proxy l61) ->
-    case letT (Proxy @(T "i60" -> l61)) of { LetT (_ :: Proxy l60) ->
-    -- 59 .. 50
-    case letT (Proxy @(T "i59" -> l60)) of { LetT (_ :: Proxy l59) ->
-    case letT (Proxy @(T "i58" -> l59)) of { LetT (_ :: Proxy l58) ->
-    case letT (Proxy @(T "i57" -> l58)) of { LetT (_ :: Proxy l57) ->
-    case letT (Proxy @(T "i56" -> l57)) of { LetT (_ :: Proxy l56) ->
-    case letT (Proxy @(T "i55" -> l56)) of { LetT (_ :: Proxy l55) ->
-    case letT (Proxy @(T "i54" -> l55)) of { LetT (_ :: Proxy l54) ->
-    case letT (Proxy @(T "i53" -> l54)) of { LetT (_ :: Proxy l53) ->
-    case letT (Proxy @(T "i52" -> l53)) of { LetT (_ :: Proxy l52) ->
-    case letT (Proxy @(T "i51" -> l52)) of { LetT (_ :: Proxy l51) ->
-    case letT (Proxy @(T "i50" -> l51)) of { LetT (_ :: Proxy l50) ->
-    -- 49 .. 40
-    case letT (Proxy @(T "i49" -> l50)) of { LetT (_ :: Proxy l49) ->
-    case letT (Proxy @(T "i48" -> l49)) of { LetT (_ :: Proxy l48) ->
-    case letT (Proxy @(T "i47" -> l48)) of { LetT (_ :: Proxy l47) ->
-    case letT (Proxy @(T "i46" -> l47)) of { LetT (_ :: Proxy l46) ->
-    case letT (Proxy @(T "i45" -> l46)) of { LetT (_ :: Proxy l45) ->
-    case letT (Proxy @(T "i44" -> l45)) of { LetT (_ :: Proxy l44) ->
-    case letT (Proxy @(T "i43" -> l44)) of { LetT (_ :: Proxy l43) ->
-    case letT (Proxy @(T "i42" -> l43)) of { LetT (_ :: Proxy l42) ->
-    case letT (Proxy @(T "i41" -> l42)) of { LetT (_ :: Proxy l41) ->
-    case letT (Proxy @(T "i40" -> l41)) of { LetT (_ :: Proxy l40) ->
-    -- 39 .. 30
-    case letT (Proxy @(T "i39" -> l40)) of { LetT (_ :: Proxy l39) ->
-    case letT (Proxy @(T "i38" -> l39)) of { LetT (_ :: Proxy l38) ->
-    case letT (Proxy @(T "i37" -> l38)) of { LetT (_ :: Proxy l37) ->
-    case letT (Proxy @(T "i36" -> l37)) of { LetT (_ :: Proxy l36) ->
-    case letT (Proxy @(T "i35" -> l36)) of { LetT (_ :: Proxy l35) ->
-    case letT (Proxy @(T "i34" -> l35)) of { LetT (_ :: Proxy l34) ->
-    case letT (Proxy @(T "i33" -> l34)) of { LetT (_ :: Proxy l33) ->
-    case letT (Proxy @(T "i32" -> l33)) of { LetT (_ :: Proxy l32) ->
-    case letT (Proxy @(T "i31" -> l32)) of { LetT (_ :: Proxy l31) ->
-    case letT (Proxy @(T "i30" -> l31)) of { LetT (_ :: Proxy l30) ->
-    -- 29 .. 20
-    case letT (Proxy @(T "i29" -> l30)) of { LetT (_ :: Proxy l29) ->
-    case letT (Proxy @(T "i28" -> l29)) of { LetT (_ :: Proxy l28) ->
-    case letT (Proxy @(T "i27" -> l28)) of { LetT (_ :: Proxy l27) ->
-    case letT (Proxy @(T "i26" -> l27)) of { LetT (_ :: Proxy l26) ->
-    case letT (Proxy @(T "i25" -> l26)) of { LetT (_ :: Proxy l25) ->
-    case letT (Proxy @(T "i24" -> l25)) of { LetT (_ :: Proxy l24) ->
-    case letT (Proxy @(T "i23" -> l24)) of { LetT (_ :: Proxy l23) ->
-    case letT (Proxy @(T "i22" -> l23)) of { LetT (_ :: Proxy l22) ->
-    case letT (Proxy @(T "i21" -> l22)) of { LetT (_ :: Proxy l21) ->
-    case letT (Proxy @(T "i20" -> l21)) of { LetT (_ :: Proxy l20) ->
-    -- 19 .. 10
-    case letT (Proxy @(T "i19" -> l20)) of { LetT (_ :: Proxy l19) ->
-    case letT (Proxy @(T "i18" -> l19)) of { LetT (_ :: Proxy l18) ->
-    case letT (Proxy @(T "i17" -> l18)) of { LetT (_ :: Proxy l17) ->
-    case letT (Proxy @(T "i16" -> l17)) of { LetT (_ :: Proxy l16) ->
-    case letT (Proxy @(T "i15" -> l16)) of { LetT (_ :: Proxy l15) ->
-    case letT (Proxy @(T "i14" -> l15)) of { LetT (_ :: Proxy l14) ->
-    case letT (Proxy @(T "i13" -> l14)) of { LetT (_ :: Proxy l13) ->
-    case letT (Proxy @(T "i12" -> l13)) of { LetT (_ :: Proxy l12) ->
-    case letT (Proxy @(T "i11" -> l12)) of { LetT (_ :: Proxy l11) ->
-    case letT (Proxy @(T "i10" -> l11)) of { LetT (_ :: Proxy l10) ->
-    -- 09 .. 00
-    case letT (Proxy @(T "i09" -> l10)) of { LetT (_ :: Proxy l09) ->
-    case letT (Proxy @(T "i08" -> l09)) of { LetT (_ :: Proxy l08) ->
-    case letT (Proxy @(T "i07" -> l08)) of { LetT (_ :: Proxy l07) ->
-    case letT (Proxy @(T "i06" -> l07)) of { LetT (_ :: Proxy l06) ->
-    case letT (Proxy @(T "i05" -> l06)) of { LetT (_ :: Proxy l05) ->
-    case letT (Proxy @(T "i04" -> l05)) of { LetT (_ :: Proxy l04) ->
-    case letT (Proxy @(T "i03" -> l04)) of { LetT (_ :: Proxy l03) ->
-    case letT (Proxy @(T "i02" -> l03)) of { LetT (_ :: Proxy l02) ->
-    case letT (Proxy @(T "i01" -> l02)) of { LetT (_ :: Proxy l01) ->
-    case letT (Proxy @(T "i00" -> l01)) of { LetT (_ :: Proxy l00) ->
-
-      let -- 00 .. 09
-          f00 :: f l00
-          f01 :: f l01
-          f02 :: f l02
-          f03 :: f l03
-          f04 :: f l04
-          f05 :: f l05
-          f06 :: f l06
-          f07 :: f l07
-          f08 :: f l08
-          f09 :: f l09
-          -- 10 .. 19
-          f10 :: f l10
-          f11 :: f l11
-          f12 :: f l12
-          f13 :: f l13
-          f14 :: f l14
-          f15 :: f l15
-          f16 :: f l16
-          f17 :: f l17
-          f18 :: f l18
-          f19 :: f l19
-          -- 20 .. 29
-          f20 :: f l20
-          f21 :: f l21
-          f22 :: f l22
-          f23 :: f l23
-          f24 :: f l24
-          f25 :: f l25
-          f26 :: f l26
-          f27 :: f l27
-          f28 :: f l28
-          f29 :: f l29
-          -- 30 .. 39
-          f30 :: f l30
-          f31 :: f l31
-          f32 :: f l32
-          f33 :: f l33
-          f34 :: f l34
-          f35 :: f l35
-          f36 :: f l36
-          f37 :: f l37
-          f38 :: f l38
-          f39 :: f l39
-          -- 40 .. 49
-          f40 :: f l40
-          f41 :: f l41
-          f42 :: f l42
-          f43 :: f l43
-          f44 :: f l44
-          f45 :: f l45
-          f46 :: f l46
-          f47 :: f l47
-          f48 :: f l48
-          f49 :: f l49
-          -- 50 .. 59
-          f50 :: f l50
-          f51 :: f l51
-          f52 :: f l52
-          f53 :: f l53
-          f54 :: f l54
-          f55 :: f l55
-          f56 :: f l56
-          f57 :: f l57
-          f58 :: f l58
-          f59 :: f l59
-          -- 60 .. 69
-          f60 :: f l60
-          f61 :: f l61
-          f62 :: f l62
-          f63 :: f l63
-          f64 :: f l64
-          f65 :: f l65
-          f66 :: f l66
-          f67 :: f l67
-          f68 :: f l68
-          f69 :: f l69
-          -- 70 .. 79
-          f70 :: f l70
-          f71 :: f l71
-          f72 :: f l72
-          f73 :: f l73
-          f74 :: f l74
-          f75 :: f l75
-          f76 :: f l76
-          f77 :: f l77
-          f78 :: f l78
-          f79 :: f l79
-          -- 80 .. 89
-          f80 :: f l80
-          f81 :: f l81
-          f82 :: f l82
-          f83 :: f l83
-          f84 :: f l84
-          f85 :: f l85
-          f86 :: f l86
-          f87 :: f l87
-          f88 :: f l88
-          f89 :: f l89
-
-          res :: f r
-
-          -- 00 .. 09
-          f00 = pure (castEqual f)
-          f01 = castEqual f00 <*> pure (MkT @"i00")
-          f02 = castEqual f01 <*> pure (MkT @"i01")
-          f03 = castEqual f02 <*> pure (MkT @"i02")
-          f04 = castEqual f03 <*> pure (MkT @"i03")
-          f05 = castEqual f04 <*> pure (MkT @"i04")
-          f06 = castEqual f05 <*> pure (MkT @"i05")
-          f07 = castEqual f06 <*> pure (MkT @"i06")
-          f08 = castEqual f07 <*> pure (MkT @"i07")
-          f09 = castEqual f08 <*> pure (MkT @"i08")
-          -- 10 .. 19
-          f10 = castEqual f09 <*> pure (MkT @"i09")
-          f11 = castEqual f10 <*> pure (MkT @"i10")
-          f12 = castEqual f11 <*> pure (MkT @"i11")
-          f13 = castEqual f12 <*> pure (MkT @"i12")
-          f14 = castEqual f13 <*> pure (MkT @"i13")
-          f15 = castEqual f14 <*> pure (MkT @"i14")
-          f16 = castEqual f15 <*> pure (MkT @"i15")
-          f17 = castEqual f16 <*> pure (MkT @"i16")
-          f18 = castEqual f17 <*> pure (MkT @"i17")
-          f19 = castEqual f18 <*> pure (MkT @"i18")
-          -- 20 .. 29
-          f20 = castEqual f19 <*> pure (MkT @"i19")
-          f21 = castEqual f20 <*> pure (MkT @"i20")
-          f22 = castEqual f21 <*> pure (MkT @"i21")
-          f23 = castEqual f22 <*> pure (MkT @"i22")
-          f24 = castEqual f23 <*> pure (MkT @"i23")
-          f25 = castEqual f24 <*> pure (MkT @"i24")
-          f26 = castEqual f25 <*> pure (MkT @"i25")
-          f27 = castEqual f26 <*> pure (MkT @"i26")
-          f28 = castEqual f27 <*> pure (MkT @"i27")
-          f29 = castEqual f28 <*> pure (MkT @"i28")
-          -- 30 .. 39
-          f30 = castEqual f29 <*> pure (MkT @"i29")
-          f31 = castEqual f30 <*> pure (MkT @"i30")
-          f32 = castEqual f31 <*> pure (MkT @"i31")
-          f33 = castEqual f32 <*> pure (MkT @"i32")
-          f34 = castEqual f33 <*> pure (MkT @"i33")
-          f35 = castEqual f34 <*> pure (MkT @"i34")
-          f36 = castEqual f35 <*> pure (MkT @"i35")
-          f37 = castEqual f36 <*> pure (MkT @"i36")
-          f38 = castEqual f37 <*> pure (MkT @"i37")
-          f39 = castEqual f38 <*> pure (MkT @"i38")
-          -- 40 .. 49
-          f40 = castEqual f39 <*> pure (MkT @"i39")
-          f41 = castEqual f40 <*> pure (MkT @"i40")
-          f42 = castEqual f41 <*> pure (MkT @"i41")
-          f43 = castEqual f42 <*> pure (MkT @"i42")
-          f44 = castEqual f43 <*> pure (MkT @"i43")
-          f45 = castEqual f44 <*> pure (MkT @"i44")
-          f46 = castEqual f45 <*> pure (MkT @"i45")
-          f47 = castEqual f46 <*> pure (MkT @"i46")
-          f48 = castEqual f47 <*> pure (MkT @"i47")
-          f49 = castEqual f48 <*> pure (MkT @"i48")
-          -- 50 .. 59
-          f50 = castEqual f49 <*> pure (MkT @"i49")
-          f51 = castEqual f50 <*> pure (MkT @"i50")
-          f52 = castEqual f51 <*> pure (MkT @"i51")
-          f53 = castEqual f52 <*> pure (MkT @"i52")
-          f54 = castEqual f53 <*> pure (MkT @"i53")
-          f55 = castEqual f54 <*> pure (MkT @"i54")
-          f56 = castEqual f55 <*> pure (MkT @"i55")
-          f57 = castEqual f56 <*> pure (MkT @"i56")
-          f58 = castEqual f57 <*> pure (MkT @"i57")
-          f59 = castEqual f58 <*> pure (MkT @"i58")
-          -- 60 .. 69
-          f60 = castEqual f59 <*> pure (MkT @"i59")
-          f61 = castEqual f60 <*> pure (MkT @"i60")
-          f62 = castEqual f61 <*> pure (MkT @"i61")
-          f63 = castEqual f62 <*> pure (MkT @"i62")
-          f64 = castEqual f63 <*> pure (MkT @"i63")
-          f65 = castEqual f64 <*> pure (MkT @"i64")
-          f66 = castEqual f65 <*> pure (MkT @"i65")
-          f67 = castEqual f66 <*> pure (MkT @"i66")
-          f68 = castEqual f67 <*> pure (MkT @"i67")
-          f69 = castEqual f68 <*> pure (MkT @"i68")
-          -- 70 .. 79
-          f70 = castEqual f69 <*> pure (MkT @"i69")
-          f71 = castEqual f70 <*> pure (MkT @"i70")
-          f72 = castEqual f71 <*> pure (MkT @"i71")
-          f73 = castEqual f72 <*> pure (MkT @"i72")
-          f74 = castEqual f73 <*> pure (MkT @"i73")
-          f75 = castEqual f74 <*> pure (MkT @"i74")
-          f76 = castEqual f75 <*> pure (MkT @"i75")
-          f77 = castEqual f76 <*> pure (MkT @"i76")
-          f78 = castEqual f77 <*> pure (MkT @"i77")
-          f79 = castEqual f78 <*> pure (MkT @"i78")
-          -- 80 .. 89
-          f80 = castEqual f79 <*> pure (MkT @"i79")
-          f81 = castEqual f80 <*> pure (MkT @"i80")
-          f82 = castEqual f81 <*> pure (MkT @"i81")
-          f83 = castEqual f82 <*> pure (MkT @"i82")
-          f84 = castEqual f83 <*> pure (MkT @"i83")
-          f85 = castEqual f84 <*> pure (MkT @"i84")
-          f86 = castEqual f85 <*> pure (MkT @"i85")
-          f87 = castEqual f86 <*> pure (MkT @"i86")
-          f88 = castEqual f87 <*> pure (MkT @"i87")
-          f89 = castEqual f88 <*> pure (MkT @"i88")
-
-          res = castEqual f89 <*> pure (MkT @"i89")
-
-      in res
-
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
diff --git a/test/Test/Size/Ap/Let/Let100.hs b/test/Test/Size/Ap/Let/Let100.hs
deleted file mode 100644
--- a/test/Test/Size/Ap/Let/Let100.hs
+++ /dev/null
@@ -1,360 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.Ap.Let.Let100 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.Ap.Index.Ix100
-
-applyF :: forall f r. Applicative f => F r -> f r
-applyF f =
-    -- 99 .. 90
-    case letT (Proxy @(T "i99" -> r))   of { LetT (_ :: Proxy l99) ->
-    case letT (Proxy @(T "i98" -> l99)) of { LetT (_ :: Proxy l98) ->
-    case letT (Proxy @(T "i97" -> l98)) of { LetT (_ :: Proxy l97) ->
-    case letT (Proxy @(T "i96" -> l97)) of { LetT (_ :: Proxy l96) ->
-    case letT (Proxy @(T "i95" -> l96)) of { LetT (_ :: Proxy l95) ->
-    case letT (Proxy @(T "i94" -> l95)) of { LetT (_ :: Proxy l94) ->
-    case letT (Proxy @(T "i93" -> l94)) of { LetT (_ :: Proxy l93) ->
-    case letT (Proxy @(T "i92" -> l93)) of { LetT (_ :: Proxy l92) ->
-    case letT (Proxy @(T "i91" -> l92)) of { LetT (_ :: Proxy l91) ->
-    case letT (Proxy @(T "i90" -> l91)) of { LetT (_ :: Proxy l90) ->
-    -- 89 .. 80
-    case letT (Proxy @(T "i89" -> l90)) of { LetT (_ :: Proxy l89) ->
-    case letT (Proxy @(T "i88" -> l89)) of { LetT (_ :: Proxy l88) ->
-    case letT (Proxy @(T "i87" -> l88)) of { LetT (_ :: Proxy l87) ->
-    case letT (Proxy @(T "i86" -> l87)) of { LetT (_ :: Proxy l86) ->
-    case letT (Proxy @(T "i85" -> l86)) of { LetT (_ :: Proxy l85) ->
-    case letT (Proxy @(T "i84" -> l85)) of { LetT (_ :: Proxy l84) ->
-    case letT (Proxy @(T "i83" -> l84)) of { LetT (_ :: Proxy l83) ->
-    case letT (Proxy @(T "i82" -> l83)) of { LetT (_ :: Proxy l82) ->
-    case letT (Proxy @(T "i81" -> l82)) of { LetT (_ :: Proxy l81) ->
-    case letT (Proxy @(T "i80" -> l81)) of { LetT (_ :: Proxy l80) ->
-    -- 79 .. 70
-    case letT (Proxy @(T "i79" -> l80)) of { LetT (_ :: Proxy l79) ->
-    case letT (Proxy @(T "i78" -> l79)) of { LetT (_ :: Proxy l78) ->
-    case letT (Proxy @(T "i77" -> l78)) of { LetT (_ :: Proxy l77) ->
-    case letT (Proxy @(T "i76" -> l77)) of { LetT (_ :: Proxy l76) ->
-    case letT (Proxy @(T "i75" -> l76)) of { LetT (_ :: Proxy l75) ->
-    case letT (Proxy @(T "i74" -> l75)) of { LetT (_ :: Proxy l74) ->
-    case letT (Proxy @(T "i73" -> l74)) of { LetT (_ :: Proxy l73) ->
-    case letT (Proxy @(T "i72" -> l73)) of { LetT (_ :: Proxy l72) ->
-    case letT (Proxy @(T "i71" -> l72)) of { LetT (_ :: Proxy l71) ->
-    case letT (Proxy @(T "i70" -> l71)) of { LetT (_ :: Proxy l70) ->
-    -- 69 .. 60
-    case letT (Proxy @(T "i69" -> l70)) of { LetT (_ :: Proxy l69) ->
-    case letT (Proxy @(T "i68" -> l69)) of { LetT (_ :: Proxy l68) ->
-    case letT (Proxy @(T "i67" -> l68)) of { LetT (_ :: Proxy l67) ->
-    case letT (Proxy @(T "i66" -> l67)) of { LetT (_ :: Proxy l66) ->
-    case letT (Proxy @(T "i65" -> l66)) of { LetT (_ :: Proxy l65) ->
-    case letT (Proxy @(T "i64" -> l65)) of { LetT (_ :: Proxy l64) ->
-    case letT (Proxy @(T "i63" -> l64)) of { LetT (_ :: Proxy l63) ->
-    case letT (Proxy @(T "i62" -> l63)) of { LetT (_ :: Proxy l62) ->
-    case letT (Proxy @(T "i61" -> l62)) of { LetT (_ :: Proxy l61) ->
-    case letT (Proxy @(T "i60" -> l61)) of { LetT (_ :: Proxy l60) ->
-    -- 59 .. 50
-    case letT (Proxy @(T "i59" -> l60)) of { LetT (_ :: Proxy l59) ->
-    case letT (Proxy @(T "i58" -> l59)) of { LetT (_ :: Proxy l58) ->
-    case letT (Proxy @(T "i57" -> l58)) of { LetT (_ :: Proxy l57) ->
-    case letT (Proxy @(T "i56" -> l57)) of { LetT (_ :: Proxy l56) ->
-    case letT (Proxy @(T "i55" -> l56)) of { LetT (_ :: Proxy l55) ->
-    case letT (Proxy @(T "i54" -> l55)) of { LetT (_ :: Proxy l54) ->
-    case letT (Proxy @(T "i53" -> l54)) of { LetT (_ :: Proxy l53) ->
-    case letT (Proxy @(T "i52" -> l53)) of { LetT (_ :: Proxy l52) ->
-    case letT (Proxy @(T "i51" -> l52)) of { LetT (_ :: Proxy l51) ->
-    case letT (Proxy @(T "i50" -> l51)) of { LetT (_ :: Proxy l50) ->
-    -- 49 .. 40
-    case letT (Proxy @(T "i49" -> l50)) of { LetT (_ :: Proxy l49) ->
-    case letT (Proxy @(T "i48" -> l49)) of { LetT (_ :: Proxy l48) ->
-    case letT (Proxy @(T "i47" -> l48)) of { LetT (_ :: Proxy l47) ->
-    case letT (Proxy @(T "i46" -> l47)) of { LetT (_ :: Proxy l46) ->
-    case letT (Proxy @(T "i45" -> l46)) of { LetT (_ :: Proxy l45) ->
-    case letT (Proxy @(T "i44" -> l45)) of { LetT (_ :: Proxy l44) ->
-    case letT (Proxy @(T "i43" -> l44)) of { LetT (_ :: Proxy l43) ->
-    case letT (Proxy @(T "i42" -> l43)) of { LetT (_ :: Proxy l42) ->
-    case letT (Proxy @(T "i41" -> l42)) of { LetT (_ :: Proxy l41) ->
-    case letT (Proxy @(T "i40" -> l41)) of { LetT (_ :: Proxy l40) ->
-    -- 39 .. 30
-    case letT (Proxy @(T "i39" -> l40)) of { LetT (_ :: Proxy l39) ->
-    case letT (Proxy @(T "i38" -> l39)) of { LetT (_ :: Proxy l38) ->
-    case letT (Proxy @(T "i37" -> l38)) of { LetT (_ :: Proxy l37) ->
-    case letT (Proxy @(T "i36" -> l37)) of { LetT (_ :: Proxy l36) ->
-    case letT (Proxy @(T "i35" -> l36)) of { LetT (_ :: Proxy l35) ->
-    case letT (Proxy @(T "i34" -> l35)) of { LetT (_ :: Proxy l34) ->
-    case letT (Proxy @(T "i33" -> l34)) of { LetT (_ :: Proxy l33) ->
-    case letT (Proxy @(T "i32" -> l33)) of { LetT (_ :: Proxy l32) ->
-    case letT (Proxy @(T "i31" -> l32)) of { LetT (_ :: Proxy l31) ->
-    case letT (Proxy @(T "i30" -> l31)) of { LetT (_ :: Proxy l30) ->
-    -- 29 .. 20
-    case letT (Proxy @(T "i29" -> l30)) of { LetT (_ :: Proxy l29) ->
-    case letT (Proxy @(T "i28" -> l29)) of { LetT (_ :: Proxy l28) ->
-    case letT (Proxy @(T "i27" -> l28)) of { LetT (_ :: Proxy l27) ->
-    case letT (Proxy @(T "i26" -> l27)) of { LetT (_ :: Proxy l26) ->
-    case letT (Proxy @(T "i25" -> l26)) of { LetT (_ :: Proxy l25) ->
-    case letT (Proxy @(T "i24" -> l25)) of { LetT (_ :: Proxy l24) ->
-    case letT (Proxy @(T "i23" -> l24)) of { LetT (_ :: Proxy l23) ->
-    case letT (Proxy @(T "i22" -> l23)) of { LetT (_ :: Proxy l22) ->
-    case letT (Proxy @(T "i21" -> l22)) of { LetT (_ :: Proxy l21) ->
-    case letT (Proxy @(T "i20" -> l21)) of { LetT (_ :: Proxy l20) ->
-    -- 19 .. 10
-    case letT (Proxy @(T "i19" -> l20)) of { LetT (_ :: Proxy l19) ->
-    case letT (Proxy @(T "i18" -> l19)) of { LetT (_ :: Proxy l18) ->
-    case letT (Proxy @(T "i17" -> l18)) of { LetT (_ :: Proxy l17) ->
-    case letT (Proxy @(T "i16" -> l17)) of { LetT (_ :: Proxy l16) ->
-    case letT (Proxy @(T "i15" -> l16)) of { LetT (_ :: Proxy l15) ->
-    case letT (Proxy @(T "i14" -> l15)) of { LetT (_ :: Proxy l14) ->
-    case letT (Proxy @(T "i13" -> l14)) of { LetT (_ :: Proxy l13) ->
-    case letT (Proxy @(T "i12" -> l13)) of { LetT (_ :: Proxy l12) ->
-    case letT (Proxy @(T "i11" -> l12)) of { LetT (_ :: Proxy l11) ->
-    case letT (Proxy @(T "i10" -> l11)) of { LetT (_ :: Proxy l10) ->
-    -- 09 .. 00
-    case letT (Proxy @(T "i09" -> l10)) of { LetT (_ :: Proxy l09) ->
-    case letT (Proxy @(T "i08" -> l09)) of { LetT (_ :: Proxy l08) ->
-    case letT (Proxy @(T "i07" -> l08)) of { LetT (_ :: Proxy l07) ->
-    case letT (Proxy @(T "i06" -> l07)) of { LetT (_ :: Proxy l06) ->
-    case letT (Proxy @(T "i05" -> l06)) of { LetT (_ :: Proxy l05) ->
-    case letT (Proxy @(T "i04" -> l05)) of { LetT (_ :: Proxy l04) ->
-    case letT (Proxy @(T "i03" -> l04)) of { LetT (_ :: Proxy l03) ->
-    case letT (Proxy @(T "i02" -> l03)) of { LetT (_ :: Proxy l02) ->
-    case letT (Proxy @(T "i01" -> l02)) of { LetT (_ :: Proxy l01) ->
-    case letT (Proxy @(T "i00" -> l01)) of { LetT (_ :: Proxy l00) ->
-
-      let -- 00 .. 09
-          f00 :: f l00
-          f01 :: f l01
-          f02 :: f l02
-          f03 :: f l03
-          f04 :: f l04
-          f05 :: f l05
-          f06 :: f l06
-          f07 :: f l07
-          f08 :: f l08
-          f09 :: f l09
-          -- 10 .. 19
-          f10 :: f l10
-          f11 :: f l11
-          f12 :: f l12
-          f13 :: f l13
-          f14 :: f l14
-          f15 :: f l15
-          f16 :: f l16
-          f17 :: f l17
-          f18 :: f l18
-          f19 :: f l19
-          -- 20 .. 29
-          f20 :: f l20
-          f21 :: f l21
-          f22 :: f l22
-          f23 :: f l23
-          f24 :: f l24
-          f25 :: f l25
-          f26 :: f l26
-          f27 :: f l27
-          f28 :: f l28
-          f29 :: f l29
-          -- 30 .. 39
-          f30 :: f l30
-          f31 :: f l31
-          f32 :: f l32
-          f33 :: f l33
-          f34 :: f l34
-          f35 :: f l35
-          f36 :: f l36
-          f37 :: f l37
-          f38 :: f l38
-          f39 :: f l39
-          -- 40 .. 49
-          f40 :: f l40
-          f41 :: f l41
-          f42 :: f l42
-          f43 :: f l43
-          f44 :: f l44
-          f45 :: f l45
-          f46 :: f l46
-          f47 :: f l47
-          f48 :: f l48
-          f49 :: f l49
-          -- 50 .. 59
-          f50 :: f l50
-          f51 :: f l51
-          f52 :: f l52
-          f53 :: f l53
-          f54 :: f l54
-          f55 :: f l55
-          f56 :: f l56
-          f57 :: f l57
-          f58 :: f l58
-          f59 :: f l59
-          -- 60 .. 69
-          f60 :: f l60
-          f61 :: f l61
-          f62 :: f l62
-          f63 :: f l63
-          f64 :: f l64
-          f65 :: f l65
-          f66 :: f l66
-          f67 :: f l67
-          f68 :: f l68
-          f69 :: f l69
-          -- 70 .. 79
-          f70 :: f l70
-          f71 :: f l71
-          f72 :: f l72
-          f73 :: f l73
-          f74 :: f l74
-          f75 :: f l75
-          f76 :: f l76
-          f77 :: f l77
-          f78 :: f l78
-          f79 :: f l79
-          -- 80 .. 89
-          f80 :: f l80
-          f81 :: f l81
-          f82 :: f l82
-          f83 :: f l83
-          f84 :: f l84
-          f85 :: f l85
-          f86 :: f l86
-          f87 :: f l87
-          f88 :: f l88
-          f89 :: f l89
-          -- 90 .. 99
-          f90 :: f l90
-          f91 :: f l91
-          f92 :: f l92
-          f93 :: f l93
-          f94 :: f l94
-          f95 :: f l95
-          f96 :: f l96
-          f97 :: f l97
-          f98 :: f l98
-          f99 :: f l99
-
-          res :: f r
-
-          -- 00 .. 09
-          f00 = pure (castEqual f)
-          f01 = castEqual f00 <*> pure (MkT @"i00")
-          f02 = castEqual f01 <*> pure (MkT @"i01")
-          f03 = castEqual f02 <*> pure (MkT @"i02")
-          f04 = castEqual f03 <*> pure (MkT @"i03")
-          f05 = castEqual f04 <*> pure (MkT @"i04")
-          f06 = castEqual f05 <*> pure (MkT @"i05")
-          f07 = castEqual f06 <*> pure (MkT @"i06")
-          f08 = castEqual f07 <*> pure (MkT @"i07")
-          f09 = castEqual f08 <*> pure (MkT @"i08")
-          -- 10 .. 19
-          f10 = castEqual f09 <*> pure (MkT @"i09")
-          f11 = castEqual f10 <*> pure (MkT @"i10")
-          f12 = castEqual f11 <*> pure (MkT @"i11")
-          f13 = castEqual f12 <*> pure (MkT @"i12")
-          f14 = castEqual f13 <*> pure (MkT @"i13")
-          f15 = castEqual f14 <*> pure (MkT @"i14")
-          f16 = castEqual f15 <*> pure (MkT @"i15")
-          f17 = castEqual f16 <*> pure (MkT @"i16")
-          f18 = castEqual f17 <*> pure (MkT @"i17")
-          f19 = castEqual f18 <*> pure (MkT @"i18")
-          -- 20 .. 29
-          f20 = castEqual f19 <*> pure (MkT @"i19")
-          f21 = castEqual f20 <*> pure (MkT @"i20")
-          f22 = castEqual f21 <*> pure (MkT @"i21")
-          f23 = castEqual f22 <*> pure (MkT @"i22")
-          f24 = castEqual f23 <*> pure (MkT @"i23")
-          f25 = castEqual f24 <*> pure (MkT @"i24")
-          f26 = castEqual f25 <*> pure (MkT @"i25")
-          f27 = castEqual f26 <*> pure (MkT @"i26")
-          f28 = castEqual f27 <*> pure (MkT @"i27")
-          f29 = castEqual f28 <*> pure (MkT @"i28")
-          -- 30 .. 39
-          f30 = castEqual f29 <*> pure (MkT @"i29")
-          f31 = castEqual f30 <*> pure (MkT @"i30")
-          f32 = castEqual f31 <*> pure (MkT @"i31")
-          f33 = castEqual f32 <*> pure (MkT @"i32")
-          f34 = castEqual f33 <*> pure (MkT @"i33")
-          f35 = castEqual f34 <*> pure (MkT @"i34")
-          f36 = castEqual f35 <*> pure (MkT @"i35")
-          f37 = castEqual f36 <*> pure (MkT @"i36")
-          f38 = castEqual f37 <*> pure (MkT @"i37")
-          f39 = castEqual f38 <*> pure (MkT @"i38")
-          -- 40 .. 49
-          f40 = castEqual f39 <*> pure (MkT @"i39")
-          f41 = castEqual f40 <*> pure (MkT @"i40")
-          f42 = castEqual f41 <*> pure (MkT @"i41")
-          f43 = castEqual f42 <*> pure (MkT @"i42")
-          f44 = castEqual f43 <*> pure (MkT @"i43")
-          f45 = castEqual f44 <*> pure (MkT @"i44")
-          f46 = castEqual f45 <*> pure (MkT @"i45")
-          f47 = castEqual f46 <*> pure (MkT @"i46")
-          f48 = castEqual f47 <*> pure (MkT @"i47")
-          f49 = castEqual f48 <*> pure (MkT @"i48")
-          -- 50 .. 59
-          f50 = castEqual f49 <*> pure (MkT @"i49")
-          f51 = castEqual f50 <*> pure (MkT @"i50")
-          f52 = castEqual f51 <*> pure (MkT @"i51")
-          f53 = castEqual f52 <*> pure (MkT @"i52")
-          f54 = castEqual f53 <*> pure (MkT @"i53")
-          f55 = castEqual f54 <*> pure (MkT @"i54")
-          f56 = castEqual f55 <*> pure (MkT @"i55")
-          f57 = castEqual f56 <*> pure (MkT @"i56")
-          f58 = castEqual f57 <*> pure (MkT @"i57")
-          f59 = castEqual f58 <*> pure (MkT @"i58")
-          -- 60 .. 69
-          f60 = castEqual f59 <*> pure (MkT @"i59")
-          f61 = castEqual f60 <*> pure (MkT @"i60")
-          f62 = castEqual f61 <*> pure (MkT @"i61")
-          f63 = castEqual f62 <*> pure (MkT @"i62")
-          f64 = castEqual f63 <*> pure (MkT @"i63")
-          f65 = castEqual f64 <*> pure (MkT @"i64")
-          f66 = castEqual f65 <*> pure (MkT @"i65")
-          f67 = castEqual f66 <*> pure (MkT @"i66")
-          f68 = castEqual f67 <*> pure (MkT @"i67")
-          f69 = castEqual f68 <*> pure (MkT @"i68")
-          -- 70 .. 79
-          f70 = castEqual f69 <*> pure (MkT @"i69")
-          f71 = castEqual f70 <*> pure (MkT @"i70")
-          f72 = castEqual f71 <*> pure (MkT @"i71")
-          f73 = castEqual f72 <*> pure (MkT @"i72")
-          f74 = castEqual f73 <*> pure (MkT @"i73")
-          f75 = castEqual f74 <*> pure (MkT @"i74")
-          f76 = castEqual f75 <*> pure (MkT @"i75")
-          f77 = castEqual f76 <*> pure (MkT @"i76")
-          f78 = castEqual f77 <*> pure (MkT @"i77")
-          f79 = castEqual f78 <*> pure (MkT @"i78")
-          -- 80 .. 89
-          f80 = castEqual f79 <*> pure (MkT @"i79")
-          f81 = castEqual f80 <*> pure (MkT @"i80")
-          f82 = castEqual f81 <*> pure (MkT @"i81")
-          f83 = castEqual f82 <*> pure (MkT @"i82")
-          f84 = castEqual f83 <*> pure (MkT @"i83")
-          f85 = castEqual f84 <*> pure (MkT @"i84")
-          f86 = castEqual f85 <*> pure (MkT @"i85")
-          f87 = castEqual f86 <*> pure (MkT @"i86")
-          f88 = castEqual f87 <*> pure (MkT @"i87")
-          f89 = castEqual f88 <*> pure (MkT @"i88")
-          -- 90 .. 99
-          f90 = castEqual f89 <*> pure (MkT @"i89")
-          f91 = castEqual f90 <*> pure (MkT @"i90")
-          f92 = castEqual f91 <*> pure (MkT @"i91")
-          f93 = castEqual f92 <*> pure (MkT @"i92")
-          f94 = castEqual f93 <*> pure (MkT @"i93")
-          f95 = castEqual f94 <*> pure (MkT @"i94")
-          f96 = castEqual f95 <*> pure (MkT @"i95")
-          f97 = castEqual f96 <*> pure (MkT @"i96")
-          f98 = castEqual f97 <*> pure (MkT @"i97")
-          f99 = castEqual f98 <*> pure (MkT @"i98")
-
-          res = castEqual f99 <*> pure (MkT @"i99")
-
-      in res
-
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
diff --git a/test/Test/Size/HList/Baseline/Baseline010.hs b/test/Test/Size/HList/Baseline/Baseline010.hs
deleted file mode 100644
--- a/test/Test/Size/HList/Baseline/Baseline010.hs
+++ /dev/null
@@ -1,20 +0,0 @@
-module Test.Size.HList.Baseline.Baseline010 where
-
-import Test.Infra
-import Test.Size.HList.Index.Ix010
-
-hlist :: HList Fields
-hlist =
-      -- 00 .. 09
-      HCons (MkT @"i00")
-    $ HCons (MkT @"i01")
-    $ HCons (MkT @"i02")
-    $ HCons (MkT @"i03")
-    $ HCons (MkT @"i04")
-    $ HCons (MkT @"i05")
-    $ HCons (MkT @"i06")
-    $ HCons (MkT @"i07")
-    $ HCons (MkT @"i08")
-    $ HCons (MkT @"i09")
-    $ HNil
-
diff --git a/test/Test/Size/HList/Baseline/Baseline020.hs b/test/Test/Size/HList/Baseline/Baseline020.hs
deleted file mode 100644
--- a/test/Test/Size/HList/Baseline/Baseline020.hs
+++ /dev/null
@@ -1,31 +0,0 @@
-module Test.Size.HList.Baseline.Baseline020 where
-
-import Test.Infra
-import Test.Size.HList.Index.Ix020
-
-hlist :: HList Fields
-hlist =
-      -- 00 .. 09
-      HCons (MkT @"i00")
-    $ HCons (MkT @"i01")
-    $ HCons (MkT @"i02")
-    $ HCons (MkT @"i03")
-    $ HCons (MkT @"i04")
-    $ HCons (MkT @"i05")
-    $ HCons (MkT @"i06")
-    $ HCons (MkT @"i07")
-    $ HCons (MkT @"i08")
-    $ HCons (MkT @"i09")
-      -- 10 .. 19
-    $ HCons (MkT @"i10")
-    $ HCons (MkT @"i11")
-    $ HCons (MkT @"i12")
-    $ HCons (MkT @"i13")
-    $ HCons (MkT @"i14")
-    $ HCons (MkT @"i15")
-    $ HCons (MkT @"i16")
-    $ HCons (MkT @"i17")
-    $ HCons (MkT @"i18")
-    $ HCons (MkT @"i19")
-    $ HNil
-
diff --git a/test/Test/Size/HList/Baseline/Baseline030.hs b/test/Test/Size/HList/Baseline/Baseline030.hs
deleted file mode 100644
--- a/test/Test/Size/HList/Baseline/Baseline030.hs
+++ /dev/null
@@ -1,42 +0,0 @@
-module Test.Size.HList.Baseline.Baseline030 where
-
-import Test.Infra
-import Test.Size.HList.Index.Ix030
-
-hlist :: HList Fields
-hlist =
-      -- 00 .. 09
-      HCons (MkT @"i00")
-    $ HCons (MkT @"i01")
-    $ HCons (MkT @"i02")
-    $ HCons (MkT @"i03")
-    $ HCons (MkT @"i04")
-    $ HCons (MkT @"i05")
-    $ HCons (MkT @"i06")
-    $ HCons (MkT @"i07")
-    $ HCons (MkT @"i08")
-    $ HCons (MkT @"i09")
-      -- 10 .. 19
-    $ HCons (MkT @"i10")
-    $ HCons (MkT @"i11")
-    $ HCons (MkT @"i12")
-    $ HCons (MkT @"i13")
-    $ HCons (MkT @"i14")
-    $ HCons (MkT @"i15")
-    $ HCons (MkT @"i16")
-    $ HCons (MkT @"i17")
-    $ HCons (MkT @"i18")
-    $ HCons (MkT @"i19")
-      -- 20 .. 29
-    $ HCons (MkT @"i20")
-    $ HCons (MkT @"i21")
-    $ HCons (MkT @"i22")
-    $ HCons (MkT @"i23")
-    $ HCons (MkT @"i24")
-    $ HCons (MkT @"i25")
-    $ HCons (MkT @"i26")
-    $ HCons (MkT @"i27")
-    $ HCons (MkT @"i28")
-    $ HCons (MkT @"i29")
-    $ HNil
-
diff --git a/test/Test/Size/HList/Baseline/Baseline040.hs b/test/Test/Size/HList/Baseline/Baseline040.hs
deleted file mode 100644
--- a/test/Test/Size/HList/Baseline/Baseline040.hs
+++ /dev/null
@@ -1,53 +0,0 @@
-module Test.Size.HList.Baseline.Baseline040 where
-
-import Test.Infra
-import Test.Size.HList.Index.Ix040
-
-hlist :: HList Fields
-hlist =
-      -- 00 .. 09
-      HCons (MkT @"i00")
-    $ HCons (MkT @"i01")
-    $ HCons (MkT @"i02")
-    $ HCons (MkT @"i03")
-    $ HCons (MkT @"i04")
-    $ HCons (MkT @"i05")
-    $ HCons (MkT @"i06")
-    $ HCons (MkT @"i07")
-    $ HCons (MkT @"i08")
-    $ HCons (MkT @"i09")
-      -- 10 .. 19
-    $ HCons (MkT @"i10")
-    $ HCons (MkT @"i11")
-    $ HCons (MkT @"i12")
-    $ HCons (MkT @"i13")
-    $ HCons (MkT @"i14")
-    $ HCons (MkT @"i15")
-    $ HCons (MkT @"i16")
-    $ HCons (MkT @"i17")
-    $ HCons (MkT @"i18")
-    $ HCons (MkT @"i19")
-      -- 20 .. 29
-    $ HCons (MkT @"i20")
-    $ HCons (MkT @"i21")
-    $ HCons (MkT @"i22")
-    $ HCons (MkT @"i23")
-    $ HCons (MkT @"i24")
-    $ HCons (MkT @"i25")
-    $ HCons (MkT @"i26")
-    $ HCons (MkT @"i27")
-    $ HCons (MkT @"i28")
-    $ HCons (MkT @"i29")
-      -- 30 .. 39
-    $ HCons (MkT @"i30")
-    $ HCons (MkT @"i31")
-    $ HCons (MkT @"i32")
-    $ HCons (MkT @"i33")
-    $ HCons (MkT @"i34")
-    $ HCons (MkT @"i35")
-    $ HCons (MkT @"i36")
-    $ HCons (MkT @"i37")
-    $ HCons (MkT @"i38")
-    $ HCons (MkT @"i39")
-    $ HNil
-
diff --git a/test/Test/Size/HList/Baseline/Baseline050.hs b/test/Test/Size/HList/Baseline/Baseline050.hs
deleted file mode 100644
--- a/test/Test/Size/HList/Baseline/Baseline050.hs
+++ /dev/null
@@ -1,64 +0,0 @@
-module Test.Size.HList.Baseline.Baseline050 where
-
-import Test.Infra
-import Test.Size.HList.Index.Ix050
-
-hlist :: HList Fields
-hlist =
-      -- 00 .. 09
-      HCons (MkT @"i00")
-    $ HCons (MkT @"i01")
-    $ HCons (MkT @"i02")
-    $ HCons (MkT @"i03")
-    $ HCons (MkT @"i04")
-    $ HCons (MkT @"i05")
-    $ HCons (MkT @"i06")
-    $ HCons (MkT @"i07")
-    $ HCons (MkT @"i08")
-    $ HCons (MkT @"i09")
-      -- 10 .. 19
-    $ HCons (MkT @"i10")
-    $ HCons (MkT @"i11")
-    $ HCons (MkT @"i12")
-    $ HCons (MkT @"i13")
-    $ HCons (MkT @"i14")
-    $ HCons (MkT @"i15")
-    $ HCons (MkT @"i16")
-    $ HCons (MkT @"i17")
-    $ HCons (MkT @"i18")
-    $ HCons (MkT @"i19")
-      -- 20 .. 29
-    $ HCons (MkT @"i20")
-    $ HCons (MkT @"i21")
-    $ HCons (MkT @"i22")
-    $ HCons (MkT @"i23")
-    $ HCons (MkT @"i24")
-    $ HCons (MkT @"i25")
-    $ HCons (MkT @"i26")
-    $ HCons (MkT @"i27")
-    $ HCons (MkT @"i28")
-    $ HCons (MkT @"i29")
-      -- 30 .. 39
-    $ HCons (MkT @"i30")
-    $ HCons (MkT @"i31")
-    $ HCons (MkT @"i32")
-    $ HCons (MkT @"i33")
-    $ HCons (MkT @"i34")
-    $ HCons (MkT @"i35")
-    $ HCons (MkT @"i36")
-    $ HCons (MkT @"i37")
-    $ HCons (MkT @"i38")
-    $ HCons (MkT @"i39")
-      -- 40 .. 49
-    $ HCons (MkT @"i40")
-    $ HCons (MkT @"i41")
-    $ HCons (MkT @"i42")
-    $ HCons (MkT @"i43")
-    $ HCons (MkT @"i44")
-    $ HCons (MkT @"i45")
-    $ HCons (MkT @"i46")
-    $ HCons (MkT @"i47")
-    $ HCons (MkT @"i48")
-    $ HCons (MkT @"i49")
-    $ HNil
-
diff --git a/test/Test/Size/HList/Baseline/Baseline060.hs b/test/Test/Size/HList/Baseline/Baseline060.hs
deleted file mode 100644
--- a/test/Test/Size/HList/Baseline/Baseline060.hs
+++ /dev/null
@@ -1,75 +0,0 @@
-module Test.Size.HList.Baseline.Baseline060 where
-
-import Test.Infra
-import Test.Size.HList.Index.Ix060
-
-hlist :: HList Fields
-hlist =
-      -- 00 .. 09
-      HCons (MkT @"i00")
-    $ HCons (MkT @"i01")
-    $ HCons (MkT @"i02")
-    $ HCons (MkT @"i03")
-    $ HCons (MkT @"i04")
-    $ HCons (MkT @"i05")
-    $ HCons (MkT @"i06")
-    $ HCons (MkT @"i07")
-    $ HCons (MkT @"i08")
-    $ HCons (MkT @"i09")
-      -- 10 .. 19
-    $ HCons (MkT @"i10")
-    $ HCons (MkT @"i11")
-    $ HCons (MkT @"i12")
-    $ HCons (MkT @"i13")
-    $ HCons (MkT @"i14")
-    $ HCons (MkT @"i15")
-    $ HCons (MkT @"i16")
-    $ HCons (MkT @"i17")
-    $ HCons (MkT @"i18")
-    $ HCons (MkT @"i19")
-      -- 20 .. 29
-    $ HCons (MkT @"i20")
-    $ HCons (MkT @"i21")
-    $ HCons (MkT @"i22")
-    $ HCons (MkT @"i23")
-    $ HCons (MkT @"i24")
-    $ HCons (MkT @"i25")
-    $ HCons (MkT @"i26")
-    $ HCons (MkT @"i27")
-    $ HCons (MkT @"i28")
-    $ HCons (MkT @"i29")
-      -- 30 .. 39
-    $ HCons (MkT @"i30")
-    $ HCons (MkT @"i31")
-    $ HCons (MkT @"i32")
-    $ HCons (MkT @"i33")
-    $ HCons (MkT @"i34")
-    $ HCons (MkT @"i35")
-    $ HCons (MkT @"i36")
-    $ HCons (MkT @"i37")
-    $ HCons (MkT @"i38")
-    $ HCons (MkT @"i39")
-      -- 40 .. 49
-    $ HCons (MkT @"i40")
-    $ HCons (MkT @"i41")
-    $ HCons (MkT @"i42")
-    $ HCons (MkT @"i43")
-    $ HCons (MkT @"i44")
-    $ HCons (MkT @"i45")
-    $ HCons (MkT @"i46")
-    $ HCons (MkT @"i47")
-    $ HCons (MkT @"i48")
-    $ HCons (MkT @"i49")
-      -- 50 .. 59
-    $ HCons (MkT @"i50")
-    $ HCons (MkT @"i51")
-    $ HCons (MkT @"i52")
-    $ HCons (MkT @"i53")
-    $ HCons (MkT @"i54")
-    $ HCons (MkT @"i55")
-    $ HCons (MkT @"i56")
-    $ HCons (MkT @"i57")
-    $ HCons (MkT @"i58")
-    $ HCons (MkT @"i59")
-    $ HNil
-
diff --git a/test/Test/Size/HList/Baseline/Baseline070.hs b/test/Test/Size/HList/Baseline/Baseline070.hs
deleted file mode 100644
--- a/test/Test/Size/HList/Baseline/Baseline070.hs
+++ /dev/null
@@ -1,86 +0,0 @@
-module Test.Size.HList.Baseline.Baseline070 where
-
-import Test.Infra
-import Test.Size.HList.Index.Ix070
-
-hlist :: HList Fields
-hlist =
-      -- 00 .. 09
-      HCons (MkT @"i00")
-    $ HCons (MkT @"i01")
-    $ HCons (MkT @"i02")
-    $ HCons (MkT @"i03")
-    $ HCons (MkT @"i04")
-    $ HCons (MkT @"i05")
-    $ HCons (MkT @"i06")
-    $ HCons (MkT @"i07")
-    $ HCons (MkT @"i08")
-    $ HCons (MkT @"i09")
-      -- 10 .. 19
-    $ HCons (MkT @"i10")
-    $ HCons (MkT @"i11")
-    $ HCons (MkT @"i12")
-    $ HCons (MkT @"i13")
-    $ HCons (MkT @"i14")
-    $ HCons (MkT @"i15")
-    $ HCons (MkT @"i16")
-    $ HCons (MkT @"i17")
-    $ HCons (MkT @"i18")
-    $ HCons (MkT @"i19")
-      -- 20 .. 29
-    $ HCons (MkT @"i20")
-    $ HCons (MkT @"i21")
-    $ HCons (MkT @"i22")
-    $ HCons (MkT @"i23")
-    $ HCons (MkT @"i24")
-    $ HCons (MkT @"i25")
-    $ HCons (MkT @"i26")
-    $ HCons (MkT @"i27")
-    $ HCons (MkT @"i28")
-    $ HCons (MkT @"i29")
-      -- 30 .. 39
-    $ HCons (MkT @"i30")
-    $ HCons (MkT @"i31")
-    $ HCons (MkT @"i32")
-    $ HCons (MkT @"i33")
-    $ HCons (MkT @"i34")
-    $ HCons (MkT @"i35")
-    $ HCons (MkT @"i36")
-    $ HCons (MkT @"i37")
-    $ HCons (MkT @"i38")
-    $ HCons (MkT @"i39")
-      -- 40 .. 49
-    $ HCons (MkT @"i40")
-    $ HCons (MkT @"i41")
-    $ HCons (MkT @"i42")
-    $ HCons (MkT @"i43")
-    $ HCons (MkT @"i44")
-    $ HCons (MkT @"i45")
-    $ HCons (MkT @"i46")
-    $ HCons (MkT @"i47")
-    $ HCons (MkT @"i48")
-    $ HCons (MkT @"i49")
-      -- 50 .. 59
-    $ HCons (MkT @"i50")
-    $ HCons (MkT @"i51")
-    $ HCons (MkT @"i52")
-    $ HCons (MkT @"i53")
-    $ HCons (MkT @"i54")
-    $ HCons (MkT @"i55")
-    $ HCons (MkT @"i56")
-    $ HCons (MkT @"i57")
-    $ HCons (MkT @"i58")
-    $ HCons (MkT @"i59")
-      -- 60 .. 69
-    $ HCons (MkT @"i60")
-    $ HCons (MkT @"i61")
-    $ HCons (MkT @"i62")
-    $ HCons (MkT @"i63")
-    $ HCons (MkT @"i64")
-    $ HCons (MkT @"i65")
-    $ HCons (MkT @"i66")
-    $ HCons (MkT @"i67")
-    $ HCons (MkT @"i68")
-    $ HCons (MkT @"i69")
-    $ HNil
-
diff --git a/test/Test/Size/HList/Baseline/Baseline080.hs b/test/Test/Size/HList/Baseline/Baseline080.hs
deleted file mode 100644
--- a/test/Test/Size/HList/Baseline/Baseline080.hs
+++ /dev/null
@@ -1,97 +0,0 @@
-module Test.Size.HList.Baseline.Baseline080 where
-
-import Test.Infra
-import Test.Size.HList.Index.Ix080
-
-hlist :: HList Fields
-hlist =
-      -- 00 .. 09
-      HCons (MkT @"i00")
-    $ HCons (MkT @"i01")
-    $ HCons (MkT @"i02")
-    $ HCons (MkT @"i03")
-    $ HCons (MkT @"i04")
-    $ HCons (MkT @"i05")
-    $ HCons (MkT @"i06")
-    $ HCons (MkT @"i07")
-    $ HCons (MkT @"i08")
-    $ HCons (MkT @"i09")
-      -- 10 .. 19
-    $ HCons (MkT @"i10")
-    $ HCons (MkT @"i11")
-    $ HCons (MkT @"i12")
-    $ HCons (MkT @"i13")
-    $ HCons (MkT @"i14")
-    $ HCons (MkT @"i15")
-    $ HCons (MkT @"i16")
-    $ HCons (MkT @"i17")
-    $ HCons (MkT @"i18")
-    $ HCons (MkT @"i19")
-      -- 20 .. 29
-    $ HCons (MkT @"i20")
-    $ HCons (MkT @"i21")
-    $ HCons (MkT @"i22")
-    $ HCons (MkT @"i23")
-    $ HCons (MkT @"i24")
-    $ HCons (MkT @"i25")
-    $ HCons (MkT @"i26")
-    $ HCons (MkT @"i27")
-    $ HCons (MkT @"i28")
-    $ HCons (MkT @"i29")
-      -- 30 .. 39
-    $ HCons (MkT @"i30")
-    $ HCons (MkT @"i31")
-    $ HCons (MkT @"i32")
-    $ HCons (MkT @"i33")
-    $ HCons (MkT @"i34")
-    $ HCons (MkT @"i35")
-    $ HCons (MkT @"i36")
-    $ HCons (MkT @"i37")
-    $ HCons (MkT @"i38")
-    $ HCons (MkT @"i39")
-      -- 40 .. 49
-    $ HCons (MkT @"i40")
-    $ HCons (MkT @"i41")
-    $ HCons (MkT @"i42")
-    $ HCons (MkT @"i43")
-    $ HCons (MkT @"i44")
-    $ HCons (MkT @"i45")
-    $ HCons (MkT @"i46")
-    $ HCons (MkT @"i47")
-    $ HCons (MkT @"i48")
-    $ HCons (MkT @"i49")
-      -- 50 .. 59
-    $ HCons (MkT @"i50")
-    $ HCons (MkT @"i51")
-    $ HCons (MkT @"i52")
-    $ HCons (MkT @"i53")
-    $ HCons (MkT @"i54")
-    $ HCons (MkT @"i55")
-    $ HCons (MkT @"i56")
-    $ HCons (MkT @"i57")
-    $ HCons (MkT @"i58")
-    $ HCons (MkT @"i59")
-      -- 60 .. 69
-    $ HCons (MkT @"i60")
-    $ HCons (MkT @"i61")
-    $ HCons (MkT @"i62")
-    $ HCons (MkT @"i63")
-    $ HCons (MkT @"i64")
-    $ HCons (MkT @"i65")
-    $ HCons (MkT @"i66")
-    $ HCons (MkT @"i67")
-    $ HCons (MkT @"i68")
-    $ HCons (MkT @"i69")
-      -- 70 .. 79
-    $ HCons (MkT @"i70")
-    $ HCons (MkT @"i71")
-    $ HCons (MkT @"i72")
-    $ HCons (MkT @"i73")
-    $ HCons (MkT @"i74")
-    $ HCons (MkT @"i75")
-    $ HCons (MkT @"i76")
-    $ HCons (MkT @"i77")
-    $ HCons (MkT @"i78")
-    $ HCons (MkT @"i79")
-    $ HNil
-
diff --git a/test/Test/Size/HList/Baseline/Baseline090.hs b/test/Test/Size/HList/Baseline/Baseline090.hs
deleted file mode 100644
--- a/test/Test/Size/HList/Baseline/Baseline090.hs
+++ /dev/null
@@ -1,108 +0,0 @@
-module Test.Size.HList.Baseline.Baseline090 where
-
-import Test.Infra
-import Test.Size.HList.Index.Ix090
-
-hlist :: HList Fields
-hlist =
-      -- 00 .. 09
-      HCons (MkT @"i00")
-    $ HCons (MkT @"i01")
-    $ HCons (MkT @"i02")
-    $ HCons (MkT @"i03")
-    $ HCons (MkT @"i04")
-    $ HCons (MkT @"i05")
-    $ HCons (MkT @"i06")
-    $ HCons (MkT @"i07")
-    $ HCons (MkT @"i08")
-    $ HCons (MkT @"i09")
-      -- 10 .. 19
-    $ HCons (MkT @"i10")
-    $ HCons (MkT @"i11")
-    $ HCons (MkT @"i12")
-    $ HCons (MkT @"i13")
-    $ HCons (MkT @"i14")
-    $ HCons (MkT @"i15")
-    $ HCons (MkT @"i16")
-    $ HCons (MkT @"i17")
-    $ HCons (MkT @"i18")
-    $ HCons (MkT @"i19")
-      -- 20 .. 29
-    $ HCons (MkT @"i20")
-    $ HCons (MkT @"i21")
-    $ HCons (MkT @"i22")
-    $ HCons (MkT @"i23")
-    $ HCons (MkT @"i24")
-    $ HCons (MkT @"i25")
-    $ HCons (MkT @"i26")
-    $ HCons (MkT @"i27")
-    $ HCons (MkT @"i28")
-    $ HCons (MkT @"i29")
-      -- 30 .. 39
-    $ HCons (MkT @"i30")
-    $ HCons (MkT @"i31")
-    $ HCons (MkT @"i32")
-    $ HCons (MkT @"i33")
-    $ HCons (MkT @"i34")
-    $ HCons (MkT @"i35")
-    $ HCons (MkT @"i36")
-    $ HCons (MkT @"i37")
-    $ HCons (MkT @"i38")
-    $ HCons (MkT @"i39")
-      -- 40 .. 49
-    $ HCons (MkT @"i40")
-    $ HCons (MkT @"i41")
-    $ HCons (MkT @"i42")
-    $ HCons (MkT @"i43")
-    $ HCons (MkT @"i44")
-    $ HCons (MkT @"i45")
-    $ HCons (MkT @"i46")
-    $ HCons (MkT @"i47")
-    $ HCons (MkT @"i48")
-    $ HCons (MkT @"i49")
-      -- 50 .. 59
-    $ HCons (MkT @"i50")
-    $ HCons (MkT @"i51")
-    $ HCons (MkT @"i52")
-    $ HCons (MkT @"i53")
-    $ HCons (MkT @"i54")
-    $ HCons (MkT @"i55")
-    $ HCons (MkT @"i56")
-    $ HCons (MkT @"i57")
-    $ HCons (MkT @"i58")
-    $ HCons (MkT @"i59")
-      -- 60 .. 69
-    $ HCons (MkT @"i60")
-    $ HCons (MkT @"i61")
-    $ HCons (MkT @"i62")
-    $ HCons (MkT @"i63")
-    $ HCons (MkT @"i64")
-    $ HCons (MkT @"i65")
-    $ HCons (MkT @"i66")
-    $ HCons (MkT @"i67")
-    $ HCons (MkT @"i68")
-    $ HCons (MkT @"i69")
-      -- 70 .. 79
-    $ HCons (MkT @"i70")
-    $ HCons (MkT @"i71")
-    $ HCons (MkT @"i72")
-    $ HCons (MkT @"i73")
-    $ HCons (MkT @"i74")
-    $ HCons (MkT @"i75")
-    $ HCons (MkT @"i76")
-    $ HCons (MkT @"i77")
-    $ HCons (MkT @"i78")
-    $ HCons (MkT @"i79")
-      -- 80 .. 89
-    $ HCons (MkT @"i80")
-    $ HCons (MkT @"i81")
-    $ HCons (MkT @"i82")
-    $ HCons (MkT @"i83")
-    $ HCons (MkT @"i84")
-    $ HCons (MkT @"i85")
-    $ HCons (MkT @"i86")
-    $ HCons (MkT @"i87")
-    $ HCons (MkT @"i88")
-    $ HCons (MkT @"i89")
-    $ HNil
-
diff --git a/test/Test/Size/HList/Baseline/Baseline100.hs b/test/Test/Size/HList/Baseline/Baseline100.hs
deleted file mode 100644
--- a/test/Test/Size/HList/Baseline/Baseline100.hs
+++ /dev/null
@@ -1,119 +0,0 @@
-module Test.Size.HList.Baseline.Baseline100 where
-
-import Test.Infra
-import Test.Size.HList.Index.Ix100
-
-hlist :: HList Fields
-hlist =
-      -- 00 .. 09
-      HCons (MkT @"i00")
-    $ HCons (MkT @"i01")
-    $ HCons (MkT @"i02")
-    $ HCons (MkT @"i03")
-    $ HCons (MkT @"i04")
-    $ HCons (MkT @"i05")
-    $ HCons (MkT @"i06")
-    $ HCons (MkT @"i07")
-    $ HCons (MkT @"i08")
-    $ HCons (MkT @"i09")
-      -- 10 .. 19
-    $ HCons (MkT @"i10")
-    $ HCons (MkT @"i11")
-    $ HCons (MkT @"i12")
-    $ HCons (MkT @"i13")
-    $ HCons (MkT @"i14")
-    $ HCons (MkT @"i15")
-    $ HCons (MkT @"i16")
-    $ HCons (MkT @"i17")
-    $ HCons (MkT @"i18")
-    $ HCons (MkT @"i19")
-      -- 20 .. 29
-    $ HCons (MkT @"i20")
-    $ HCons (MkT @"i21")
-    $ HCons (MkT @"i22")
-    $ HCons (MkT @"i23")
-    $ HCons (MkT @"i24")
-    $ HCons (MkT @"i25")
-    $ HCons (MkT @"i26")
-    $ HCons (MkT @"i27")
-    $ HCons (MkT @"i28")
-    $ HCons (MkT @"i29")
-      -- 30 .. 39
-    $ HCons (MkT @"i30")
-    $ HCons (MkT @"i31")
-    $ HCons (MkT @"i32")
-    $ HCons (MkT @"i33")
-    $ HCons (MkT @"i34")
-    $ HCons (MkT @"i35")
-    $ HCons (MkT @"i36")
-    $ HCons (MkT @"i37")
-    $ HCons (MkT @"i38")
-    $ HCons (MkT @"i39")
-      -- 40 .. 49
-    $ HCons (MkT @"i40")
-    $ HCons (MkT @"i41")
-    $ HCons (MkT @"i42")
-    $ HCons (MkT @"i43")
-    $ HCons (MkT @"i44")
-    $ HCons (MkT @"i45")
-    $ HCons (MkT @"i46")
-    $ HCons (MkT @"i47")
-    $ HCons (MkT @"i48")
-    $ HCons (MkT @"i49")
-      -- 50 .. 59
-    $ HCons (MkT @"i50")
-    $ HCons (MkT @"i51")
-    $ HCons (MkT @"i52")
-    $ HCons (MkT @"i53")
-    $ HCons (MkT @"i54")
-    $ HCons (MkT @"i55")
-    $ HCons (MkT @"i56")
-    $ HCons (MkT @"i57")
-    $ HCons (MkT @"i58")
-    $ HCons (MkT @"i59")
-      -- 60 .. 69
-    $ HCons (MkT @"i60")
-    $ HCons (MkT @"i61")
-    $ HCons (MkT @"i62")
-    $ HCons (MkT @"i63")
-    $ HCons (MkT @"i64")
-    $ HCons (MkT @"i65")
-    $ HCons (MkT @"i66")
-    $ HCons (MkT @"i67")
-    $ HCons (MkT @"i68")
-    $ HCons (MkT @"i69")
-      -- 70 .. 79
-    $ HCons (MkT @"i70")
-    $ HCons (MkT @"i71")
-    $ HCons (MkT @"i72")
-    $ HCons (MkT @"i73")
-    $ HCons (MkT @"i74")
-    $ HCons (MkT @"i75")
-    $ HCons (MkT @"i76")
-    $ HCons (MkT @"i77")
-    $ HCons (MkT @"i78")
-    $ HCons (MkT @"i79")
-      -- 80 .. 89
-    $ HCons (MkT @"i80")
-    $ HCons (MkT @"i81")
-    $ HCons (MkT @"i82")
-    $ HCons (MkT @"i83")
-    $ HCons (MkT @"i84")
-    $ HCons (MkT @"i85")
-    $ HCons (MkT @"i86")
-    $ HCons (MkT @"i87")
-    $ HCons (MkT @"i88")
-    $ HCons (MkT @"i89")
-      -- 90 .. 99
-    $ HCons (MkT @"i90")
-    $ HCons (MkT @"i91")
-    $ HCons (MkT @"i92")
-    $ HCons (MkT @"i93")
-    $ HCons (MkT @"i94")
-    $ HCons (MkT @"i95")
-    $ HCons (MkT @"i96")
-    $ HCons (MkT @"i97")
-    $ HCons (MkT @"i98")
-    $ HCons (MkT @"i99")
-    $ HNil
-
diff --git a/test/Test/Size/HList/Index/Ix010.hs b/test/Test/Size/HList/Index/Ix010.hs
deleted file mode 100644
--- a/test/Test/Size/HList/Index/Ix010.hs
+++ /dev/null
@@ -1,17 +0,0 @@
-module Test.Size.HList.Index.Ix010 (Fields) where
-
-import Test.Infra
-
-type Fields = '[
-      -- 00 .. 09
-      T "i00"
-    , T "i01"
-    , T "i02"
-    , T "i03"
-    , T "i04"
-    , T "i05"
-    , T "i06"
-    , T "i07"
-    , T "i08"
-    , T "i09"
-    ]
diff --git a/test/Test/Size/HList/Index/Ix020.hs b/test/Test/Size/HList/Index/Ix020.hs
deleted file mode 100644
--- a/test/Test/Size/HList/Index/Ix020.hs
+++ /dev/null
@@ -1,28 +0,0 @@
-module Test.Size.HList.Index.Ix020 (Fields) where
-
-import Test.Infra
-
-type Fields = '[
-      -- 00 .. 09
-      T "i00"
-    , T "i01"
-    , T "i02"
-    , T "i03"
-    , T "i04"
-    , T "i05"
-    , T "i06"
-    , T "i07"
-    , T "i08"
-    , T "i09"
-      -- 10 .. 19
-    , T "i10"
-    , T "i11"
-    , T "i12"
-    , T "i13"
-    , T "i14"
-    , T "i15"
-    , T "i16"
-    , T "i17"
-    , T "i18"
-    , T "i19"
-    ]
diff --git a/test/Test/Size/HList/Index/Ix030.hs b/test/Test/Size/HList/Index/Ix030.hs
deleted file mode 100644
--- a/test/Test/Size/HList/Index/Ix030.hs
+++ /dev/null
@@ -1,39 +0,0 @@
-module Test.Size.HList.Index.Ix030 (Fields) where
-
-import Test.Infra
-
-type Fields = '[
-      -- 00 .. 09
-      T "i00"
-    , T "i01"
-    , T "i02"
-    , T "i03"
-    , T "i04"
-    , T "i05"
-    , T "i06"
-    , T "i07"
-    , T "i08"
-    , T "i09"
-      -- 10 .. 19
-    , T "i10"
-    , T "i11"
-    , T "i12"
-    , T "i13"
-    , T "i14"
-    , T "i15"
-    , T "i16"
-    , T "i17"
-    , T "i18"
-    , T "i19"
-      -- 20 .. 29
-    , T "i20"
-    , T "i21"
-    , T "i22"
-    , T "i23"
-    , T "i24"
-    , T "i25"
-    , T "i26"
-    , T "i27"
-    , T "i28"
-    , T "i29"
-    ]
diff --git a/test/Test/Size/HList/Index/Ix040.hs b/test/Test/Size/HList/Index/Ix040.hs
deleted file mode 100644
--- a/test/Test/Size/HList/Index/Ix040.hs
+++ /dev/null
@@ -1,50 +0,0 @@
-module Test.Size.HList.Index.Ix040 (Fields) where
-
-import Test.Infra
-
-type Fields = '[
-      -- 00 .. 09
-      T "i00"
-    , T "i01"
-    , T "i02"
-    , T "i03"
-    , T "i04"
-    , T "i05"
-    , T "i06"
-    , T "i07"
-    , T "i08"
-    , T "i09"
-      -- 10 .. 19
-    , T "i10"
-    , T "i11"
-    , T "i12"
-    , T "i13"
-    , T "i14"
-    , T "i15"
-    , T "i16"
-    , T "i17"
-    , T "i18"
-    , T "i19"
-      -- 20 .. 29
-    , T "i20"
-    , T "i21"
-    , T "i22"
-    , T "i23"
-    , T "i24"
-    , T "i25"
-    , T "i26"
-    , T "i27"
-    , T "i28"
-    , T "i29"
-      -- 30 .. 39
-    , T "i30"
-    , T "i31"
-    , T "i32"
-    , T "i33"
-    , T "i34"
-    , T "i35"
-    , T "i36"
-    , T "i37"
-    , T "i38"
-    , T "i39"
-    ]
diff --git a/test/Test/Size/HList/Index/Ix050.hs b/test/Test/Size/HList/Index/Ix050.hs
deleted file mode 100644
--- a/test/Test/Size/HList/Index/Ix050.hs
+++ /dev/null
@@ -1,61 +0,0 @@
-module Test.Size.HList.Index.Ix050 (Fields) where
-
-import Test.Infra
-
-type Fields = '[
-      -- 00 .. 09
-      T "i00"
-    , T "i01"
-    , T "i02"
-    , T "i03"
-    , T "i04"
-    , T "i05"
-    , T "i06"
-    , T "i07"
-    , T "i08"
-    , T "i09"
-      -- 10 .. 19
-    , T "i10"
-    , T "i11"
-    , T "i12"
-    , T "i13"
-    , T "i14"
-    , T "i15"
-    , T "i16"
-    , T "i17"
-    , T "i18"
-    , T "i19"
-      -- 20 .. 29
-    , T "i20"
-    , T "i21"
-    , T "i22"
-    , T "i23"
-    , T "i24"
-    , T "i25"
-    , T "i26"
-    , T "i27"
-    , T "i28"
-    , T "i29"
-      -- 30 .. 39
-    , T "i30"
-    , T "i31"
-    , T "i32"
-    , T "i33"
-    , T "i34"
-    , T "i35"
-    , T "i36"
-    , T "i37"
-    , T "i38"
-    , T "i39"
-      -- 40 .. 49
-    , T "i40"
-    , T "i41"
-    , T "i42"
-    , T "i43"
-    , T "i44"
-    , T "i45"
-    , T "i46"
-    , T "i47"
-    , T "i48"
-    , T "i49"
-    ]
diff --git a/test/Test/Size/HList/Index/Ix060.hs b/test/Test/Size/HList/Index/Ix060.hs
deleted file mode 100644
--- a/test/Test/Size/HList/Index/Ix060.hs
+++ /dev/null
@@ -1,72 +0,0 @@
-module Test.Size.HList.Index.Ix060 (Fields) where
-
-import Test.Infra
-
-type Fields = '[
-      -- 00 .. 09
-      T "i00"
-    , T "i01"
-    , T "i02"
-    , T "i03"
-    , T "i04"
-    , T "i05"
-    , T "i06"
-    , T "i07"
-    , T "i08"
-    , T "i09"
-      -- 10 .. 19
-    , T "i10"
-    , T "i11"
-    , T "i12"
-    , T "i13"
-    , T "i14"
-    , T "i15"
-    , T "i16"
-    , T "i17"
-    , T "i18"
-    , T "i19"
-      -- 20 .. 29
-    , T "i20"
-    , T "i21"
-    , T "i22"
-    , T "i23"
-    , T "i24"
-    , T "i25"
-    , T "i26"
-    , T "i27"
-    , T "i28"
-    , T "i29"
-      -- 30 .. 39
-    , T "i30"
-    , T "i31"
-    , T "i32"
-    , T "i33"
-    , T "i34"
-    , T "i35"
-    , T "i36"
-    , T "i37"
-    , T "i38"
-    , T "i39"
-      -- 40 .. 49
-    , T "i40"
-    , T "i41"
-    , T "i42"
-    , T "i43"
-    , T "i44"
-    , T "i45"
-    , T "i46"
-    , T "i47"
-    , T "i48"
-    , T "i49"
-      -- 50 .. 59
-    , T "i50"
-    , T "i51"
-    , T "i52"
-    , T "i53"
-    , T "i54"
-    , T "i55"
-    , T "i56"
-    , T "i57"
-    , T "i58"
-    , T "i59"
-    ]
diff --git a/test/Test/Size/HList/Index/Ix070.hs b/test/Test/Size/HList/Index/Ix070.hs
deleted file mode 100644
--- a/test/Test/Size/HList/Index/Ix070.hs
+++ /dev/null
@@ -1,83 +0,0 @@
-module Test.Size.HList.Index.Ix070 (Fields) where
-
-import Test.Infra
-
-type Fields = '[
-      -- 00 .. 09
-      T "i00"
-    , T "i01"
-    , T "i02"
-    , T "i03"
-    , T "i04"
-    , T "i05"
-    , T "i06"
-    , T "i07"
-    , T "i08"
-    , T "i09"
-      -- 10 .. 19
-    , T "i10"
-    , T "i11"
-    , T "i12"
-    , T "i13"
-    , T "i14"
-    , T "i15"
-    , T "i16"
-    , T "i17"
-    , T "i18"
-    , T "i19"
-      -- 20 .. 29
-    , T "i20"
-    , T "i21"
-    , T "i22"
-    , T "i23"
-    , T "i24"
-    , T "i25"
-    , T "i26"
-    , T "i27"
-    , T "i28"
-    , T "i29"
-      -- 30 .. 39
-    , T "i30"
-    , T "i31"
-    , T "i32"
-    , T "i33"
-    , T "i34"
-    , T "i35"
-    , T "i36"
-    , T "i37"
-    , T "i38"
-    , T "i39"
-      -- 40 .. 49
-    , T "i40"
-    , T "i41"
-    , T "i42"
-    , T "i43"
-    , T "i44"
-    , T "i45"
-    , T "i46"
-    , T "i47"
-    , T "i48"
-    , T "i49"
-      -- 50 .. 59
-    , T "i50"
-    , T "i51"
-    , T "i52"
-    , T "i53"
-    , T "i54"
-    , T "i55"
-    , T "i56"
-    , T "i57"
-    , T "i58"
-    , T "i59"
-      -- 60 .. 69
-    , T "i60"
-    , T "i61"
-    , T "i62"
-    , T "i63"
-    , T "i64"
-    , T "i65"
-    , T "i66"
-    , T "i67"
-    , T "i68"
-    , T "i69"
-    ]
diff --git a/test/Test/Size/HList/Index/Ix080.hs b/test/Test/Size/HList/Index/Ix080.hs
deleted file mode 100644
--- a/test/Test/Size/HList/Index/Ix080.hs
+++ /dev/null
@@ -1,94 +0,0 @@
-module Test.Size.HList.Index.Ix080 (Fields) where
-
-import Test.Infra
-
-type Fields = '[
-      -- 00 .. 09
-      T "i00"
-    , T "i01"
-    , T "i02"
-    , T "i03"
-    , T "i04"
-    , T "i05"
-    , T "i06"
-    , T "i07"
-    , T "i08"
-    , T "i09"
-      -- 10 .. 19
-    , T "i10"
-    , T "i11"
-    , T "i12"
-    , T "i13"
-    , T "i14"
-    , T "i15"
-    , T "i16"
-    , T "i17"
-    , T "i18"
-    , T "i19"
-      -- 20 .. 29
-    , T "i20"
-    , T "i21"
-    , T "i22"
-    , T "i23"
-    , T "i24"
-    , T "i25"
-    , T "i26"
-    , T "i27"
-    , T "i28"
-    , T "i29"
-      -- 30 .. 39
-    , T "i30"
-    , T "i31"
-    , T "i32"
-    , T "i33"
-    , T "i34"
-    , T "i35"
-    , T "i36"
-    , T "i37"
-    , T "i38"
-    , T "i39"
-      -- 40 .. 49
-    , T "i40"
-    , T "i41"
-    , T "i42"
-    , T "i43"
-    , T "i44"
-    , T "i45"
-    , T "i46"
-    , T "i47"
-    , T "i48"
-    , T "i49"
-      -- 50 .. 59
-    , T "i50"
-    , T "i51"
-    , T "i52"
-    , T "i53"
-    , T "i54"
-    , T "i55"
-    , T "i56"
-    , T "i57"
-    , T "i58"
-    , T "i59"
-      -- 60 .. 69
-    , T "i60"
-    , T "i61"
-    , T "i62"
-    , T "i63"
-    , T "i64"
-    , T "i65"
-    , T "i66"
-    , T "i67"
-    , T "i68"
-    , T "i69"
-      -- 70 .. 79
-    , T "i70"
-    , T "i71"
-    , T "i72"
-    , T "i73"
-    , T "i74"
-    , T "i75"
-    , T "i76"
-    , T "i77"
-    , T "i78"
-    , T "i79"
-    ]
diff --git a/test/Test/Size/HList/Index/Ix090.hs b/test/Test/Size/HList/Index/Ix090.hs
deleted file mode 100644
--- a/test/Test/Size/HList/Index/Ix090.hs
+++ /dev/null
@@ -1,105 +0,0 @@
-module Test.Size.HList.Index.Ix090 (Fields) where
-
-import Test.Infra
-
-type Fields = '[
-      -- 00 .. 09
-      T "i00"
-    , T "i01"
-    , T "i02"
-    , T "i03"
-    , T "i04"
-    , T "i05"
-    , T "i06"
-    , T "i07"
-    , T "i08"
-    , T "i09"
-      -- 10 .. 19
-    , T "i10"
-    , T "i11"
-    , T "i12"
-    , T "i13"
-    , T "i14"
-    , T "i15"
-    , T "i16"
-    , T "i17"
-    , T "i18"
-    , T "i19"
-      -- 20 .. 29
-    , T "i20"
-    , T "i21"
-    , T "i22"
-    , T "i23"
-    , T "i24"
-    , T "i25"
-    , T "i26"
-    , T "i27"
-    , T "i28"
-    , T "i29"
-      -- 30 .. 39
-    , T "i30"
-    , T "i31"
-    , T "i32"
-    , T "i33"
-    , T "i34"
-    , T "i35"
-    , T "i36"
-    , T "i37"
-    , T "i38"
-    , T "i39"
-      -- 40 .. 49
-    , T "i40"
-    , T "i41"
-    , T "i42"
-    , T "i43"
-    , T "i44"
-    , T "i45"
-    , T "i46"
-    , T "i47"
-    , T "i48"
-    , T "i49"
-      -- 50 .. 59
-    , T "i50"
-    , T "i51"
-    , T "i52"
-    , T "i53"
-    , T "i54"
-    , T "i55"
-    , T "i56"
-    , T "i57"
-    , T "i58"
-    , T "i59"
-      -- 60 .. 69
-    , T "i60"
-    , T "i61"
-    , T "i62"
-    , T "i63"
-    , T "i64"
-    , T "i65"
-    , T "i66"
-    , T "i67"
-    , T "i68"
-    , T "i69"
-      -- 70 .. 79
-    , T "i70"
-    , T "i71"
-    , T "i72"
-    , T "i73"
-    , T "i74"
-    , T "i75"
-    , T "i76"
-    , T "i77"
-    , T "i78"
-    , T "i79"
-      -- 80 .. 89
-    , T "i80"
-    , T "i81"
-    , T "i82"
-    , T "i83"
-    , T "i84"
-    , T "i85"
-    , T "i86"
-    , T "i87"
-    , T "i88"
-    , T "i89"
-    ]
diff --git a/test/Test/Size/HList/Index/Ix100.hs b/test/Test/Size/HList/Index/Ix100.hs
deleted file mode 100644
--- a/test/Test/Size/HList/Index/Ix100.hs
+++ /dev/null
@@ -1,116 +0,0 @@
-module Test.Size.HList.Index.Ix100 (Fields) where
-
-import Test.Infra
-
-type Fields = '[
-      -- 00 .. 09
-      T "i00"
-    , T "i01"
-    , T "i02"
-    , T "i03"
-    , T "i04"
-    , T "i05"
-    , T "i06"
-    , T "i07"
-    , T "i08"
-    , T "i09"
-      -- 10 .. 19
-    , T "i10"
-    , T "i11"
-    , T "i12"
-    , T "i13"
-    , T "i14"
-    , T "i15"
-    , T "i16"
-    , T "i17"
-    , T "i18"
-    , T "i19"
-      -- 20 .. 29
-    , T "i20"
-    , T "i21"
-    , T "i22"
-    , T "i23"
-    , T "i24"
-    , T "i25"
-    , T "i26"
-    , T "i27"
-    , T "i28"
-    , T "i29"
-      -- 30 .. 39
-    , T "i30"
-    , T "i31"
-    , T "i32"
-    , T "i33"
-    , T "i34"
-    , T "i35"
-    , T "i36"
-    , T "i37"
-    , T "i38"
-    , T "i39"
-      -- 40 .. 49
-    , T "i40"
-    , T "i41"
-    , T "i42"
-    , T "i43"
-    , T "i44"
-    , T "i45"
-    , T "i46"
-    , T "i47"
-    , T "i48"
-    , T "i49"
-      -- 50 .. 59
-    , T "i50"
-    , T "i51"
-    , T "i52"
-    , T "i53"
-    , T "i54"
-    , T "i55"
-    , T "i56"
-    , T "i57"
-    , T "i58"
-    , T "i59"
-      -- 60 .. 69
-    , T "i60"
-    , T "i61"
-    , T "i62"
-    , T "i63"
-    , T "i64"
-    , T "i65"
-    , T "i66"
-    , T "i67"
-    , T "i68"
-    , T "i69"
-      -- 70 .. 79
-    , T "i70"
-    , T "i71"
-    , T "i72"
-    , T "i73"
-    , T "i74"
-    , T "i75"
-    , T "i76"
-    , T "i77"
-    , T "i78"
-    , T "i79"
-      -- 80 .. 89
-    , T "i80"
-    , T "i81"
-    , T "i82"
-    , T "i83"
-    , T "i84"
-    , T "i85"
-    , T "i86"
-    , T "i87"
-    , T "i88"
-    , T "i89"
-      -- 90 .. 99
-    , T "i90"
-    , T "i91"
-    , T "i92"
-    , T "i93"
-    , T "i94"
-    , T "i95"
-    , T "i96"
-    , T "i97"
-    , T "i98"
-    , T "i99"
-    ]
diff --git a/test/Test/Size/HList/LetAs/LetAs010.hs b/test/Test/Size/HList/LetAs/LetAs010.hs
deleted file mode 100644
--- a/test/Test/Size/HList/LetAs/LetAs010.hs
+++ /dev/null
@@ -1,24 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.HList.LetAs.LetAs010 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.HList.Index.Ix010
-
-hlist :: HList Fields
-hlist =
-    -- 09 .. 00
-    case letAs (HCons (MkT @"i09") HNil) of { LetAs (xs09 :: HList t09) ->
-    case letAs (HCons (MkT @"i08") xs09) of { LetAs (xs08 :: HList t08) ->
-    case letAs (HCons (MkT @"i07") xs08) of { LetAs (xs07 :: HList t07) ->
-    case letAs (HCons (MkT @"i06") xs07) of { LetAs (xs06 :: HList t06) ->
-    case letAs (HCons (MkT @"i05") xs06) of { LetAs (xs05 :: HList t05) ->
-    case letAs (HCons (MkT @"i04") xs05) of { LetAs (xs04 :: HList t04) ->
-    case letAs (HCons (MkT @"i03") xs04) of { LetAs (xs03 :: HList t03) ->
-    case letAs (HCons (MkT @"i02") xs03) of { LetAs (xs02 :: HList t02) ->
-    case letAs (HCons (MkT @"i01") xs02) of { LetAs (xs01 :: HList t01) ->
-    case letAs (HCons (MkT @"i00") xs01) of { LetAs (xs00 :: HList t00) ->
-      castEqual xs00
-    }}}}}}}}}}
diff --git a/test/Test/Size/HList/LetAs/LetAs020.hs b/test/Test/Size/HList/LetAs/LetAs020.hs
deleted file mode 100644
--- a/test/Test/Size/HList/LetAs/LetAs020.hs
+++ /dev/null
@@ -1,36 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.HList.LetAs.LetAs020 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.HList.Index.Ix020
-
-hlist :: HList Fields
-hlist =
-    -- 19 .. 10
-    case letAs (HCons (MkT @"i19") HNil) of { LetAs (xs19 :: HList t19) ->
-    case letAs (HCons (MkT @"i18") xs19) of { LetAs (xs18 :: HList t18) ->
-    case letAs (HCons (MkT @"i17") xs18) of { LetAs (xs17 :: HList t17) ->
-    case letAs (HCons (MkT @"i16") xs17) of { LetAs (xs16 :: HList t16) ->
-    case letAs (HCons (MkT @"i15") xs16) of { LetAs (xs15 :: HList t15) ->
-    case letAs (HCons (MkT @"i14") xs15) of { LetAs (xs14 :: HList t14) ->
-    case letAs (HCons (MkT @"i13") xs14) of { LetAs (xs13 :: HList t13) ->
-    case letAs (HCons (MkT @"i12") xs13) of { LetAs (xs12 :: HList t12) ->
-    case letAs (HCons (MkT @"i11") xs12) of { LetAs (xs11 :: HList t11) ->
-    case letAs (HCons (MkT @"i10") xs11) of { LetAs (xs10 :: HList t10) ->
-    -- 09 .. 00
-    case letAs (HCons (MkT @"i09") xs10) of { LetAs (xs09 :: HList t09) ->
-    case letAs (HCons (MkT @"i08") xs09) of { LetAs (xs08 :: HList t08) ->
-    case letAs (HCons (MkT @"i07") xs08) of { LetAs (xs07 :: HList t07) ->
-    case letAs (HCons (MkT @"i06") xs07) of { LetAs (xs06 :: HList t06) ->
-    case letAs (HCons (MkT @"i05") xs06) of { LetAs (xs05 :: HList t05) ->
-    case letAs (HCons (MkT @"i04") xs05) of { LetAs (xs04 :: HList t04) ->
-    case letAs (HCons (MkT @"i03") xs04) of { LetAs (xs03 :: HList t03) ->
-    case letAs (HCons (MkT @"i02") xs03) of { LetAs (xs02 :: HList t02) ->
-    case letAs (HCons (MkT @"i01") xs02) of { LetAs (xs01 :: HList t01) ->
-    case letAs (HCons (MkT @"i00") xs01) of { LetAs (xs00 :: HList t00) ->
-      castEqual xs00
-    }}}}}}}}}}
-    }}}}}}}}}}
diff --git a/test/Test/Size/HList/LetAs/LetAs030.hs b/test/Test/Size/HList/LetAs/LetAs030.hs
deleted file mode 100644
--- a/test/Test/Size/HList/LetAs/LetAs030.hs
+++ /dev/null
@@ -1,48 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.HList.LetAs.LetAs030 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.HList.Index.Ix030
-
-hlist :: HList Fields
-hlist =
-    -- 29 .. 20
-    case letAs (HCons (MkT @"i29") HNil) of { LetAs (xs29 :: HList t29) ->
-    case letAs (HCons (MkT @"i28") xs29) of { LetAs (xs28 :: HList t28) ->
-    case letAs (HCons (MkT @"i27") xs28) of { LetAs (xs27 :: HList t27) ->
-    case letAs (HCons (MkT @"i26") xs27) of { LetAs (xs26 :: HList t26) ->
-    case letAs (HCons (MkT @"i25") xs26) of { LetAs (xs25 :: HList t25) ->
-    case letAs (HCons (MkT @"i24") xs25) of { LetAs (xs24 :: HList t24) ->
-    case letAs (HCons (MkT @"i23") xs24) of { LetAs (xs23 :: HList t23) ->
-    case letAs (HCons (MkT @"i22") xs23) of { LetAs (xs22 :: HList t22) ->
-    case letAs (HCons (MkT @"i21") xs22) of { LetAs (xs21 :: HList t21) ->
-    case letAs (HCons (MkT @"i20") xs21) of { LetAs (xs20 :: HList t20) ->
-    -- 19 .. 10
-    case letAs (HCons (MkT @"i19") xs20) of { LetAs (xs19 :: HList t19) ->
-    case letAs (HCons (MkT @"i18") xs19) of { LetAs (xs18 :: HList t18) ->
-    case letAs (HCons (MkT @"i17") xs18) of { LetAs (xs17 :: HList t17) ->
-    case letAs (HCons (MkT @"i16") xs17) of { LetAs (xs16 :: HList t16) ->
-    case letAs (HCons (MkT @"i15") xs16) of { LetAs (xs15 :: HList t15) ->
-    case letAs (HCons (MkT @"i14") xs15) of { LetAs (xs14 :: HList t14) ->
-    case letAs (HCons (MkT @"i13") xs14) of { LetAs (xs13 :: HList t13) ->
-    case letAs (HCons (MkT @"i12") xs13) of { LetAs (xs12 :: HList t12) ->
-    case letAs (HCons (MkT @"i11") xs12) of { LetAs (xs11 :: HList t11) ->
-    case letAs (HCons (MkT @"i10") xs11) of { LetAs (xs10 :: HList t10) ->
-    -- 09 .. 00
-    case letAs (HCons (MkT @"i09") xs10) of { LetAs (xs09 :: HList t09) ->
-    case letAs (HCons (MkT @"i08") xs09) of { LetAs (xs08 :: HList t08) ->
-    case letAs (HCons (MkT @"i07") xs08) of { LetAs (xs07 :: HList t07) ->
-    case letAs (HCons (MkT @"i06") xs07) of { LetAs (xs06 :: HList t06) ->
-    case letAs (HCons (MkT @"i05") xs06) of { LetAs (xs05 :: HList t05) ->
-    case letAs (HCons (MkT @"i04") xs05) of { LetAs (xs04 :: HList t04) ->
-    case letAs (HCons (MkT @"i03") xs04) of { LetAs (xs03 :: HList t03) ->
-    case letAs (HCons (MkT @"i02") xs03) of { LetAs (xs02 :: HList t02) ->
-    case letAs (HCons (MkT @"i01") xs02) of { LetAs (xs01 :: HList t01) ->
-    case letAs (HCons (MkT @"i00") xs01) of { LetAs (xs00 :: HList t00) ->
-      castEqual xs00
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
diff --git a/test/Test/Size/HList/LetAs/LetAs040.hs b/test/Test/Size/HList/LetAs/LetAs040.hs
deleted file mode 100644
--- a/test/Test/Size/HList/LetAs/LetAs040.hs
+++ /dev/null
@@ -1,60 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.HList.LetAs.LetAs040 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.HList.Index.Ix040
-
-hlist :: HList Fields
-hlist =
-    -- 39 .. 30
-    case letAs (HCons (MkT @"i39") HNil) of { LetAs (xs39 :: HList t39) ->
-    case letAs (HCons (MkT @"i38") xs39) of { LetAs (xs38 :: HList t38) ->
-    case letAs (HCons (MkT @"i37") xs38) of { LetAs (xs37 :: HList t37) ->
-    case letAs (HCons (MkT @"i36") xs37) of { LetAs (xs36 :: HList t36) ->
-    case letAs (HCons (MkT @"i35") xs36) of { LetAs (xs35 :: HList t35) ->
-    case letAs (HCons (MkT @"i34") xs35) of { LetAs (xs34 :: HList t34) ->
-    case letAs (HCons (MkT @"i33") xs34) of { LetAs (xs33 :: HList t33) ->
-    case letAs (HCons (MkT @"i32") xs33) of { LetAs (xs32 :: HList t32) ->
-    case letAs (HCons (MkT @"i31") xs32) of { LetAs (xs31 :: HList t31) ->
-    case letAs (HCons (MkT @"i30") xs31) of { LetAs (xs30 :: HList t30) ->
-    -- 29 .. 20
-    case letAs (HCons (MkT @"i29") xs30) of { LetAs (xs29 :: HList t29) ->
-    case letAs (HCons (MkT @"i28") xs29) of { LetAs (xs28 :: HList t28) ->
-    case letAs (HCons (MkT @"i27") xs28) of { LetAs (xs27 :: HList t27) ->
-    case letAs (HCons (MkT @"i26") xs27) of { LetAs (xs26 :: HList t26) ->
-    case letAs (HCons (MkT @"i25") xs26) of { LetAs (xs25 :: HList t25) ->
-    case letAs (HCons (MkT @"i24") xs25) of { LetAs (xs24 :: HList t24) ->
-    case letAs (HCons (MkT @"i23") xs24) of { LetAs (xs23 :: HList t23) ->
-    case letAs (HCons (MkT @"i22") xs23) of { LetAs (xs22 :: HList t22) ->
-    case letAs (HCons (MkT @"i21") xs22) of { LetAs (xs21 :: HList t21) ->
-    case letAs (HCons (MkT @"i20") xs21) of { LetAs (xs20 :: HList t20) ->
-    -- 19 .. 10
-    case letAs (HCons (MkT @"i19") xs20) of { LetAs (xs19 :: HList t19) ->
-    case letAs (HCons (MkT @"i18") xs19) of { LetAs (xs18 :: HList t18) ->
-    case letAs (HCons (MkT @"i17") xs18) of { LetAs (xs17 :: HList t17) ->
-    case letAs (HCons (MkT @"i16") xs17) of { LetAs (xs16 :: HList t16) ->
-    case letAs (HCons (MkT @"i15") xs16) of { LetAs (xs15 :: HList t15) ->
-    case letAs (HCons (MkT @"i14") xs15) of { LetAs (xs14 :: HList t14) ->
-    case letAs (HCons (MkT @"i13") xs14) of { LetAs (xs13 :: HList t13) ->
-    case letAs (HCons (MkT @"i12") xs13) of { LetAs (xs12 :: HList t12) ->
-    case letAs (HCons (MkT @"i11") xs12) of { LetAs (xs11 :: HList t11) ->
-    case letAs (HCons (MkT @"i10") xs11) of { LetAs (xs10 :: HList t10) ->
-    -- 09 .. 00
-    case letAs (HCons (MkT @"i09") xs10) of { LetAs (xs09 :: HList t09) ->
-    case letAs (HCons (MkT @"i08") xs09) of { LetAs (xs08 :: HList t08) ->
-    case letAs (HCons (MkT @"i07") xs08) of { LetAs (xs07 :: HList t07) ->
-    case letAs (HCons (MkT @"i06") xs07) of { LetAs (xs06 :: HList t06) ->
-    case letAs (HCons (MkT @"i05") xs06) of { LetAs (xs05 :: HList t05) ->
-    case letAs (HCons (MkT @"i04") xs05) of { LetAs (xs04 :: HList t04) ->
-    case letAs (HCons (MkT @"i03") xs04) of { LetAs (xs03 :: HList t03) ->
-    case letAs (HCons (MkT @"i02") xs03) of { LetAs (xs02 :: HList t02) ->
-    case letAs (HCons (MkT @"i01") xs02) of { LetAs (xs01 :: HList t01) ->
-    case letAs (HCons (MkT @"i00") xs01) of { LetAs (xs00 :: HList t00) ->
-      castEqual xs00
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
diff --git a/test/Test/Size/HList/LetAs/LetAs050.hs b/test/Test/Size/HList/LetAs/LetAs050.hs
deleted file mode 100644
--- a/test/Test/Size/HList/LetAs/LetAs050.hs
+++ /dev/null
@@ -1,72 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.HList.LetAs.LetAs050 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.HList.Index.Ix050
-
-hlist :: HList Fields
-hlist =
-    -- 49 .. 40
-    case letAs (HCons (MkT @"i49") HNil) of { LetAs (xs49 :: HList t49) ->
-    case letAs (HCons (MkT @"i48") xs49) of { LetAs (xs48 :: HList t48) ->
-    case letAs (HCons (MkT @"i47") xs48) of { LetAs (xs47 :: HList t47) ->
-    case letAs (HCons (MkT @"i46") xs47) of { LetAs (xs46 :: HList t46) ->
-    case letAs (HCons (MkT @"i45") xs46) of { LetAs (xs45 :: HList t45) ->
-    case letAs (HCons (MkT @"i44") xs45) of { LetAs (xs44 :: HList t44) ->
-    case letAs (HCons (MkT @"i43") xs44) of { LetAs (xs43 :: HList t43) ->
-    case letAs (HCons (MkT @"i42") xs43) of { LetAs (xs42 :: HList t42) ->
-    case letAs (HCons (MkT @"i41") xs42) of { LetAs (xs41 :: HList t41) ->
-    case letAs (HCons (MkT @"i40") xs41) of { LetAs (xs40 :: HList t40) ->
-    -- 39 .. 30
-    case letAs (HCons (MkT @"i39") xs40) of { LetAs (xs39 :: HList t39) ->
-    case letAs (HCons (MkT @"i38") xs39) of { LetAs (xs38 :: HList t38) ->
-    case letAs (HCons (MkT @"i37") xs38) of { LetAs (xs37 :: HList t37) ->
-    case letAs (HCons (MkT @"i36") xs37) of { LetAs (xs36 :: HList t36) ->
-    case letAs (HCons (MkT @"i35") xs36) of { LetAs (xs35 :: HList t35) ->
-    case letAs (HCons (MkT @"i34") xs35) of { LetAs (xs34 :: HList t34) ->
-    case letAs (HCons (MkT @"i33") xs34) of { LetAs (xs33 :: HList t33) ->
-    case letAs (HCons (MkT @"i32") xs33) of { LetAs (xs32 :: HList t32) ->
-    case letAs (HCons (MkT @"i31") xs32) of { LetAs (xs31 :: HList t31) ->
-    case letAs (HCons (MkT @"i30") xs31) of { LetAs (xs30 :: HList t30) ->
-    -- 29 .. 20
-    case letAs (HCons (MkT @"i29") xs30) of { LetAs (xs29 :: HList t29) ->
-    case letAs (HCons (MkT @"i28") xs29) of { LetAs (xs28 :: HList t28) ->
-    case letAs (HCons (MkT @"i27") xs28) of { LetAs (xs27 :: HList t27) ->
-    case letAs (HCons (MkT @"i26") xs27) of { LetAs (xs26 :: HList t26) ->
-    case letAs (HCons (MkT @"i25") xs26) of { LetAs (xs25 :: HList t25) ->
-    case letAs (HCons (MkT @"i24") xs25) of { LetAs (xs24 :: HList t24) ->
-    case letAs (HCons (MkT @"i23") xs24) of { LetAs (xs23 :: HList t23) ->
-    case letAs (HCons (MkT @"i22") xs23) of { LetAs (xs22 :: HList t22) ->
-    case letAs (HCons (MkT @"i21") xs22) of { LetAs (xs21 :: HList t21) ->
-    case letAs (HCons (MkT @"i20") xs21) of { LetAs (xs20 :: HList t20) ->
-    -- 19 .. 10
-    case letAs (HCons (MkT @"i19") xs20) of { LetAs (xs19 :: HList t19) ->
-    case letAs (HCons (MkT @"i18") xs19) of { LetAs (xs18 :: HList t18) ->
-    case letAs (HCons (MkT @"i17") xs18) of { LetAs (xs17 :: HList t17) ->
-    case letAs (HCons (MkT @"i16") xs17) of { LetAs (xs16 :: HList t16) ->
-    case letAs (HCons (MkT @"i15") xs16) of { LetAs (xs15 :: HList t15) ->
-    case letAs (HCons (MkT @"i14") xs15) of { LetAs (xs14 :: HList t14) ->
-    case letAs (HCons (MkT @"i13") xs14) of { LetAs (xs13 :: HList t13) ->
-    case letAs (HCons (MkT @"i12") xs13) of { LetAs (xs12 :: HList t12) ->
-    case letAs (HCons (MkT @"i11") xs12) of { LetAs (xs11 :: HList t11) ->
-    case letAs (HCons (MkT @"i10") xs11) of { LetAs (xs10 :: HList t10) ->
-    -- 09 .. 00
-    case letAs (HCons (MkT @"i09") xs10) of { LetAs (xs09 :: HList t09) ->
-    case letAs (HCons (MkT @"i08") xs09) of { LetAs (xs08 :: HList t08) ->
-    case letAs (HCons (MkT @"i07") xs08) of { LetAs (xs07 :: HList t07) ->
-    case letAs (HCons (MkT @"i06") xs07) of { LetAs (xs06 :: HList t06) ->
-    case letAs (HCons (MkT @"i05") xs06) of { LetAs (xs05 :: HList t05) ->
-    case letAs (HCons (MkT @"i04") xs05) of { LetAs (xs04 :: HList t04) ->
-    case letAs (HCons (MkT @"i03") xs04) of { LetAs (xs03 :: HList t03) ->
-    case letAs (HCons (MkT @"i02") xs03) of { LetAs (xs02 :: HList t02) ->
-    case letAs (HCons (MkT @"i01") xs02) of { LetAs (xs01 :: HList t01) ->
-    case letAs (HCons (MkT @"i00") xs01) of { LetAs (xs00 :: HList t00) ->
-      castEqual xs00
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
diff --git a/test/Test/Size/HList/LetAs/LetAs060.hs b/test/Test/Size/HList/LetAs/LetAs060.hs
deleted file mode 100644
--- a/test/Test/Size/HList/LetAs/LetAs060.hs
+++ /dev/null
@@ -1,84 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.HList.LetAs.LetAs060 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.HList.Index.Ix060
-
-hlist :: HList Fields
-hlist =
-    -- 59 .. 50
-    case letAs (HCons (MkT @"i59") HNil) of { LetAs (xs59 :: HList t59) ->
-    case letAs (HCons (MkT @"i58") xs59) of { LetAs (xs58 :: HList t58) ->
-    case letAs (HCons (MkT @"i57") xs58) of { LetAs (xs57 :: HList t57) ->
-    case letAs (HCons (MkT @"i56") xs57) of { LetAs (xs56 :: HList t56) ->
-    case letAs (HCons (MkT @"i55") xs56) of { LetAs (xs55 :: HList t55) ->
-    case letAs (HCons (MkT @"i54") xs55) of { LetAs (xs54 :: HList t54) ->
-    case letAs (HCons (MkT @"i53") xs54) of { LetAs (xs53 :: HList t53) ->
-    case letAs (HCons (MkT @"i52") xs53) of { LetAs (xs52 :: HList t52) ->
-    case letAs (HCons (MkT @"i51") xs52) of { LetAs (xs51 :: HList t51) ->
-    case letAs (HCons (MkT @"i50") xs51) of { LetAs (xs50 :: HList t50) ->
-    -- 49 .. 40
-    case letAs (HCons (MkT @"i49") xs50) of { LetAs (xs49 :: HList t49) ->
-    case letAs (HCons (MkT @"i48") xs49) of { LetAs (xs48 :: HList t48) ->
-    case letAs (HCons (MkT @"i47") xs48) of { LetAs (xs47 :: HList t47) ->
-    case letAs (HCons (MkT @"i46") xs47) of { LetAs (xs46 :: HList t46) ->
-    case letAs (HCons (MkT @"i45") xs46) of { LetAs (xs45 :: HList t45) ->
-    case letAs (HCons (MkT @"i44") xs45) of { LetAs (xs44 :: HList t44) ->
-    case letAs (HCons (MkT @"i43") xs44) of { LetAs (xs43 :: HList t43) ->
-    case letAs (HCons (MkT @"i42") xs43) of { LetAs (xs42 :: HList t42) ->
-    case letAs (HCons (MkT @"i41") xs42) of { LetAs (xs41 :: HList t41) ->
-    case letAs (HCons (MkT @"i40") xs41) of { LetAs (xs40 :: HList t40) ->
-    -- 39 .. 30
-    case letAs (HCons (MkT @"i39") xs40) of { LetAs (xs39 :: HList t39) ->
-    case letAs (HCons (MkT @"i38") xs39) of { LetAs (xs38 :: HList t38) ->
-    case letAs (HCons (MkT @"i37") xs38) of { LetAs (xs37 :: HList t37) ->
-    case letAs (HCons (MkT @"i36") xs37) of { LetAs (xs36 :: HList t36) ->
-    case letAs (HCons (MkT @"i35") xs36) of { LetAs (xs35 :: HList t35) ->
-    case letAs (HCons (MkT @"i34") xs35) of { LetAs (xs34 :: HList t34) ->
-    case letAs (HCons (MkT @"i33") xs34) of { LetAs (xs33 :: HList t33) ->
-    case letAs (HCons (MkT @"i32") xs33) of { LetAs (xs32 :: HList t32) ->
-    case letAs (HCons (MkT @"i31") xs32) of { LetAs (xs31 :: HList t31) ->
-    case letAs (HCons (MkT @"i30") xs31) of { LetAs (xs30 :: HList t30) ->
-    -- 29 .. 20
-    case letAs (HCons (MkT @"i29") xs30) of { LetAs (xs29 :: HList t29) ->
-    case letAs (HCons (MkT @"i28") xs29) of { LetAs (xs28 :: HList t28) ->
-    case letAs (HCons (MkT @"i27") xs28) of { LetAs (xs27 :: HList t27) ->
-    case letAs (HCons (MkT @"i26") xs27) of { LetAs (xs26 :: HList t26) ->
-    case letAs (HCons (MkT @"i25") xs26) of { LetAs (xs25 :: HList t25) ->
-    case letAs (HCons (MkT @"i24") xs25) of { LetAs (xs24 :: HList t24) ->
-    case letAs (HCons (MkT @"i23") xs24) of { LetAs (xs23 :: HList t23) ->
-    case letAs (HCons (MkT @"i22") xs23) of { LetAs (xs22 :: HList t22) ->
-    case letAs (HCons (MkT @"i21") xs22) of { LetAs (xs21 :: HList t21) ->
-    case letAs (HCons (MkT @"i20") xs21) of { LetAs (xs20 :: HList t20) ->
-    -- 19 .. 10
-    case letAs (HCons (MkT @"i19") xs20) of { LetAs (xs19 :: HList t19) ->
-    case letAs (HCons (MkT @"i18") xs19) of { LetAs (xs18 :: HList t18) ->
-    case letAs (HCons (MkT @"i17") xs18) of { LetAs (xs17 :: HList t17) ->
-    case letAs (HCons (MkT @"i16") xs17) of { LetAs (xs16 :: HList t16) ->
-    case letAs (HCons (MkT @"i15") xs16) of { LetAs (xs15 :: HList t15) ->
-    case letAs (HCons (MkT @"i14") xs15) of { LetAs (xs14 :: HList t14) ->
-    case letAs (HCons (MkT @"i13") xs14) of { LetAs (xs13 :: HList t13) ->
-    case letAs (HCons (MkT @"i12") xs13) of { LetAs (xs12 :: HList t12) ->
-    case letAs (HCons (MkT @"i11") xs12) of { LetAs (xs11 :: HList t11) ->
-    case letAs (HCons (MkT @"i10") xs11) of { LetAs (xs10 :: HList t10) ->
-    -- 09 .. 00
-    case letAs (HCons (MkT @"i09") xs10) of { LetAs (xs09 :: HList t09) ->
-    case letAs (HCons (MkT @"i08") xs09) of { LetAs (xs08 :: HList t08) ->
-    case letAs (HCons (MkT @"i07") xs08) of { LetAs (xs07 :: HList t07) ->
-    case letAs (HCons (MkT @"i06") xs07) of { LetAs (xs06 :: HList t06) ->
-    case letAs (HCons (MkT @"i05") xs06) of { LetAs (xs05 :: HList t05) ->
-    case letAs (HCons (MkT @"i04") xs05) of { LetAs (xs04 :: HList t04) ->
-    case letAs (HCons (MkT @"i03") xs04) of { LetAs (xs03 :: HList t03) ->
-    case letAs (HCons (MkT @"i02") xs03) of { LetAs (xs02 :: HList t02) ->
-    case letAs (HCons (MkT @"i01") xs02) of { LetAs (xs01 :: HList t01) ->
-    case letAs (HCons (MkT @"i00") xs01) of { LetAs (xs00 :: HList t00) ->
-      castEqual xs00
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
diff --git a/test/Test/Size/HList/LetAs/LetAs070.hs b/test/Test/Size/HList/LetAs/LetAs070.hs
deleted file mode 100644
--- a/test/Test/Size/HList/LetAs/LetAs070.hs
+++ /dev/null
@@ -1,96 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.HList.LetAs.LetAs070 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.HList.Index.Ix070
-
-hlist :: HList Fields
-hlist =
-    -- 69 .. 60
-    case letAs (HCons (MkT @"i69") HNil) of { LetAs (xs69 :: HList t69) ->
-    case letAs (HCons (MkT @"i68") xs69) of { LetAs (xs68 :: HList t68) ->
-    case letAs (HCons (MkT @"i67") xs68) of { LetAs (xs67 :: HList t67) ->
-    case letAs (HCons (MkT @"i66") xs67) of { LetAs (xs66 :: HList t66) ->
-    case letAs (HCons (MkT @"i65") xs66) of { LetAs (xs65 :: HList t65) ->
-    case letAs (HCons (MkT @"i64") xs65) of { LetAs (xs64 :: HList t64) ->
-    case letAs (HCons (MkT @"i63") xs64) of { LetAs (xs63 :: HList t63) ->
-    case letAs (HCons (MkT @"i62") xs63) of { LetAs (xs62 :: HList t62) ->
-    case letAs (HCons (MkT @"i61") xs62) of { LetAs (xs61 :: HList t61) ->
-    case letAs (HCons (MkT @"i60") xs61) of { LetAs (xs60 :: HList t60) ->
-    -- 59 .. 50
-    case letAs (HCons (MkT @"i59") xs60) of { LetAs (xs59 :: HList t59) ->
-    case letAs (HCons (MkT @"i58") xs59) of { LetAs (xs58 :: HList t58) ->
-    case letAs (HCons (MkT @"i57") xs58) of { LetAs (xs57 :: HList t57) ->
-    case letAs (HCons (MkT @"i56") xs57) of { LetAs (xs56 :: HList t56) ->
-    case letAs (HCons (MkT @"i55") xs56) of { LetAs (xs55 :: HList t55) ->
-    case letAs (HCons (MkT @"i54") xs55) of { LetAs (xs54 :: HList t54) ->
-    case letAs (HCons (MkT @"i53") xs54) of { LetAs (xs53 :: HList t53) ->
-    case letAs (HCons (MkT @"i52") xs53) of { LetAs (xs52 :: HList t52) ->
-    case letAs (HCons (MkT @"i51") xs52) of { LetAs (xs51 :: HList t51) ->
-    case letAs (HCons (MkT @"i50") xs51) of { LetAs (xs50 :: HList t50) ->
-    -- 49 .. 40
-    case letAs (HCons (MkT @"i49") xs50) of { LetAs (xs49 :: HList t49) ->
-    case letAs (HCons (MkT @"i48") xs49) of { LetAs (xs48 :: HList t48) ->
-    case letAs (HCons (MkT @"i47") xs48) of { LetAs (xs47 :: HList t47) ->
-    case letAs (HCons (MkT @"i46") xs47) of { LetAs (xs46 :: HList t46) ->
-    case letAs (HCons (MkT @"i45") xs46) of { LetAs (xs45 :: HList t45) ->
-    case letAs (HCons (MkT @"i44") xs45) of { LetAs (xs44 :: HList t44) ->
-    case letAs (HCons (MkT @"i43") xs44) of { LetAs (xs43 :: HList t43) ->
-    case letAs (HCons (MkT @"i42") xs43) of { LetAs (xs42 :: HList t42) ->
-    case letAs (HCons (MkT @"i41") xs42) of { LetAs (xs41 :: HList t41) ->
-    case letAs (HCons (MkT @"i40") xs41) of { LetAs (xs40 :: HList t40) ->
-    -- 39 .. 30
-    case letAs (HCons (MkT @"i39") xs40) of { LetAs (xs39 :: HList t39) ->
-    case letAs (HCons (MkT @"i38") xs39) of { LetAs (xs38 :: HList t38) ->
-    case letAs (HCons (MkT @"i37") xs38) of { LetAs (xs37 :: HList t37) ->
-    case letAs (HCons (MkT @"i36") xs37) of { LetAs (xs36 :: HList t36) ->
-    case letAs (HCons (MkT @"i35") xs36) of { LetAs (xs35 :: HList t35) ->
-    case letAs (HCons (MkT @"i34") xs35) of { LetAs (xs34 :: HList t34) ->
-    case letAs (HCons (MkT @"i33") xs34) of { LetAs (xs33 :: HList t33) ->
-    case letAs (HCons (MkT @"i32") xs33) of { LetAs (xs32 :: HList t32) ->
-    case letAs (HCons (MkT @"i31") xs32) of { LetAs (xs31 :: HList t31) ->
-    case letAs (HCons (MkT @"i30") xs31) of { LetAs (xs30 :: HList t30) ->
-    -- 29 .. 20
-    case letAs (HCons (MkT @"i29") xs30) of { LetAs (xs29 :: HList t29) ->
-    case letAs (HCons (MkT @"i28") xs29) of { LetAs (xs28 :: HList t28) ->
-    case letAs (HCons (MkT @"i27") xs28) of { LetAs (xs27 :: HList t27) ->
-    case letAs (HCons (MkT @"i26") xs27) of { LetAs (xs26 :: HList t26) ->
-    case letAs (HCons (MkT @"i25") xs26) of { LetAs (xs25 :: HList t25) ->
-    case letAs (HCons (MkT @"i24") xs25) of { LetAs (xs24 :: HList t24) ->
-    case letAs (HCons (MkT @"i23") xs24) of { LetAs (xs23 :: HList t23) ->
-    case letAs (HCons (MkT @"i22") xs23) of { LetAs (xs22 :: HList t22) ->
-    case letAs (HCons (MkT @"i21") xs22) of { LetAs (xs21 :: HList t21) ->
-    case letAs (HCons (MkT @"i20") xs21) of { LetAs (xs20 :: HList t20) ->
-    -- 19 .. 10
-    case letAs (HCons (MkT @"i19") xs20) of { LetAs (xs19 :: HList t19) ->
-    case letAs (HCons (MkT @"i18") xs19) of { LetAs (xs18 :: HList t18) ->
-    case letAs (HCons (MkT @"i17") xs18) of { LetAs (xs17 :: HList t17) ->
-    case letAs (HCons (MkT @"i16") xs17) of { LetAs (xs16 :: HList t16) ->
-    case letAs (HCons (MkT @"i15") xs16) of { LetAs (xs15 :: HList t15) ->
-    case letAs (HCons (MkT @"i14") xs15) of { LetAs (xs14 :: HList t14) ->
-    case letAs (HCons (MkT @"i13") xs14) of { LetAs (xs13 :: HList t13) ->
-    case letAs (HCons (MkT @"i12") xs13) of { LetAs (xs12 :: HList t12) ->
-    case letAs (HCons (MkT @"i11") xs12) of { LetAs (xs11 :: HList t11) ->
-    case letAs (HCons (MkT @"i10") xs11) of { LetAs (xs10 :: HList t10) ->
-    -- 09 .. 00
-    case letAs (HCons (MkT @"i09") xs10) of { LetAs (xs09 :: HList t09) ->
-    case letAs (HCons (MkT @"i08") xs09) of { LetAs (xs08 :: HList t08) ->
-    case letAs (HCons (MkT @"i07") xs08) of { LetAs (xs07 :: HList t07) ->
-    case letAs (HCons (MkT @"i06") xs07) of { LetAs (xs06 :: HList t06) ->
-    case letAs (HCons (MkT @"i05") xs06) of { LetAs (xs05 :: HList t05) ->
-    case letAs (HCons (MkT @"i04") xs05) of { LetAs (xs04 :: HList t04) ->
-    case letAs (HCons (MkT @"i03") xs04) of { LetAs (xs03 :: HList t03) ->
-    case letAs (HCons (MkT @"i02") xs03) of { LetAs (xs02 :: HList t02) ->
-    case letAs (HCons (MkT @"i01") xs02) of { LetAs (xs01 :: HList t01) ->
-    case letAs (HCons (MkT @"i00") xs01) of { LetAs (xs00 :: HList t00) ->
-      castEqual xs00
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
diff --git a/test/Test/Size/HList/LetAs/LetAs080.hs b/test/Test/Size/HList/LetAs/LetAs080.hs
deleted file mode 100644
--- a/test/Test/Size/HList/LetAs/LetAs080.hs
+++ /dev/null
@@ -1,108 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.HList.LetAs.LetAs080 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.HList.Index.Ix080
-
-hlist :: HList Fields
-hlist =
-    -- 79 .. 70
-    case letAs (HCons (MkT @"i79") HNil) of { LetAs (xs79 :: HList t79) ->
-    case letAs (HCons (MkT @"i78") xs79) of { LetAs (xs78 :: HList t78) ->
-    case letAs (HCons (MkT @"i77") xs78) of { LetAs (xs77 :: HList t77) ->
-    case letAs (HCons (MkT @"i76") xs77) of { LetAs (xs76 :: HList t76) ->
-    case letAs (HCons (MkT @"i75") xs76) of { LetAs (xs75 :: HList t75) ->
-    case letAs (HCons (MkT @"i74") xs75) of { LetAs (xs74 :: HList t74) ->
-    case letAs (HCons (MkT @"i73") xs74) of { LetAs (xs73 :: HList t73) ->
-    case letAs (HCons (MkT @"i72") xs73) of { LetAs (xs72 :: HList t72) ->
-    case letAs (HCons (MkT @"i71") xs72) of { LetAs (xs71 :: HList t71) ->
-    case letAs (HCons (MkT @"i70") xs71) of { LetAs (xs70 :: HList t70) ->
-    -- 69 .. 60
-    case letAs (HCons (MkT @"i69") xs70) of { LetAs (xs69 :: HList t69) ->
-    case letAs (HCons (MkT @"i68") xs69) of { LetAs (xs68 :: HList t68) ->
-    case letAs (HCons (MkT @"i67") xs68) of { LetAs (xs67 :: HList t67) ->
-    case letAs (HCons (MkT @"i66") xs67) of { LetAs (xs66 :: HList t66) ->
-    case letAs (HCons (MkT @"i65") xs66) of { LetAs (xs65 :: HList t65) ->
-    case letAs (HCons (MkT @"i64") xs65) of { LetAs (xs64 :: HList t64) ->
-    case letAs (HCons (MkT @"i63") xs64) of { LetAs (xs63 :: HList t63) ->
-    case letAs (HCons (MkT @"i62") xs63) of { LetAs (xs62 :: HList t62) ->
-    case letAs (HCons (MkT @"i61") xs62) of { LetAs (xs61 :: HList t61) ->
-    case letAs (HCons (MkT @"i60") xs61) of { LetAs (xs60 :: HList t60) ->
-    -- 59 .. 50
-    case letAs (HCons (MkT @"i59") xs60) of { LetAs (xs59 :: HList t59) ->
-    case letAs (HCons (MkT @"i58") xs59) of { LetAs (xs58 :: HList t58) ->
-    case letAs (HCons (MkT @"i57") xs58) of { LetAs (xs57 :: HList t57) ->
-    case letAs (HCons (MkT @"i56") xs57) of { LetAs (xs56 :: HList t56) ->
-    case letAs (HCons (MkT @"i55") xs56) of { LetAs (xs55 :: HList t55) ->
-    case letAs (HCons (MkT @"i54") xs55) of { LetAs (xs54 :: HList t54) ->
-    case letAs (HCons (MkT @"i53") xs54) of { LetAs (xs53 :: HList t53) ->
-    case letAs (HCons (MkT @"i52") xs53) of { LetAs (xs52 :: HList t52) ->
-    case letAs (HCons (MkT @"i51") xs52) of { LetAs (xs51 :: HList t51) ->
-    case letAs (HCons (MkT @"i50") xs51) of { LetAs (xs50 :: HList t50) ->
-    -- 49 .. 40
-    case letAs (HCons (MkT @"i49") xs50) of { LetAs (xs49 :: HList t49) ->
-    case letAs (HCons (MkT @"i48") xs49) of { LetAs (xs48 :: HList t48) ->
-    case letAs (HCons (MkT @"i47") xs48) of { LetAs (xs47 :: HList t47) ->
-    case letAs (HCons (MkT @"i46") xs47) of { LetAs (xs46 :: HList t46) ->
-    case letAs (HCons (MkT @"i45") xs46) of { LetAs (xs45 :: HList t45) ->
-    case letAs (HCons (MkT @"i44") xs45) of { LetAs (xs44 :: HList t44) ->
-    case letAs (HCons (MkT @"i43") xs44) of { LetAs (xs43 :: HList t43) ->
-    case letAs (HCons (MkT @"i42") xs43) of { LetAs (xs42 :: HList t42) ->
-    case letAs (HCons (MkT @"i41") xs42) of { LetAs (xs41 :: HList t41) ->
-    case letAs (HCons (MkT @"i40") xs41) of { LetAs (xs40 :: HList t40) ->
-    -- 39 .. 30
-    case letAs (HCons (MkT @"i39") xs40) of { LetAs (xs39 :: HList t39) ->
-    case letAs (HCons (MkT @"i38") xs39) of { LetAs (xs38 :: HList t38) ->
-    case letAs (HCons (MkT @"i37") xs38) of { LetAs (xs37 :: HList t37) ->
-    case letAs (HCons (MkT @"i36") xs37) of { LetAs (xs36 :: HList t36) ->
-    case letAs (HCons (MkT @"i35") xs36) of { LetAs (xs35 :: HList t35) ->
-    case letAs (HCons (MkT @"i34") xs35) of { LetAs (xs34 :: HList t34) ->
-    case letAs (HCons (MkT @"i33") xs34) of { LetAs (xs33 :: HList t33) ->
-    case letAs (HCons (MkT @"i32") xs33) of { LetAs (xs32 :: HList t32) ->
-    case letAs (HCons (MkT @"i31") xs32) of { LetAs (xs31 :: HList t31) ->
-    case letAs (HCons (MkT @"i30") xs31) of { LetAs (xs30 :: HList t30) ->
-    -- 29 .. 20
-    case letAs (HCons (MkT @"i29") xs30) of { LetAs (xs29 :: HList t29) ->
-    case letAs (HCons (MkT @"i28") xs29) of { LetAs (xs28 :: HList t28) ->
-    case letAs (HCons (MkT @"i27") xs28) of { LetAs (xs27 :: HList t27) ->
-    case letAs (HCons (MkT @"i26") xs27) of { LetAs (xs26 :: HList t26) ->
-    case letAs (HCons (MkT @"i25") xs26) of { LetAs (xs25 :: HList t25) ->
-    case letAs (HCons (MkT @"i24") xs25) of { LetAs (xs24 :: HList t24) ->
-    case letAs (HCons (MkT @"i23") xs24) of { LetAs (xs23 :: HList t23) ->
-    case letAs (HCons (MkT @"i22") xs23) of { LetAs (xs22 :: HList t22) ->
-    case letAs (HCons (MkT @"i21") xs22) of { LetAs (xs21 :: HList t21) ->
-    case letAs (HCons (MkT @"i20") xs21) of { LetAs (xs20 :: HList t20) ->
-    -- 19 .. 10
-    case letAs (HCons (MkT @"i19") xs20) of { LetAs (xs19 :: HList t19) ->
-    case letAs (HCons (MkT @"i18") xs19) of { LetAs (xs18 :: HList t18) ->
-    case letAs (HCons (MkT @"i17") xs18) of { LetAs (xs17 :: HList t17) ->
-    case letAs (HCons (MkT @"i16") xs17) of { LetAs (xs16 :: HList t16) ->
-    case letAs (HCons (MkT @"i15") xs16) of { LetAs (xs15 :: HList t15) ->
-    case letAs (HCons (MkT @"i14") xs15) of { LetAs (xs14 :: HList t14) ->
-    case letAs (HCons (MkT @"i13") xs14) of { LetAs (xs13 :: HList t13) ->
-    case letAs (HCons (MkT @"i12") xs13) of { LetAs (xs12 :: HList t12) ->
-    case letAs (HCons (MkT @"i11") xs12) of { LetAs (xs11 :: HList t11) ->
-    case letAs (HCons (MkT @"i10") xs11) of { LetAs (xs10 :: HList t10) ->
-    -- 09 .. 00
-    case letAs (HCons (MkT @"i09") xs10) of { LetAs (xs09 :: HList t09) ->
-    case letAs (HCons (MkT @"i08") xs09) of { LetAs (xs08 :: HList t08) ->
-    case letAs (HCons (MkT @"i07") xs08) of { LetAs (xs07 :: HList t07) ->
-    case letAs (HCons (MkT @"i06") xs07) of { LetAs (xs06 :: HList t06) ->
-    case letAs (HCons (MkT @"i05") xs06) of { LetAs (xs05 :: HList t05) ->
-    case letAs (HCons (MkT @"i04") xs05) of { LetAs (xs04 :: HList t04) ->
-    case letAs (HCons (MkT @"i03") xs04) of { LetAs (xs03 :: HList t03) ->
-    case letAs (HCons (MkT @"i02") xs03) of { LetAs (xs02 :: HList t02) ->
-    case letAs (HCons (MkT @"i01") xs02) of { LetAs (xs01 :: HList t01) ->
-    case letAs (HCons (MkT @"i00") xs01) of { LetAs (xs00 :: HList t00) ->
-      castEqual xs00
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
diff --git a/test/Test/Size/HList/LetAs/LetAs090.hs b/test/Test/Size/HList/LetAs/LetAs090.hs
deleted file mode 100644
--- a/test/Test/Size/HList/LetAs/LetAs090.hs
+++ /dev/null
@@ -1,120 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.HList.LetAs.LetAs090 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.HList.Index.Ix090
-
-hlist :: HList Fields
-hlist =
-    -- 89 .. 80
-    case letAs (HCons (MkT @"i89") HNil) of { LetAs (xs89 :: HList t89) ->
-    case letAs (HCons (MkT @"i88") xs89) of { LetAs (xs88 :: HList t88) ->
-    case letAs (HCons (MkT @"i87") xs88) of { LetAs (xs87 :: HList t87) ->
-    case letAs (HCons (MkT @"i86") xs87) of { LetAs (xs86 :: HList t86) ->
-    case letAs (HCons (MkT @"i85") xs86) of { LetAs (xs85 :: HList t85) ->
-    case letAs (HCons (MkT @"i84") xs85) of { LetAs (xs84 :: HList t84) ->
-    case letAs (HCons (MkT @"i83") xs84) of { LetAs (xs83 :: HList t83) ->
-    case letAs (HCons (MkT @"i82") xs83) of { LetAs (xs82 :: HList t82) ->
-    case letAs (HCons (MkT @"i81") xs82) of { LetAs (xs81 :: HList t81) ->
-    case letAs (HCons (MkT @"i80") xs81) of { LetAs (xs80 :: HList t80) ->
-    -- 79 .. 70
-    case letAs (HCons (MkT @"i79") xs80) of { LetAs (xs79 :: HList t79) ->
-    case letAs (HCons (MkT @"i78") xs79) of { LetAs (xs78 :: HList t78) ->
-    case letAs (HCons (MkT @"i77") xs78) of { LetAs (xs77 :: HList t77) ->
-    case letAs (HCons (MkT @"i76") xs77) of { LetAs (xs76 :: HList t76) ->
-    case letAs (HCons (MkT @"i75") xs76) of { LetAs (xs75 :: HList t75) ->
-    case letAs (HCons (MkT @"i74") xs75) of { LetAs (xs74 :: HList t74) ->
-    case letAs (HCons (MkT @"i73") xs74) of { LetAs (xs73 :: HList t73) ->
-    case letAs (HCons (MkT @"i72") xs73) of { LetAs (xs72 :: HList t72) ->
-    case letAs (HCons (MkT @"i71") xs72) of { LetAs (xs71 :: HList t71) ->
-    case letAs (HCons (MkT @"i70") xs71) of { LetAs (xs70 :: HList t70) ->
-    -- 69 .. 60
-    case letAs (HCons (MkT @"i69") xs70) of { LetAs (xs69 :: HList t69) ->
-    case letAs (HCons (MkT @"i68") xs69) of { LetAs (xs68 :: HList t68) ->
-    case letAs (HCons (MkT @"i67") xs68) of { LetAs (xs67 :: HList t67) ->
-    case letAs (HCons (MkT @"i66") xs67) of { LetAs (xs66 :: HList t66) ->
-    case letAs (HCons (MkT @"i65") xs66) of { LetAs (xs65 :: HList t65) ->
-    case letAs (HCons (MkT @"i64") xs65) of { LetAs (xs64 :: HList t64) ->
-    case letAs (HCons (MkT @"i63") xs64) of { LetAs (xs63 :: HList t63) ->
-    case letAs (HCons (MkT @"i62") xs63) of { LetAs (xs62 :: HList t62) ->
-    case letAs (HCons (MkT @"i61") xs62) of { LetAs (xs61 :: HList t61) ->
-    case letAs (HCons (MkT @"i60") xs61) of { LetAs (xs60 :: HList t60) ->
-    -- 59 .. 50
-    case letAs (HCons (MkT @"i59") xs60) of { LetAs (xs59 :: HList t59) ->
-    case letAs (HCons (MkT @"i58") xs59) of { LetAs (xs58 :: HList t58) ->
-    case letAs (HCons (MkT @"i57") xs58) of { LetAs (xs57 :: HList t57) ->
-    case letAs (HCons (MkT @"i56") xs57) of { LetAs (xs56 :: HList t56) ->
-    case letAs (HCons (MkT @"i55") xs56) of { LetAs (xs55 :: HList t55) ->
-    case letAs (HCons (MkT @"i54") xs55) of { LetAs (xs54 :: HList t54) ->
-    case letAs (HCons (MkT @"i53") xs54) of { LetAs (xs53 :: HList t53) ->
-    case letAs (HCons (MkT @"i52") xs53) of { LetAs (xs52 :: HList t52) ->
-    case letAs (HCons (MkT @"i51") xs52) of { LetAs (xs51 :: HList t51) ->
-    case letAs (HCons (MkT @"i50") xs51) of { LetAs (xs50 :: HList t50) ->
-    -- 49 .. 40
-    case letAs (HCons (MkT @"i49") xs50) of { LetAs (xs49 :: HList t49) ->
-    case letAs (HCons (MkT @"i48") xs49) of { LetAs (xs48 :: HList t48) ->
-    case letAs (HCons (MkT @"i47") xs48) of { LetAs (xs47 :: HList t47) ->
-    case letAs (HCons (MkT @"i46") xs47) of { LetAs (xs46 :: HList t46) ->
-    case letAs (HCons (MkT @"i45") xs46) of { LetAs (xs45 :: HList t45) ->
-    case letAs (HCons (MkT @"i44") xs45) of { LetAs (xs44 :: HList t44) ->
-    case letAs (HCons (MkT @"i43") xs44) of { LetAs (xs43 :: HList t43) ->
-    case letAs (HCons (MkT @"i42") xs43) of { LetAs (xs42 :: HList t42) ->
-    case letAs (HCons (MkT @"i41") xs42) of { LetAs (xs41 :: HList t41) ->
-    case letAs (HCons (MkT @"i40") xs41) of { LetAs (xs40 :: HList t40) ->
-    -- 39 .. 30
-    case letAs (HCons (MkT @"i39") xs40) of { LetAs (xs39 :: HList t39) ->
-    case letAs (HCons (MkT @"i38") xs39) of { LetAs (xs38 :: HList t38) ->
-    case letAs (HCons (MkT @"i37") xs38) of { LetAs (xs37 :: HList t37) ->
-    case letAs (HCons (MkT @"i36") xs37) of { LetAs (xs36 :: HList t36) ->
-    case letAs (HCons (MkT @"i35") xs36) of { LetAs (xs35 :: HList t35) ->
-    case letAs (HCons (MkT @"i34") xs35) of { LetAs (xs34 :: HList t34) ->
-    case letAs (HCons (MkT @"i33") xs34) of { LetAs (xs33 :: HList t33) ->
-    case letAs (HCons (MkT @"i32") xs33) of { LetAs (xs32 :: HList t32) ->
-    case letAs (HCons (MkT @"i31") xs32) of { LetAs (xs31 :: HList t31) ->
-    case letAs (HCons (MkT @"i30") xs31) of { LetAs (xs30 :: HList t30) ->
-    -- 29 .. 20
-    case letAs (HCons (MkT @"i29") xs30) of { LetAs (xs29 :: HList t29) ->
-    case letAs (HCons (MkT @"i28") xs29) of { LetAs (xs28 :: HList t28) ->
-    case letAs (HCons (MkT @"i27") xs28) of { LetAs (xs27 :: HList t27) ->
-    case letAs (HCons (MkT @"i26") xs27) of { LetAs (xs26 :: HList t26) ->
-    case letAs (HCons (MkT @"i25") xs26) of { LetAs (xs25 :: HList t25) ->
-    case letAs (HCons (MkT @"i24") xs25) of { LetAs (xs24 :: HList t24) ->
-    case letAs (HCons (MkT @"i23") xs24) of { LetAs (xs23 :: HList t23) ->
-    case letAs (HCons (MkT @"i22") xs23) of { LetAs (xs22 :: HList t22) ->
-    case letAs (HCons (MkT @"i21") xs22) of { LetAs (xs21 :: HList t21) ->
-    case letAs (HCons (MkT @"i20") xs21) of { LetAs (xs20 :: HList t20) ->
-    -- 19 .. 10
-    case letAs (HCons (MkT @"i19") xs20) of { LetAs (xs19 :: HList t19) ->
-    case letAs (HCons (MkT @"i18") xs19) of { LetAs (xs18 :: HList t18) ->
-    case letAs (HCons (MkT @"i17") xs18) of { LetAs (xs17 :: HList t17) ->
-    case letAs (HCons (MkT @"i16") xs17) of { LetAs (xs16 :: HList t16) ->
-    case letAs (HCons (MkT @"i15") xs16) of { LetAs (xs15 :: HList t15) ->
-    case letAs (HCons (MkT @"i14") xs15) of { LetAs (xs14 :: HList t14) ->
-    case letAs (HCons (MkT @"i13") xs14) of { LetAs (xs13 :: HList t13) ->
-    case letAs (HCons (MkT @"i12") xs13) of { LetAs (xs12 :: HList t12) ->
-    case letAs (HCons (MkT @"i11") xs12) of { LetAs (xs11 :: HList t11) ->
-    case letAs (HCons (MkT @"i10") xs11) of { LetAs (xs10 :: HList t10) ->
-    -- 09 .. 00
-    case letAs (HCons (MkT @"i09") xs10) of { LetAs (xs09 :: HList t09) ->
-    case letAs (HCons (MkT @"i08") xs09) of { LetAs (xs08 :: HList t08) ->
-    case letAs (HCons (MkT @"i07") xs08) of { LetAs (xs07 :: HList t07) ->
-    case letAs (HCons (MkT @"i06") xs07) of { LetAs (xs06 :: HList t06) ->
-    case letAs (HCons (MkT @"i05") xs06) of { LetAs (xs05 :: HList t05) ->
-    case letAs (HCons (MkT @"i04") xs05) of { LetAs (xs04 :: HList t04) ->
-    case letAs (HCons (MkT @"i03") xs04) of { LetAs (xs03 :: HList t03) ->
-    case letAs (HCons (MkT @"i02") xs03) of { LetAs (xs02 :: HList t02) ->
-    case letAs (HCons (MkT @"i01") xs02) of { LetAs (xs01 :: HList t01) ->
-    case letAs (HCons (MkT @"i00") xs01) of { LetAs (xs00 :: HList t00) ->
-      castEqual xs00
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
diff --git a/test/Test/Size/HList/LetAs/LetAs100.hs b/test/Test/Size/HList/LetAs/LetAs100.hs
deleted file mode 100644
--- a/test/Test/Size/HList/LetAs/LetAs100.hs
+++ /dev/null
@@ -1,132 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.HList.LetAs.LetAs100 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.HList.Index.Ix100
-
-hlist :: HList Fields
-hlist =
-    -- 99 .. 90
-    case letAs (HCons (MkT @"i99") HNil) of { LetAs (xs99 :: HList t99) ->
-    case letAs (HCons (MkT @"i98") xs99) of { LetAs (xs98 :: HList t98) ->
-    case letAs (HCons (MkT @"i97") xs98) of { LetAs (xs97 :: HList t97) ->
-    case letAs (HCons (MkT @"i96") xs97) of { LetAs (xs96 :: HList t96) ->
-    case letAs (HCons (MkT @"i95") xs96) of { LetAs (xs95 :: HList t95) ->
-    case letAs (HCons (MkT @"i94") xs95) of { LetAs (xs94 :: HList t94) ->
-    case letAs (HCons (MkT @"i93") xs94) of { LetAs (xs93 :: HList t93) ->
-    case letAs (HCons (MkT @"i92") xs93) of { LetAs (xs92 :: HList t92) ->
-    case letAs (HCons (MkT @"i91") xs92) of { LetAs (xs91 :: HList t91) ->
-    case letAs (HCons (MkT @"i90") xs91) of { LetAs (xs90 :: HList t90) ->
-    -- 89 .. 80
-    case letAs (HCons (MkT @"i89") xs90) of { LetAs (xs89 :: HList t89) ->
-    case letAs (HCons (MkT @"i88") xs89) of { LetAs (xs88 :: HList t88) ->
-    case letAs (HCons (MkT @"i87") xs88) of { LetAs (xs87 :: HList t87) ->
-    case letAs (HCons (MkT @"i86") xs87) of { LetAs (xs86 :: HList t86) ->
-    case letAs (HCons (MkT @"i85") xs86) of { LetAs (xs85 :: HList t85) ->
-    case letAs (HCons (MkT @"i84") xs85) of { LetAs (xs84 :: HList t84) ->
-    case letAs (HCons (MkT @"i83") xs84) of { LetAs (xs83 :: HList t83) ->
-    case letAs (HCons (MkT @"i82") xs83) of { LetAs (xs82 :: HList t82) ->
-    case letAs (HCons (MkT @"i81") xs82) of { LetAs (xs81 :: HList t81) ->
-    case letAs (HCons (MkT @"i80") xs81) of { LetAs (xs80 :: HList t80) ->
-    -- 79 .. 70
-    case letAs (HCons (MkT @"i79") xs80) of { LetAs (xs79 :: HList t79) ->
-    case letAs (HCons (MkT @"i78") xs79) of { LetAs (xs78 :: HList t78) ->
-    case letAs (HCons (MkT @"i77") xs78) of { LetAs (xs77 :: HList t77) ->
-    case letAs (HCons (MkT @"i76") xs77) of { LetAs (xs76 :: HList t76) ->
-    case letAs (HCons (MkT @"i75") xs76) of { LetAs (xs75 :: HList t75) ->
-    case letAs (HCons (MkT @"i74") xs75) of { LetAs (xs74 :: HList t74) ->
-    case letAs (HCons (MkT @"i73") xs74) of { LetAs (xs73 :: HList t73) ->
-    case letAs (HCons (MkT @"i72") xs73) of { LetAs (xs72 :: HList t72) ->
-    case letAs (HCons (MkT @"i71") xs72) of { LetAs (xs71 :: HList t71) ->
-    case letAs (HCons (MkT @"i70") xs71) of { LetAs (xs70 :: HList t70) ->
-    -- 69 .. 60
-    case letAs (HCons (MkT @"i69") xs70) of { LetAs (xs69 :: HList t69) ->
-    case letAs (HCons (MkT @"i68") xs69) of { LetAs (xs68 :: HList t68) ->
-    case letAs (HCons (MkT @"i67") xs68) of { LetAs (xs67 :: HList t67) ->
-    case letAs (HCons (MkT @"i66") xs67) of { LetAs (xs66 :: HList t66) ->
-    case letAs (HCons (MkT @"i65") xs66) of { LetAs (xs65 :: HList t65) ->
-    case letAs (HCons (MkT @"i64") xs65) of { LetAs (xs64 :: HList t64) ->
-    case letAs (HCons (MkT @"i63") xs64) of { LetAs (xs63 :: HList t63) ->
-    case letAs (HCons (MkT @"i62") xs63) of { LetAs (xs62 :: HList t62) ->
-    case letAs (HCons (MkT @"i61") xs62) of { LetAs (xs61 :: HList t61) ->
-    case letAs (HCons (MkT @"i60") xs61) of { LetAs (xs60 :: HList t60) ->
-    -- 59 .. 50
-    case letAs (HCons (MkT @"i59") xs60) of { LetAs (xs59 :: HList t59) ->
-    case letAs (HCons (MkT @"i58") xs59) of { LetAs (xs58 :: HList t58) ->
-    case letAs (HCons (MkT @"i57") xs58) of { LetAs (xs57 :: HList t57) ->
-    case letAs (HCons (MkT @"i56") xs57) of { LetAs (xs56 :: HList t56) ->
-    case letAs (HCons (MkT @"i55") xs56) of { LetAs (xs55 :: HList t55) ->
-    case letAs (HCons (MkT @"i54") xs55) of { LetAs (xs54 :: HList t54) ->
-    case letAs (HCons (MkT @"i53") xs54) of { LetAs (xs53 :: HList t53) ->
-    case letAs (HCons (MkT @"i52") xs53) of { LetAs (xs52 :: HList t52) ->
-    case letAs (HCons (MkT @"i51") xs52) of { LetAs (xs51 :: HList t51) ->
-    case letAs (HCons (MkT @"i50") xs51) of { LetAs (xs50 :: HList t50) ->
-    -- 49 .. 40
-    case letAs (HCons (MkT @"i49") xs50) of { LetAs (xs49 :: HList t49) ->
-    case letAs (HCons (MkT @"i48") xs49) of { LetAs (xs48 :: HList t48) ->
-    case letAs (HCons (MkT @"i47") xs48) of { LetAs (xs47 :: HList t47) ->
-    case letAs (HCons (MkT @"i46") xs47) of { LetAs (xs46 :: HList t46) ->
-    case letAs (HCons (MkT @"i45") xs46) of { LetAs (xs45 :: HList t45) ->
-    case letAs (HCons (MkT @"i44") xs45) of { LetAs (xs44 :: HList t44) ->
-    case letAs (HCons (MkT @"i43") xs44) of { LetAs (xs43 :: HList t43) ->
-    case letAs (HCons (MkT @"i42") xs43) of { LetAs (xs42 :: HList t42) ->
-    case letAs (HCons (MkT @"i41") xs42) of { LetAs (xs41 :: HList t41) ->
-    case letAs (HCons (MkT @"i40") xs41) of { LetAs (xs40 :: HList t40) ->
-    -- 39 .. 30
-    case letAs (HCons (MkT @"i39") xs40) of { LetAs (xs39 :: HList t39) ->
-    case letAs (HCons (MkT @"i38") xs39) of { LetAs (xs38 :: HList t38) ->
-    case letAs (HCons (MkT @"i37") xs38) of { LetAs (xs37 :: HList t37) ->
-    case letAs (HCons (MkT @"i36") xs37) of { LetAs (xs36 :: HList t36) ->
-    case letAs (HCons (MkT @"i35") xs36) of { LetAs (xs35 :: HList t35) ->
-    case letAs (HCons (MkT @"i34") xs35) of { LetAs (xs34 :: HList t34) ->
-    case letAs (HCons (MkT @"i33") xs34) of { LetAs (xs33 :: HList t33) ->
-    case letAs (HCons (MkT @"i32") xs33) of { LetAs (xs32 :: HList t32) ->
-    case letAs (HCons (MkT @"i31") xs32) of { LetAs (xs31 :: HList t31) ->
-    case letAs (HCons (MkT @"i30") xs31) of { LetAs (xs30 :: HList t30) ->
-    -- 29 .. 20
-    case letAs (HCons (MkT @"i29") xs30) of { LetAs (xs29 :: HList t29) ->
-    case letAs (HCons (MkT @"i28") xs29) of { LetAs (xs28 :: HList t28) ->
-    case letAs (HCons (MkT @"i27") xs28) of { LetAs (xs27 :: HList t27) ->
-    case letAs (HCons (MkT @"i26") xs27) of { LetAs (xs26 :: HList t26) ->
-    case letAs (HCons (MkT @"i25") xs26) of { LetAs (xs25 :: HList t25) ->
-    case letAs (HCons (MkT @"i24") xs25) of { LetAs (xs24 :: HList t24) ->
-    case letAs (HCons (MkT @"i23") xs24) of { LetAs (xs23 :: HList t23) ->
-    case letAs (HCons (MkT @"i22") xs23) of { LetAs (xs22 :: HList t22) ->
-    case letAs (HCons (MkT @"i21") xs22) of { LetAs (xs21 :: HList t21) ->
-    case letAs (HCons (MkT @"i20") xs21) of { LetAs (xs20 :: HList t20) ->
-    -- 19 .. 10
-    case letAs (HCons (MkT @"i19") xs20) of { LetAs (xs19 :: HList t19) ->
-    case letAs (HCons (MkT @"i18") xs19) of { LetAs (xs18 :: HList t18) ->
-    case letAs (HCons (MkT @"i17") xs18) of { LetAs (xs17 :: HList t17) ->
-    case letAs (HCons (MkT @"i16") xs17) of { LetAs (xs16 :: HList t16) ->
-    case letAs (HCons (MkT @"i15") xs16) of { LetAs (xs15 :: HList t15) ->
-    case letAs (HCons (MkT @"i14") xs15) of { LetAs (xs14 :: HList t14) ->
-    case letAs (HCons (MkT @"i13") xs14) of { LetAs (xs13 :: HList t13) ->
-    case letAs (HCons (MkT @"i12") xs13) of { LetAs (xs12 :: HList t12) ->
-    case letAs (HCons (MkT @"i11") xs12) of { LetAs (xs11 :: HList t11) ->
-    case letAs (HCons (MkT @"i10") xs11) of { LetAs (xs10 :: HList t10) ->
-    -- 09 .. 00
-    case letAs (HCons (MkT @"i09") xs10) of { LetAs (xs09 :: HList t09) ->
-    case letAs (HCons (MkT @"i08") xs09) of { LetAs (xs08 :: HList t08) ->
-    case letAs (HCons (MkT @"i07") xs08) of { LetAs (xs07 :: HList t07) ->
-    case letAs (HCons (MkT @"i06") xs07) of { LetAs (xs06 :: HList t06) ->
-    case letAs (HCons (MkT @"i05") xs06) of { LetAs (xs05 :: HList t05) ->
-    case letAs (HCons (MkT @"i04") xs05) of { LetAs (xs04 :: HList t04) ->
-    case letAs (HCons (MkT @"i03") xs04) of { LetAs (xs03 :: HList t03) ->
-    case letAs (HCons (MkT @"i02") xs03) of { LetAs (xs02 :: HList t02) ->
-    case letAs (HCons (MkT @"i01") xs02) of { LetAs (xs01 :: HList t01) ->
-    case letAs (HCons (MkT @"i00") xs01) of { LetAs (xs00 :: HList t00) ->
-      castEqual xs00
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
-    }}}}}}}}}}
diff --git a/test/Test/Size/HList/LetAsCPS/LetAsCPS010.hs b/test/Test/Size/HList/LetAsCPS/LetAsCPS010.hs
deleted file mode 100644
--- a/test/Test/Size/HList/LetAsCPS/LetAsCPS010.hs
+++ /dev/null
@@ -1,23 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.HList.LetAsCPS.LetAsCPS010 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.HList.Index.Ix010
-
-hlist :: HList Fields
-hlist = letT' (Proxy @Fields) $ \(_ :: Proxy r) -> castEqual $
-    -- 09 .. 00
-    letAs' @(HList r) (HCons (MkT @"i09") HNil) $ \(xs09 :: HList t09) ->
-    letAs' @(HList r) (HCons (MkT @"i08") xs09) $ \(xs08 :: HList t08) ->
-    letAs' @(HList r) (HCons (MkT @"i07") xs08) $ \(xs07 :: HList t07) ->
-    letAs' @(HList r) (HCons (MkT @"i06") xs07) $ \(xs06 :: HList t06) ->
-    letAs' @(HList r) (HCons (MkT @"i05") xs06) $ \(xs05 :: HList t05) ->
-    letAs' @(HList r) (HCons (MkT @"i04") xs05) $ \(xs04 :: HList t04) ->
-    letAs' @(HList r) (HCons (MkT @"i03") xs04) $ \(xs03 :: HList t03) ->
-    letAs' @(HList r) (HCons (MkT @"i02") xs03) $ \(xs02 :: HList t02) ->
-    letAs' @(HList r) (HCons (MkT @"i01") xs02) $ \(xs01 :: HList t01) ->
-    letAs' @(HList r) (HCons (MkT @"i00") xs01) $ \(xs00 :: HList t00) ->
-      castEqual xs00
diff --git a/test/Test/Size/HList/LetAsCPS/LetAsCPS020.hs b/test/Test/Size/HList/LetAsCPS/LetAsCPS020.hs
deleted file mode 100644
--- a/test/Test/Size/HList/LetAsCPS/LetAsCPS020.hs
+++ /dev/null
@@ -1,34 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.HList.LetAsCPS.LetAsCPS020 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.HList.Index.Ix020
-
-hlist :: HList Fields
-hlist = letT' (Proxy @Fields) $ \(_ :: Proxy r) -> castEqual $
-    -- 19 .. 10
-    letAs' @(HList r) (HCons (MkT @"i19") HNil) $ \(xs19 :: HList t19) ->
-    letAs' @(HList r) (HCons (MkT @"i18") xs19) $ \(xs18 :: HList t18) ->
-    letAs' @(HList r) (HCons (MkT @"i17") xs18) $ \(xs17 :: HList t17) ->
-    letAs' @(HList r) (HCons (MkT @"i16") xs17) $ \(xs16 :: HList t16) ->
-    letAs' @(HList r) (HCons (MkT @"i15") xs16) $ \(xs15 :: HList t15) ->
-    letAs' @(HList r) (HCons (MkT @"i14") xs15) $ \(xs14 :: HList t14) ->
-    letAs' @(HList r) (HCons (MkT @"i13") xs14) $ \(xs13 :: HList t13) ->
-    letAs' @(HList r) (HCons (MkT @"i12") xs13) $ \(xs12 :: HList t12) ->
-    letAs' @(HList r) (HCons (MkT @"i11") xs12) $ \(xs11 :: HList t11) ->
-    letAs' @(HList r) (HCons (MkT @"i10") xs11) $ \(xs10 :: HList t10) ->
-    -- 09 .. 00
-    letAs' @(HList r) (HCons (MkT @"i09") xs10) $ \(xs09 :: HList t09) ->
-    letAs' @(HList r) (HCons (MkT @"i08") xs09) $ \(xs08 :: HList t08) ->
-    letAs' @(HList r) (HCons (MkT @"i07") xs08) $ \(xs07 :: HList t07) ->
-    letAs' @(HList r) (HCons (MkT @"i06") xs07) $ \(xs06 :: HList t06) ->
-    letAs' @(HList r) (HCons (MkT @"i05") xs06) $ \(xs05 :: HList t05) ->
-    letAs' @(HList r) (HCons (MkT @"i04") xs05) $ \(xs04 :: HList t04) ->
-    letAs' @(HList r) (HCons (MkT @"i03") xs04) $ \(xs03 :: HList t03) ->
-    letAs' @(HList r) (HCons (MkT @"i02") xs03) $ \(xs02 :: HList t02) ->
-    letAs' @(HList r) (HCons (MkT @"i01") xs02) $ \(xs01 :: HList t01) ->
-    letAs' @(HList r) (HCons (MkT @"i00") xs01) $ \(xs00 :: HList t00) ->
-      castEqual xs00
diff --git a/test/Test/Size/HList/LetAsCPS/LetAsCPS030.hs b/test/Test/Size/HList/LetAsCPS/LetAsCPS030.hs
deleted file mode 100644
--- a/test/Test/Size/HList/LetAsCPS/LetAsCPS030.hs
+++ /dev/null
@@ -1,45 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.HList.LetAsCPS.LetAsCPS030 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.HList.Index.Ix030
-
-hlist :: HList Fields
-hlist = letT' (Proxy @Fields) $ \(_ :: Proxy r) -> castEqual $
-    -- 29 .. 20
-    letAs' @(HList r) (HCons (MkT @"i29") HNil) $ \(xs29 :: HList t29) ->
-    letAs' @(HList r) (HCons (MkT @"i28") xs29) $ \(xs28 :: HList t28) ->
-    letAs' @(HList r) (HCons (MkT @"i27") xs28) $ \(xs27 :: HList t27) ->
-    letAs' @(HList r) (HCons (MkT @"i26") xs27) $ \(xs26 :: HList t26) ->
-    letAs' @(HList r) (HCons (MkT @"i25") xs26) $ \(xs25 :: HList t25) ->
-    letAs' @(HList r) (HCons (MkT @"i24") xs25) $ \(xs24 :: HList t24) ->
-    letAs' @(HList r) (HCons (MkT @"i23") xs24) $ \(xs23 :: HList t23) ->
-    letAs' @(HList r) (HCons (MkT @"i22") xs23) $ \(xs22 :: HList t22) ->
-    letAs' @(HList r) (HCons (MkT @"i21") xs22) $ \(xs21 :: HList t21) ->
-    letAs' @(HList r) (HCons (MkT @"i20") xs21) $ \(xs20 :: HList t20) ->
-    -- 19 .. 10
-    letAs' @(HList r) (HCons (MkT @"i19") xs20) $ \(xs19 :: HList t19) ->
-    letAs' @(HList r) (HCons (MkT @"i18") xs19) $ \(xs18 :: HList t18) ->
-    letAs' @(HList r) (HCons (MkT @"i17") xs18) $ \(xs17 :: HList t17) ->
-    letAs' @(HList r) (HCons (MkT @"i16") xs17) $ \(xs16 :: HList t16) ->
-    letAs' @(HList r) (HCons (MkT @"i15") xs16) $ \(xs15 :: HList t15) ->
-    letAs' @(HList r) (HCons (MkT @"i14") xs15) $ \(xs14 :: HList t14) ->
-    letAs' @(HList r) (HCons (MkT @"i13") xs14) $ \(xs13 :: HList t13) ->
-    letAs' @(HList r) (HCons (MkT @"i12") xs13) $ \(xs12 :: HList t12) ->
-    letAs' @(HList r) (HCons (MkT @"i11") xs12) $ \(xs11 :: HList t11) ->
-    letAs' @(HList r) (HCons (MkT @"i10") xs11) $ \(xs10 :: HList t10) ->
-    -- 09 .. 00
-    letAs' @(HList r) (HCons (MkT @"i09") xs10) $ \(xs09 :: HList t09) ->
-    letAs' @(HList r) (HCons (MkT @"i08") xs09) $ \(xs08 :: HList t08) ->
-    letAs' @(HList r) (HCons (MkT @"i07") xs08) $ \(xs07 :: HList t07) ->
-    letAs' @(HList r) (HCons (MkT @"i06") xs07) $ \(xs06 :: HList t06) ->
-    letAs' @(HList r) (HCons (MkT @"i05") xs06) $ \(xs05 :: HList t05) ->
-    letAs' @(HList r) (HCons (MkT @"i04") xs05) $ \(xs04 :: HList t04) ->
-    letAs' @(HList r) (HCons (MkT @"i03") xs04) $ \(xs03 :: HList t03) ->
-    letAs' @(HList r) (HCons (MkT @"i02") xs03) $ \(xs02 :: HList t02) ->
-    letAs' @(HList r) (HCons (MkT @"i01") xs02) $ \(xs01 :: HList t01) ->
-    letAs' @(HList r) (HCons (MkT @"i00") xs01) $ \(xs00 :: HList t00) ->
-      castEqual xs00
diff --git a/test/Test/Size/HList/LetAsCPS/LetAsCPS040.hs b/test/Test/Size/HList/LetAsCPS/LetAsCPS040.hs
deleted file mode 100644
--- a/test/Test/Size/HList/LetAsCPS/LetAsCPS040.hs
+++ /dev/null
@@ -1,56 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.HList.LetAsCPS.LetAsCPS040 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.HList.Index.Ix040
-
-hlist :: HList Fields
-hlist = letT' (Proxy @Fields) $ \(_ :: Proxy r) -> castEqual $
-    -- 39 .. 30
-    letAs' @(HList r) (HCons (MkT @"i39") HNil) $ \(xs39 :: HList t39) ->
-    letAs' @(HList r) (HCons (MkT @"i38") xs39) $ \(xs38 :: HList t38) ->
-    letAs' @(HList r) (HCons (MkT @"i37") xs38) $ \(xs37 :: HList t37) ->
-    letAs' @(HList r) (HCons (MkT @"i36") xs37) $ \(xs36 :: HList t36) ->
-    letAs' @(HList r) (HCons (MkT @"i35") xs36) $ \(xs35 :: HList t35) ->
-    letAs' @(HList r) (HCons (MkT @"i34") xs35) $ \(xs34 :: HList t34) ->
-    letAs' @(HList r) (HCons (MkT @"i33") xs34) $ \(xs33 :: HList t33) ->
-    letAs' @(HList r) (HCons (MkT @"i32") xs33) $ \(xs32 :: HList t32) ->
-    letAs' @(HList r) (HCons (MkT @"i31") xs32) $ \(xs31 :: HList t31) ->
-    letAs' @(HList r) (HCons (MkT @"i30") xs31) $ \(xs30 :: HList t30) ->
-    -- 29 .. 20
-    letAs' @(HList r) (HCons (MkT @"i29") xs30) $ \(xs29 :: HList t29) ->
-    letAs' @(HList r) (HCons (MkT @"i28") xs29) $ \(xs28 :: HList t28) ->
-    letAs' @(HList r) (HCons (MkT @"i27") xs28) $ \(xs27 :: HList t27) ->
-    letAs' @(HList r) (HCons (MkT @"i26") xs27) $ \(xs26 :: HList t26) ->
-    letAs' @(HList r) (HCons (MkT @"i25") xs26) $ \(xs25 :: HList t25) ->
-    letAs' @(HList r) (HCons (MkT @"i24") xs25) $ \(xs24 :: HList t24) ->
-    letAs' @(HList r) (HCons (MkT @"i23") xs24) $ \(xs23 :: HList t23) ->
-    letAs' @(HList r) (HCons (MkT @"i22") xs23) $ \(xs22 :: HList t22) ->
-    letAs' @(HList r) (HCons (MkT @"i21") xs22) $ \(xs21 :: HList t21) ->
-    letAs' @(HList r) (HCons (MkT @"i20") xs21) $ \(xs20 :: HList t20) ->
-    -- 19 .. 10
-    letAs' @(HList r) (HCons (MkT @"i19") xs20) $ \(xs19 :: HList t19) ->
-    letAs' @(HList r) (HCons (MkT @"i18") xs19) $ \(xs18 :: HList t18) ->
-    letAs' @(HList r) (HCons (MkT @"i17") xs18) $ \(xs17 :: HList t17) ->
-    letAs' @(HList r) (HCons (MkT @"i16") xs17) $ \(xs16 :: HList t16) ->
-    letAs' @(HList r) (HCons (MkT @"i15") xs16) $ \(xs15 :: HList t15) ->
-    letAs' @(HList r) (HCons (MkT @"i14") xs15) $ \(xs14 :: HList t14) ->
-    letAs' @(HList r) (HCons (MkT @"i13") xs14) $ \(xs13 :: HList t13) ->
-    letAs' @(HList r) (HCons (MkT @"i12") xs13) $ \(xs12 :: HList t12) ->
-    letAs' @(HList r) (HCons (MkT @"i11") xs12) $ \(xs11 :: HList t11) ->
-    letAs' @(HList r) (HCons (MkT @"i10") xs11) $ \(xs10 :: HList t10) ->
-    -- 09 .. 00
-    letAs' @(HList r) (HCons (MkT @"i09") xs10) $ \(xs09 :: HList t09) ->
-    letAs' @(HList r) (HCons (MkT @"i08") xs09) $ \(xs08 :: HList t08) ->
-    letAs' @(HList r) (HCons (MkT @"i07") xs08) $ \(xs07 :: HList t07) ->
-    letAs' @(HList r) (HCons (MkT @"i06") xs07) $ \(xs06 :: HList t06) ->
-    letAs' @(HList r) (HCons (MkT @"i05") xs06) $ \(xs05 :: HList t05) ->
-    letAs' @(HList r) (HCons (MkT @"i04") xs05) $ \(xs04 :: HList t04) ->
-    letAs' @(HList r) (HCons (MkT @"i03") xs04) $ \(xs03 :: HList t03) ->
-    letAs' @(HList r) (HCons (MkT @"i02") xs03) $ \(xs02 :: HList t02) ->
-    letAs' @(HList r) (HCons (MkT @"i01") xs02) $ \(xs01 :: HList t01) ->
-    letAs' @(HList r) (HCons (MkT @"i00") xs01) $ \(xs00 :: HList t00) ->
-      castEqual xs00
diff --git a/test/Test/Size/HList/LetAsCPS/LetAsCPS050.hs b/test/Test/Size/HList/LetAsCPS/LetAsCPS050.hs
deleted file mode 100644
--- a/test/Test/Size/HList/LetAsCPS/LetAsCPS050.hs
+++ /dev/null
@@ -1,67 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.HList.LetAsCPS.LetAsCPS050 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.HList.Index.Ix050
-
-hlist :: HList Fields
-hlist = letT' (Proxy @Fields) $ \(_ :: Proxy r) -> castEqual $
-    -- 49 .. 40
-    letAs' @(HList r) (HCons (MkT @"i49") HNil) $ \(xs49 :: HList t49) ->
-    letAs' @(HList r) (HCons (MkT @"i48") xs49) $ \(xs48 :: HList t48) ->
-    letAs' @(HList r) (HCons (MkT @"i47") xs48) $ \(xs47 :: HList t47) ->
-    letAs' @(HList r) (HCons (MkT @"i46") xs47) $ \(xs46 :: HList t46) ->
-    letAs' @(HList r) (HCons (MkT @"i45") xs46) $ \(xs45 :: HList t45) ->
-    letAs' @(HList r) (HCons (MkT @"i44") xs45) $ \(xs44 :: HList t44) ->
-    letAs' @(HList r) (HCons (MkT @"i43") xs44) $ \(xs43 :: HList t43) ->
-    letAs' @(HList r) (HCons (MkT @"i42") xs43) $ \(xs42 :: HList t42) ->
-    letAs' @(HList r) (HCons (MkT @"i41") xs42) $ \(xs41 :: HList t41) ->
-    letAs' @(HList r) (HCons (MkT @"i40") xs41) $ \(xs40 :: HList t40) ->
-    -- 39 .. 30
-    letAs' @(HList r) (HCons (MkT @"i39") xs40) $ \(xs39 :: HList t39) ->
-    letAs' @(HList r) (HCons (MkT @"i38") xs39) $ \(xs38 :: HList t38) ->
-    letAs' @(HList r) (HCons (MkT @"i37") xs38) $ \(xs37 :: HList t37) ->
-    letAs' @(HList r) (HCons (MkT @"i36") xs37) $ \(xs36 :: HList t36) ->
-    letAs' @(HList r) (HCons (MkT @"i35") xs36) $ \(xs35 :: HList t35) ->
-    letAs' @(HList r) (HCons (MkT @"i34") xs35) $ \(xs34 :: HList t34) ->
-    letAs' @(HList r) (HCons (MkT @"i33") xs34) $ \(xs33 :: HList t33) ->
-    letAs' @(HList r) (HCons (MkT @"i32") xs33) $ \(xs32 :: HList t32) ->
-    letAs' @(HList r) (HCons (MkT @"i31") xs32) $ \(xs31 :: HList t31) ->
-    letAs' @(HList r) (HCons (MkT @"i30") xs31) $ \(xs30 :: HList t30) ->
-    -- 29 .. 20
-    letAs' @(HList r) (HCons (MkT @"i29") xs30) $ \(xs29 :: HList t29) ->
-    letAs' @(HList r) (HCons (MkT @"i28") xs29) $ \(xs28 :: HList t28) ->
-    letAs' @(HList r) (HCons (MkT @"i27") xs28) $ \(xs27 :: HList t27) ->
-    letAs' @(HList r) (HCons (MkT @"i26") xs27) $ \(xs26 :: HList t26) ->
-    letAs' @(HList r) (HCons (MkT @"i25") xs26) $ \(xs25 :: HList t25) ->
-    letAs' @(HList r) (HCons (MkT @"i24") xs25) $ \(xs24 :: HList t24) ->
-    letAs' @(HList r) (HCons (MkT @"i23") xs24) $ \(xs23 :: HList t23) ->
-    letAs' @(HList r) (HCons (MkT @"i22") xs23) $ \(xs22 :: HList t22) ->
-    letAs' @(HList r) (HCons (MkT @"i21") xs22) $ \(xs21 :: HList t21) ->
-    letAs' @(HList r) (HCons (MkT @"i20") xs21) $ \(xs20 :: HList t20) ->
-    -- 19 .. 10
-    letAs' @(HList r) (HCons (MkT @"i19") xs20) $ \(xs19 :: HList t19) ->
-    letAs' @(HList r) (HCons (MkT @"i18") xs19) $ \(xs18 :: HList t18) ->
-    letAs' @(HList r) (HCons (MkT @"i17") xs18) $ \(xs17 :: HList t17) ->
-    letAs' @(HList r) (HCons (MkT @"i16") xs17) $ \(xs16 :: HList t16) ->
-    letAs' @(HList r) (HCons (MkT @"i15") xs16) $ \(xs15 :: HList t15) ->
-    letAs' @(HList r) (HCons (MkT @"i14") xs15) $ \(xs14 :: HList t14) ->
-    letAs' @(HList r) (HCons (MkT @"i13") xs14) $ \(xs13 :: HList t13) ->
-    letAs' @(HList r) (HCons (MkT @"i12") xs13) $ \(xs12 :: HList t12) ->
-    letAs' @(HList r) (HCons (MkT @"i11") xs12) $ \(xs11 :: HList t11) ->
-    letAs' @(HList r) (HCons (MkT @"i10") xs11) $ \(xs10 :: HList t10) ->
-    -- 09 .. 00
-    letAs' @(HList r) (HCons (MkT @"i09") xs10) $ \(xs09 :: HList t09) ->
-    letAs' @(HList r) (HCons (MkT @"i08") xs09) $ \(xs08 :: HList t08) ->
-    letAs' @(HList r) (HCons (MkT @"i07") xs08) $ \(xs07 :: HList t07) ->
-    letAs' @(HList r) (HCons (MkT @"i06") xs07) $ \(xs06 :: HList t06) ->
-    letAs' @(HList r) (HCons (MkT @"i05") xs06) $ \(xs05 :: HList t05) ->
-    letAs' @(HList r) (HCons (MkT @"i04") xs05) $ \(xs04 :: HList t04) ->
-    letAs' @(HList r) (HCons (MkT @"i03") xs04) $ \(xs03 :: HList t03) ->
-    letAs' @(HList r) (HCons (MkT @"i02") xs03) $ \(xs02 :: HList t02) ->
-    letAs' @(HList r) (HCons (MkT @"i01") xs02) $ \(xs01 :: HList t01) ->
-    letAs' @(HList r) (HCons (MkT @"i00") xs01) $ \(xs00 :: HList t00) ->
-      castEqual xs00
diff --git a/test/Test/Size/HList/LetAsCPS/LetAsCPS060.hs b/test/Test/Size/HList/LetAsCPS/LetAsCPS060.hs
deleted file mode 100644
--- a/test/Test/Size/HList/LetAsCPS/LetAsCPS060.hs
+++ /dev/null
@@ -1,78 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.HList.LetAsCPS.LetAsCPS060 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.HList.Index.Ix060
-
-hlist :: HList Fields
-hlist = letT' (Proxy @Fields) $ \(_ :: Proxy r) -> castEqual $
-    -- 59 .. 50
-    letAs' @(HList r) (HCons (MkT @"i59") HNil) $ \(xs59 :: HList t59) ->
-    letAs' @(HList r) (HCons (MkT @"i58") xs59) $ \(xs58 :: HList t58) ->
-    letAs' @(HList r) (HCons (MkT @"i57") xs58) $ \(xs57 :: HList t57) ->
-    letAs' @(HList r) (HCons (MkT @"i56") xs57) $ \(xs56 :: HList t56) ->
-    letAs' @(HList r) (HCons (MkT @"i55") xs56) $ \(xs55 :: HList t55) ->
-    letAs' @(HList r) (HCons (MkT @"i54") xs55) $ \(xs54 :: HList t54) ->
-    letAs' @(HList r) (HCons (MkT @"i53") xs54) $ \(xs53 :: HList t53) ->
-    letAs' @(HList r) (HCons (MkT @"i52") xs53) $ \(xs52 :: HList t52) ->
-    letAs' @(HList r) (HCons (MkT @"i51") xs52) $ \(xs51 :: HList t51) ->
-    letAs' @(HList r) (HCons (MkT @"i50") xs51) $ \(xs50 :: HList t50) ->
-    -- 49 .. 40
-    letAs' @(HList r) (HCons (MkT @"i49") xs50) $ \(xs49 :: HList t49) ->
-    letAs' @(HList r) (HCons (MkT @"i48") xs49) $ \(xs48 :: HList t48) ->
-    letAs' @(HList r) (HCons (MkT @"i47") xs48) $ \(xs47 :: HList t47) ->
-    letAs' @(HList r) (HCons (MkT @"i46") xs47) $ \(xs46 :: HList t46) ->
-    letAs' @(HList r) (HCons (MkT @"i45") xs46) $ \(xs45 :: HList t45) ->
-    letAs' @(HList r) (HCons (MkT @"i44") xs45) $ \(xs44 :: HList t44) ->
-    letAs' @(HList r) (HCons (MkT @"i43") xs44) $ \(xs43 :: HList t43) ->
-    letAs' @(HList r) (HCons (MkT @"i42") xs43) $ \(xs42 :: HList t42) ->
-    letAs' @(HList r) (HCons (MkT @"i41") xs42) $ \(xs41 :: HList t41) ->
-    letAs' @(HList r) (HCons (MkT @"i40") xs41) $ \(xs40 :: HList t40) ->
-    -- 39 .. 30
-    letAs' @(HList r) (HCons (MkT @"i39") xs40) $ \(xs39 :: HList t39) ->
-    letAs' @(HList r) (HCons (MkT @"i38") xs39) $ \(xs38 :: HList t38) ->
-    letAs' @(HList r) (HCons (MkT @"i37") xs38) $ \(xs37 :: HList t37) ->
-    letAs' @(HList r) (HCons (MkT @"i36") xs37) $ \(xs36 :: HList t36) ->
-    letAs' @(HList r) (HCons (MkT @"i35") xs36) $ \(xs35 :: HList t35) ->
-    letAs' @(HList r) (HCons (MkT @"i34") xs35) $ \(xs34 :: HList t34) ->
-    letAs' @(HList r) (HCons (MkT @"i33") xs34) $ \(xs33 :: HList t33) ->
-    letAs' @(HList r) (HCons (MkT @"i32") xs33) $ \(xs32 :: HList t32) ->
-    letAs' @(HList r) (HCons (MkT @"i31") xs32) $ \(xs31 :: HList t31) ->
-    letAs' @(HList r) (HCons (MkT @"i30") xs31) $ \(xs30 :: HList t30) ->
-    -- 29 .. 20
-    letAs' @(HList r) (HCons (MkT @"i29") xs30) $ \(xs29 :: HList t29) ->
-    letAs' @(HList r) (HCons (MkT @"i28") xs29) $ \(xs28 :: HList t28) ->
-    letAs' @(HList r) (HCons (MkT @"i27") xs28) $ \(xs27 :: HList t27) ->
-    letAs' @(HList r) (HCons (MkT @"i26") xs27) $ \(xs26 :: HList t26) ->
-    letAs' @(HList r) (HCons (MkT @"i25") xs26) $ \(xs25 :: HList t25) ->
-    letAs' @(HList r) (HCons (MkT @"i24") xs25) $ \(xs24 :: HList t24) ->
-    letAs' @(HList r) (HCons (MkT @"i23") xs24) $ \(xs23 :: HList t23) ->
-    letAs' @(HList r) (HCons (MkT @"i22") xs23) $ \(xs22 :: HList t22) ->
-    letAs' @(HList r) (HCons (MkT @"i21") xs22) $ \(xs21 :: HList t21) ->
-    letAs' @(HList r) (HCons (MkT @"i20") xs21) $ \(xs20 :: HList t20) ->
-    -- 19 .. 10
-    letAs' @(HList r) (HCons (MkT @"i19") xs20) $ \(xs19 :: HList t19) ->
-    letAs' @(HList r) (HCons (MkT @"i18") xs19) $ \(xs18 :: HList t18) ->
-    letAs' @(HList r) (HCons (MkT @"i17") xs18) $ \(xs17 :: HList t17) ->
-    letAs' @(HList r) (HCons (MkT @"i16") xs17) $ \(xs16 :: HList t16) ->
-    letAs' @(HList r) (HCons (MkT @"i15") xs16) $ \(xs15 :: HList t15) ->
-    letAs' @(HList r) (HCons (MkT @"i14") xs15) $ \(xs14 :: HList t14) ->
-    letAs' @(HList r) (HCons (MkT @"i13") xs14) $ \(xs13 :: HList t13) ->
-    letAs' @(HList r) (HCons (MkT @"i12") xs13) $ \(xs12 :: HList t12) ->
-    letAs' @(HList r) (HCons (MkT @"i11") xs12) $ \(xs11 :: HList t11) ->
-    letAs' @(HList r) (HCons (MkT @"i10") xs11) $ \(xs10 :: HList t10) ->
-    -- 09 .. 00
-    letAs' @(HList r) (HCons (MkT @"i09") xs10) $ \(xs09 :: HList t09) ->
-    letAs' @(HList r) (HCons (MkT @"i08") xs09) $ \(xs08 :: HList t08) ->
-    letAs' @(HList r) (HCons (MkT @"i07") xs08) $ \(xs07 :: HList t07) ->
-    letAs' @(HList r) (HCons (MkT @"i06") xs07) $ \(xs06 :: HList t06) ->
-    letAs' @(HList r) (HCons (MkT @"i05") xs06) $ \(xs05 :: HList t05) ->
-    letAs' @(HList r) (HCons (MkT @"i04") xs05) $ \(xs04 :: HList t04) ->
-    letAs' @(HList r) (HCons (MkT @"i03") xs04) $ \(xs03 :: HList t03) ->
-    letAs' @(HList r) (HCons (MkT @"i02") xs03) $ \(xs02 :: HList t02) ->
-    letAs' @(HList r) (HCons (MkT @"i01") xs02) $ \(xs01 :: HList t01) ->
-    letAs' @(HList r) (HCons (MkT @"i00") xs01) $ \(xs00 :: HList t00) ->
-      castEqual xs00
diff --git a/test/Test/Size/HList/LetAsCPS/LetAsCPS070.hs b/test/Test/Size/HList/LetAsCPS/LetAsCPS070.hs
deleted file mode 100644
--- a/test/Test/Size/HList/LetAsCPS/LetAsCPS070.hs
+++ /dev/null
@@ -1,89 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.HList.LetAsCPS.LetAsCPS070 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.HList.Index.Ix070
-
-hlist :: HList Fields
-hlist = letT' (Proxy @Fields) $ \(_ :: Proxy r) -> castEqual $
-    -- 69 .. 60
-    letAs' @(HList r) (HCons (MkT @"i69") HNil) $ \(xs69 :: HList t69) ->
-    letAs' @(HList r) (HCons (MkT @"i68") xs69) $ \(xs68 :: HList t68) ->
-    letAs' @(HList r) (HCons (MkT @"i67") xs68) $ \(xs67 :: HList t67) ->
-    letAs' @(HList r) (HCons (MkT @"i66") xs67) $ \(xs66 :: HList t66) ->
-    letAs' @(HList r) (HCons (MkT @"i65") xs66) $ \(xs65 :: HList t65) ->
-    letAs' @(HList r) (HCons (MkT @"i64") xs65) $ \(xs64 :: HList t64) ->
-    letAs' @(HList r) (HCons (MkT @"i63") xs64) $ \(xs63 :: HList t63) ->
-    letAs' @(HList r) (HCons (MkT @"i62") xs63) $ \(xs62 :: HList t62) ->
-    letAs' @(HList r) (HCons (MkT @"i61") xs62) $ \(xs61 :: HList t61) ->
-    letAs' @(HList r) (HCons (MkT @"i60") xs61) $ \(xs60 :: HList t60) ->
-    -- 59 .. 50
-    letAs' @(HList r) (HCons (MkT @"i59") xs60) $ \(xs59 :: HList t59) ->
-    letAs' @(HList r) (HCons (MkT @"i58") xs59) $ \(xs58 :: HList t58) ->
-    letAs' @(HList r) (HCons (MkT @"i57") xs58) $ \(xs57 :: HList t57) ->
-    letAs' @(HList r) (HCons (MkT @"i56") xs57) $ \(xs56 :: HList t56) ->
-    letAs' @(HList r) (HCons (MkT @"i55") xs56) $ \(xs55 :: HList t55) ->
-    letAs' @(HList r) (HCons (MkT @"i54") xs55) $ \(xs54 :: HList t54) ->
-    letAs' @(HList r) (HCons (MkT @"i53") xs54) $ \(xs53 :: HList t53) ->
-    letAs' @(HList r) (HCons (MkT @"i52") xs53) $ \(xs52 :: HList t52) ->
-    letAs' @(HList r) (HCons (MkT @"i51") xs52) $ \(xs51 :: HList t51) ->
-    letAs' @(HList r) (HCons (MkT @"i50") xs51) $ \(xs50 :: HList t50) ->
-    -- 49 .. 40
-    letAs' @(HList r) (HCons (MkT @"i49") xs50) $ \(xs49 :: HList t49) ->
-    letAs' @(HList r) (HCons (MkT @"i48") xs49) $ \(xs48 :: HList t48) ->
-    letAs' @(HList r) (HCons (MkT @"i47") xs48) $ \(xs47 :: HList t47) ->
-    letAs' @(HList r) (HCons (MkT @"i46") xs47) $ \(xs46 :: HList t46) ->
-    letAs' @(HList r) (HCons (MkT @"i45") xs46) $ \(xs45 :: HList t45) ->
-    letAs' @(HList r) (HCons (MkT @"i44") xs45) $ \(xs44 :: HList t44) ->
-    letAs' @(HList r) (HCons (MkT @"i43") xs44) $ \(xs43 :: HList t43) ->
-    letAs' @(HList r) (HCons (MkT @"i42") xs43) $ \(xs42 :: HList t42) ->
-    letAs' @(HList r) (HCons (MkT @"i41") xs42) $ \(xs41 :: HList t41) ->
-    letAs' @(HList r) (HCons (MkT @"i40") xs41) $ \(xs40 :: HList t40) ->
-    -- 39 .. 30
-    letAs' @(HList r) (HCons (MkT @"i39") xs40) $ \(xs39 :: HList t39) ->
-    letAs' @(HList r) (HCons (MkT @"i38") xs39) $ \(xs38 :: HList t38) ->
-    letAs' @(HList r) (HCons (MkT @"i37") xs38) $ \(xs37 :: HList t37) ->
-    letAs' @(HList r) (HCons (MkT @"i36") xs37) $ \(xs36 :: HList t36) ->
-    letAs' @(HList r) (HCons (MkT @"i35") xs36) $ \(xs35 :: HList t35) ->
-    letAs' @(HList r) (HCons (MkT @"i34") xs35) $ \(xs34 :: HList t34) ->
-    letAs' @(HList r) (HCons (MkT @"i33") xs34) $ \(xs33 :: HList t33) ->
-    letAs' @(HList r) (HCons (MkT @"i32") xs33) $ \(xs32 :: HList t32) ->
-    letAs' @(HList r) (HCons (MkT @"i31") xs32) $ \(xs31 :: HList t31) ->
-    letAs' @(HList r) (HCons (MkT @"i30") xs31) $ \(xs30 :: HList t30) ->
-    -- 29 .. 20
-    letAs' @(HList r) (HCons (MkT @"i29") xs30) $ \(xs29 :: HList t29) ->
-    letAs' @(HList r) (HCons (MkT @"i28") xs29) $ \(xs28 :: HList t28) ->
-    letAs' @(HList r) (HCons (MkT @"i27") xs28) $ \(xs27 :: HList t27) ->
-    letAs' @(HList r) (HCons (MkT @"i26") xs27) $ \(xs26 :: HList t26) ->
-    letAs' @(HList r) (HCons (MkT @"i25") xs26) $ \(xs25 :: HList t25) ->
-    letAs' @(HList r) (HCons (MkT @"i24") xs25) $ \(xs24 :: HList t24) ->
-    letAs' @(HList r) (HCons (MkT @"i23") xs24) $ \(xs23 :: HList t23) ->
-    letAs' @(HList r) (HCons (MkT @"i22") xs23) $ \(xs22 :: HList t22) ->
-    letAs' @(HList r) (HCons (MkT @"i21") xs22) $ \(xs21 :: HList t21) ->
-    letAs' @(HList r) (HCons (MkT @"i20") xs21) $ \(xs20 :: HList t20) ->
-    -- 19 .. 10
-    letAs' @(HList r) (HCons (MkT @"i19") xs20) $ \(xs19 :: HList t19) ->
-    letAs' @(HList r) (HCons (MkT @"i18") xs19) $ \(xs18 :: HList t18) ->
-    letAs' @(HList r) (HCons (MkT @"i17") xs18) $ \(xs17 :: HList t17) ->
-    letAs' @(HList r) (HCons (MkT @"i16") xs17) $ \(xs16 :: HList t16) ->
-    letAs' @(HList r) (HCons (MkT @"i15") xs16) $ \(xs15 :: HList t15) ->
-    letAs' @(HList r) (HCons (MkT @"i14") xs15) $ \(xs14 :: HList t14) ->
-    letAs' @(HList r) (HCons (MkT @"i13") xs14) $ \(xs13 :: HList t13) ->
-    letAs' @(HList r) (HCons (MkT @"i12") xs13) $ \(xs12 :: HList t12) ->
-    letAs' @(HList r) (HCons (MkT @"i11") xs12) $ \(xs11 :: HList t11) ->
-    letAs' @(HList r) (HCons (MkT @"i10") xs11) $ \(xs10 :: HList t10) ->
-    -- 09 .. 00
-    letAs' @(HList r) (HCons (MkT @"i09") xs10) $ \(xs09 :: HList t09) ->
-    letAs' @(HList r) (HCons (MkT @"i08") xs09) $ \(xs08 :: HList t08) ->
-    letAs' @(HList r) (HCons (MkT @"i07") xs08) $ \(xs07 :: HList t07) ->
-    letAs' @(HList r) (HCons (MkT @"i06") xs07) $ \(xs06 :: HList t06) ->
-    letAs' @(HList r) (HCons (MkT @"i05") xs06) $ \(xs05 :: HList t05) ->
-    letAs' @(HList r) (HCons (MkT @"i04") xs05) $ \(xs04 :: HList t04) ->
-    letAs' @(HList r) (HCons (MkT @"i03") xs04) $ \(xs03 :: HList t03) ->
-    letAs' @(HList r) (HCons (MkT @"i02") xs03) $ \(xs02 :: HList t02) ->
-    letAs' @(HList r) (HCons (MkT @"i01") xs02) $ \(xs01 :: HList t01) ->
-    letAs' @(HList r) (HCons (MkT @"i00") xs01) $ \(xs00 :: HList t00) ->
-      castEqual xs00
diff --git a/test/Test/Size/HList/LetAsCPS/LetAsCPS080.hs b/test/Test/Size/HList/LetAsCPS/LetAsCPS080.hs
deleted file mode 100644
--- a/test/Test/Size/HList/LetAsCPS/LetAsCPS080.hs
+++ /dev/null
@@ -1,100 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.HList.LetAsCPS.LetAsCPS080 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.HList.Index.Ix080
-
-hlist :: HList Fields
-hlist = letT' (Proxy @Fields) $ \(_ :: Proxy r) -> castEqual $
-    -- 79 .. 70
-    letAs' @(HList r) (HCons (MkT @"i79") HNil) $ \(xs79 :: HList t79) ->
-    letAs' @(HList r) (HCons (MkT @"i78") xs79) $ \(xs78 :: HList t78) ->
-    letAs' @(HList r) (HCons (MkT @"i77") xs78) $ \(xs77 :: HList t77) ->
-    letAs' @(HList r) (HCons (MkT @"i76") xs77) $ \(xs76 :: HList t76) ->
-    letAs' @(HList r) (HCons (MkT @"i75") xs76) $ \(xs75 :: HList t75) ->
-    letAs' @(HList r) (HCons (MkT @"i74") xs75) $ \(xs74 :: HList t74) ->
-    letAs' @(HList r) (HCons (MkT @"i73") xs74) $ \(xs73 :: HList t73) ->
-    letAs' @(HList r) (HCons (MkT @"i72") xs73) $ \(xs72 :: HList t72) ->
-    letAs' @(HList r) (HCons (MkT @"i71") xs72) $ \(xs71 :: HList t71) ->
-    letAs' @(HList r) (HCons (MkT @"i70") xs71) $ \(xs70 :: HList t70) ->
-    -- 69 .. 60
-    letAs' @(HList r) (HCons (MkT @"i69") xs70) $ \(xs69 :: HList t69) ->
-    letAs' @(HList r) (HCons (MkT @"i68") xs69) $ \(xs68 :: HList t68) ->
-    letAs' @(HList r) (HCons (MkT @"i67") xs68) $ \(xs67 :: HList t67) ->
-    letAs' @(HList r) (HCons (MkT @"i66") xs67) $ \(xs66 :: HList t66) ->
-    letAs' @(HList r) (HCons (MkT @"i65") xs66) $ \(xs65 :: HList t65) ->
-    letAs' @(HList r) (HCons (MkT @"i64") xs65) $ \(xs64 :: HList t64) ->
-    letAs' @(HList r) (HCons (MkT @"i63") xs64) $ \(xs63 :: HList t63) ->
-    letAs' @(HList r) (HCons (MkT @"i62") xs63) $ \(xs62 :: HList t62) ->
-    letAs' @(HList r) (HCons (MkT @"i61") xs62) $ \(xs61 :: HList t61) ->
-    letAs' @(HList r) (HCons (MkT @"i60") xs61) $ \(xs60 :: HList t60) ->
-    -- 59 .. 50
-    letAs' @(HList r) (HCons (MkT @"i59") xs60) $ \(xs59 :: HList t59) ->
-    letAs' @(HList r) (HCons (MkT @"i58") xs59) $ \(xs58 :: HList t58) ->
-    letAs' @(HList r) (HCons (MkT @"i57") xs58) $ \(xs57 :: HList t57) ->
-    letAs' @(HList r) (HCons (MkT @"i56") xs57) $ \(xs56 :: HList t56) ->
-    letAs' @(HList r) (HCons (MkT @"i55") xs56) $ \(xs55 :: HList t55) ->
-    letAs' @(HList r) (HCons (MkT @"i54") xs55) $ \(xs54 :: HList t54) ->
-    letAs' @(HList r) (HCons (MkT @"i53") xs54) $ \(xs53 :: HList t53) ->
-    letAs' @(HList r) (HCons (MkT @"i52") xs53) $ \(xs52 :: HList t52) ->
-    letAs' @(HList r) (HCons (MkT @"i51") xs52) $ \(xs51 :: HList t51) ->
-    letAs' @(HList r) (HCons (MkT @"i50") xs51) $ \(xs50 :: HList t50) ->
-    -- 49 .. 40
-    letAs' @(HList r) (HCons (MkT @"i49") xs50) $ \(xs49 :: HList t49) ->
-    letAs' @(HList r) (HCons (MkT @"i48") xs49) $ \(xs48 :: HList t48) ->
-    letAs' @(HList r) (HCons (MkT @"i47") xs48) $ \(xs47 :: HList t47) ->
-    letAs' @(HList r) (HCons (MkT @"i46") xs47) $ \(xs46 :: HList t46) ->
-    letAs' @(HList r) (HCons (MkT @"i45") xs46) $ \(xs45 :: HList t45) ->
-    letAs' @(HList r) (HCons (MkT @"i44") xs45) $ \(xs44 :: HList t44) ->
-    letAs' @(HList r) (HCons (MkT @"i43") xs44) $ \(xs43 :: HList t43) ->
-    letAs' @(HList r) (HCons (MkT @"i42") xs43) $ \(xs42 :: HList t42) ->
-    letAs' @(HList r) (HCons (MkT @"i41") xs42) $ \(xs41 :: HList t41) ->
-    letAs' @(HList r) (HCons (MkT @"i40") xs41) $ \(xs40 :: HList t40) ->
-    -- 39 .. 30
-    letAs' @(HList r) (HCons (MkT @"i39") xs40) $ \(xs39 :: HList t39) ->
-    letAs' @(HList r) (HCons (MkT @"i38") xs39) $ \(xs38 :: HList t38) ->
-    letAs' @(HList r) (HCons (MkT @"i37") xs38) $ \(xs37 :: HList t37) ->
-    letAs' @(HList r) (HCons (MkT @"i36") xs37) $ \(xs36 :: HList t36) ->
-    letAs' @(HList r) (HCons (MkT @"i35") xs36) $ \(xs35 :: HList t35) ->
-    letAs' @(HList r) (HCons (MkT @"i34") xs35) $ \(xs34 :: HList t34) ->
-    letAs' @(HList r) (HCons (MkT @"i33") xs34) $ \(xs33 :: HList t33) ->
-    letAs' @(HList r) (HCons (MkT @"i32") xs33) $ \(xs32 :: HList t32) ->
-    letAs' @(HList r) (HCons (MkT @"i31") xs32) $ \(xs31 :: HList t31) ->
-    letAs' @(HList r) (HCons (MkT @"i30") xs31) $ \(xs30 :: HList t30) ->
-    -- 29 .. 20
-    letAs' @(HList r) (HCons (MkT @"i29") xs30) $ \(xs29 :: HList t29) ->
-    letAs' @(HList r) (HCons (MkT @"i28") xs29) $ \(xs28 :: HList t28) ->
-    letAs' @(HList r) (HCons (MkT @"i27") xs28) $ \(xs27 :: HList t27) ->
-    letAs' @(HList r) (HCons (MkT @"i26") xs27) $ \(xs26 :: HList t26) ->
-    letAs' @(HList r) (HCons (MkT @"i25") xs26) $ \(xs25 :: HList t25) ->
-    letAs' @(HList r) (HCons (MkT @"i24") xs25) $ \(xs24 :: HList t24) ->
-    letAs' @(HList r) (HCons (MkT @"i23") xs24) $ \(xs23 :: HList t23) ->
-    letAs' @(HList r) (HCons (MkT @"i22") xs23) $ \(xs22 :: HList t22) ->
-    letAs' @(HList r) (HCons (MkT @"i21") xs22) $ \(xs21 :: HList t21) ->
-    letAs' @(HList r) (HCons (MkT @"i20") xs21) $ \(xs20 :: HList t20) ->
-    -- 19 .. 10
-    letAs' @(HList r) (HCons (MkT @"i19") xs20) $ \(xs19 :: HList t19) ->
-    letAs' @(HList r) (HCons (MkT @"i18") xs19) $ \(xs18 :: HList t18) ->
-    letAs' @(HList r) (HCons (MkT @"i17") xs18) $ \(xs17 :: HList t17) ->
-    letAs' @(HList r) (HCons (MkT @"i16") xs17) $ \(xs16 :: HList t16) ->
-    letAs' @(HList r) (HCons (MkT @"i15") xs16) $ \(xs15 :: HList t15) ->
-    letAs' @(HList r) (HCons (MkT @"i14") xs15) $ \(xs14 :: HList t14) ->
-    letAs' @(HList r) (HCons (MkT @"i13") xs14) $ \(xs13 :: HList t13) ->
-    letAs' @(HList r) (HCons (MkT @"i12") xs13) $ \(xs12 :: HList t12) ->
-    letAs' @(HList r) (HCons (MkT @"i11") xs12) $ \(xs11 :: HList t11) ->
-    letAs' @(HList r) (HCons (MkT @"i10") xs11) $ \(xs10 :: HList t10) ->
-    -- 09 .. 00
-    letAs' @(HList r) (HCons (MkT @"i09") xs10) $ \(xs09 :: HList t09) ->
-    letAs' @(HList r) (HCons (MkT @"i08") xs09) $ \(xs08 :: HList t08) ->
-    letAs' @(HList r) (HCons (MkT @"i07") xs08) $ \(xs07 :: HList t07) ->
-    letAs' @(HList r) (HCons (MkT @"i06") xs07) $ \(xs06 :: HList t06) ->
-    letAs' @(HList r) (HCons (MkT @"i05") xs06) $ \(xs05 :: HList t05) ->
-    letAs' @(HList r) (HCons (MkT @"i04") xs05) $ \(xs04 :: HList t04) ->
-    letAs' @(HList r) (HCons (MkT @"i03") xs04) $ \(xs03 :: HList t03) ->
-    letAs' @(HList r) (HCons (MkT @"i02") xs03) $ \(xs02 :: HList t02) ->
-    letAs' @(HList r) (HCons (MkT @"i01") xs02) $ \(xs01 :: HList t01) ->
-    letAs' @(HList r) (HCons (MkT @"i00") xs01) $ \(xs00 :: HList t00) ->
-      castEqual xs00
diff --git a/test/Test/Size/HList/LetAsCPS/LetAsCPS090.hs b/test/Test/Size/HList/LetAsCPS/LetAsCPS090.hs
deleted file mode 100644
--- a/test/Test/Size/HList/LetAsCPS/LetAsCPS090.hs
+++ /dev/null
@@ -1,111 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.HList.LetAsCPS.LetAsCPS090 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.HList.Index.Ix090
-
-hlist :: HList Fields
-hlist = letT' (Proxy @Fields) $ \(_ :: Proxy r) -> castEqual $
-    -- 89 .. 80
-    letAs' @(HList r) (HCons (MkT @"i89") HNil) $ \(xs89 :: HList t89) ->
-    letAs' @(HList r) (HCons (MkT @"i88") xs89) $ \(xs88 :: HList t88) ->
-    letAs' @(HList r) (HCons (MkT @"i87") xs88) $ \(xs87 :: HList t87) ->
-    letAs' @(HList r) (HCons (MkT @"i86") xs87) $ \(xs86 :: HList t86) ->
-    letAs' @(HList r) (HCons (MkT @"i85") xs86) $ \(xs85 :: HList t85) ->
-    letAs' @(HList r) (HCons (MkT @"i84") xs85) $ \(xs84 :: HList t84) ->
-    letAs' @(HList r) (HCons (MkT @"i83") xs84) $ \(xs83 :: HList t83) ->
-    letAs' @(HList r) (HCons (MkT @"i82") xs83) $ \(xs82 :: HList t82) ->
-    letAs' @(HList r) (HCons (MkT @"i81") xs82) $ \(xs81 :: HList t81) ->
-    letAs' @(HList r) (HCons (MkT @"i80") xs81) $ \(xs80 :: HList t80) ->
-    -- 79 .. 70
-    letAs' @(HList r) (HCons (MkT @"i79") xs80) $ \(xs79 :: HList t79) ->
-    letAs' @(HList r) (HCons (MkT @"i78") xs79) $ \(xs78 :: HList t78) ->
-    letAs' @(HList r) (HCons (MkT @"i77") xs78) $ \(xs77 :: HList t77) ->
-    letAs' @(HList r) (HCons (MkT @"i76") xs77) $ \(xs76 :: HList t76) ->
-    letAs' @(HList r) (HCons (MkT @"i75") xs76) $ \(xs75 :: HList t75) ->
-    letAs' @(HList r) (HCons (MkT @"i74") xs75) $ \(xs74 :: HList t74) ->
-    letAs' @(HList r) (HCons (MkT @"i73") xs74) $ \(xs73 :: HList t73) ->
-    letAs' @(HList r) (HCons (MkT @"i72") xs73) $ \(xs72 :: HList t72) ->
-    letAs' @(HList r) (HCons (MkT @"i71") xs72) $ \(xs71 :: HList t71) ->
-    letAs' @(HList r) (HCons (MkT @"i70") xs71) $ \(xs70 :: HList t70) ->
-    -- 69 .. 60
-    letAs' @(HList r) (HCons (MkT @"i69") xs70) $ \(xs69 :: HList t69) ->
-    letAs' @(HList r) (HCons (MkT @"i68") xs69) $ \(xs68 :: HList t68) ->
-    letAs' @(HList r) (HCons (MkT @"i67") xs68) $ \(xs67 :: HList t67) ->
-    letAs' @(HList r) (HCons (MkT @"i66") xs67) $ \(xs66 :: HList t66) ->
-    letAs' @(HList r) (HCons (MkT @"i65") xs66) $ \(xs65 :: HList t65) ->
-    letAs' @(HList r) (HCons (MkT @"i64") xs65) $ \(xs64 :: HList t64) ->
-    letAs' @(HList r) (HCons (MkT @"i63") xs64) $ \(xs63 :: HList t63) ->
-    letAs' @(HList r) (HCons (MkT @"i62") xs63) $ \(xs62 :: HList t62) ->
-    letAs' @(HList r) (HCons (MkT @"i61") xs62) $ \(xs61 :: HList t61) ->
-    letAs' @(HList r) (HCons (MkT @"i60") xs61) $ \(xs60 :: HList t60) ->
-    -- 59 .. 50
-    letAs' @(HList r) (HCons (MkT @"i59") xs60) $ \(xs59 :: HList t59) ->
-    letAs' @(HList r) (HCons (MkT @"i58") xs59) $ \(xs58 :: HList t58) ->
-    letAs' @(HList r) (HCons (MkT @"i57") xs58) $ \(xs57 :: HList t57) ->
-    letAs' @(HList r) (HCons (MkT @"i56") xs57) $ \(xs56 :: HList t56) ->
-    letAs' @(HList r) (HCons (MkT @"i55") xs56) $ \(xs55 :: HList t55) ->
-    letAs' @(HList r) (HCons (MkT @"i54") xs55) $ \(xs54 :: HList t54) ->
-    letAs' @(HList r) (HCons (MkT @"i53") xs54) $ \(xs53 :: HList t53) ->
-    letAs' @(HList r) (HCons (MkT @"i52") xs53) $ \(xs52 :: HList t52) ->
-    letAs' @(HList r) (HCons (MkT @"i51") xs52) $ \(xs51 :: HList t51) ->
-    letAs' @(HList r) (HCons (MkT @"i50") xs51) $ \(xs50 :: HList t50) ->
-    -- 49 .. 40
-    letAs' @(HList r) (HCons (MkT @"i49") xs50) $ \(xs49 :: HList t49) ->
-    letAs' @(HList r) (HCons (MkT @"i48") xs49) $ \(xs48 :: HList t48) ->
-    letAs' @(HList r) (HCons (MkT @"i47") xs48) $ \(xs47 :: HList t47) ->
-    letAs' @(HList r) (HCons (MkT @"i46") xs47) $ \(xs46 :: HList t46) ->
-    letAs' @(HList r) (HCons (MkT @"i45") xs46) $ \(xs45 :: HList t45) ->
-    letAs' @(HList r) (HCons (MkT @"i44") xs45) $ \(xs44 :: HList t44) ->
-    letAs' @(HList r) (HCons (MkT @"i43") xs44) $ \(xs43 :: HList t43) ->
-    letAs' @(HList r) (HCons (MkT @"i42") xs43) $ \(xs42 :: HList t42) ->
-    letAs' @(HList r) (HCons (MkT @"i41") xs42) $ \(xs41 :: HList t41) ->
-    letAs' @(HList r) (HCons (MkT @"i40") xs41) $ \(xs40 :: HList t40) ->
-    -- 39 .. 30
-    letAs' @(HList r) (HCons (MkT @"i39") xs40) $ \(xs39 :: HList t39) ->
-    letAs' @(HList r) (HCons (MkT @"i38") xs39) $ \(xs38 :: HList t38) ->
-    letAs' @(HList r) (HCons (MkT @"i37") xs38) $ \(xs37 :: HList t37) ->
-    letAs' @(HList r) (HCons (MkT @"i36") xs37) $ \(xs36 :: HList t36) ->
-    letAs' @(HList r) (HCons (MkT @"i35") xs36) $ \(xs35 :: HList t35) ->
-    letAs' @(HList r) (HCons (MkT @"i34") xs35) $ \(xs34 :: HList t34) ->
-    letAs' @(HList r) (HCons (MkT @"i33") xs34) $ \(xs33 :: HList t33) ->
-    letAs' @(HList r) (HCons (MkT @"i32") xs33) $ \(xs32 :: HList t32) ->
-    letAs' @(HList r) (HCons (MkT @"i31") xs32) $ \(xs31 :: HList t31) ->
-    letAs' @(HList r) (HCons (MkT @"i30") xs31) $ \(xs30 :: HList t30) ->
-    -- 29 .. 20
-    letAs' @(HList r) (HCons (MkT @"i29") xs30) $ \(xs29 :: HList t29) ->
-    letAs' @(HList r) (HCons (MkT @"i28") xs29) $ \(xs28 :: HList t28) ->
-    letAs' @(HList r) (HCons (MkT @"i27") xs28) $ \(xs27 :: HList t27) ->
-    letAs' @(HList r) (HCons (MkT @"i26") xs27) $ \(xs26 :: HList t26) ->
-    letAs' @(HList r) (HCons (MkT @"i25") xs26) $ \(xs25 :: HList t25) ->
-    letAs' @(HList r) (HCons (MkT @"i24") xs25) $ \(xs24 :: HList t24) ->
-    letAs' @(HList r) (HCons (MkT @"i23") xs24) $ \(xs23 :: HList t23) ->
-    letAs' @(HList r) (HCons (MkT @"i22") xs23) $ \(xs22 :: HList t22) ->
-    letAs' @(HList r) (HCons (MkT @"i21") xs22) $ \(xs21 :: HList t21) ->
-    letAs' @(HList r) (HCons (MkT @"i20") xs21) $ \(xs20 :: HList t20) ->
-    -- 19 .. 10
-    letAs' @(HList r) (HCons (MkT @"i19") xs20) $ \(xs19 :: HList t19) ->
-    letAs' @(HList r) (HCons (MkT @"i18") xs19) $ \(xs18 :: HList t18) ->
-    letAs' @(HList r) (HCons (MkT @"i17") xs18) $ \(xs17 :: HList t17) ->
-    letAs' @(HList r) (HCons (MkT @"i16") xs17) $ \(xs16 :: HList t16) ->
-    letAs' @(HList r) (HCons (MkT @"i15") xs16) $ \(xs15 :: HList t15) ->
-    letAs' @(HList r) (HCons (MkT @"i14") xs15) $ \(xs14 :: HList t14) ->
-    letAs' @(HList r) (HCons (MkT @"i13") xs14) $ \(xs13 :: HList t13) ->
-    letAs' @(HList r) (HCons (MkT @"i12") xs13) $ \(xs12 :: HList t12) ->
-    letAs' @(HList r) (HCons (MkT @"i11") xs12) $ \(xs11 :: HList t11) ->
-    letAs' @(HList r) (HCons (MkT @"i10") xs11) $ \(xs10 :: HList t10) ->
-    -- 09 .. 00
-    letAs' @(HList r) (HCons (MkT @"i09") xs10) $ \(xs09 :: HList t09) ->
-    letAs' @(HList r) (HCons (MkT @"i08") xs09) $ \(xs08 :: HList t08) ->
-    letAs' @(HList r) (HCons (MkT @"i07") xs08) $ \(xs07 :: HList t07) ->
-    letAs' @(HList r) (HCons (MkT @"i06") xs07) $ \(xs06 :: HList t06) ->
-    letAs' @(HList r) (HCons (MkT @"i05") xs06) $ \(xs05 :: HList t05) ->
-    letAs' @(HList r) (HCons (MkT @"i04") xs05) $ \(xs04 :: HList t04) ->
-    letAs' @(HList r) (HCons (MkT @"i03") xs04) $ \(xs03 :: HList t03) ->
-    letAs' @(HList r) (HCons (MkT @"i02") xs03) $ \(xs02 :: HList t02) ->
-    letAs' @(HList r) (HCons (MkT @"i01") xs02) $ \(xs01 :: HList t01) ->
-    letAs' @(HList r) (HCons (MkT @"i00") xs01) $ \(xs00 :: HList t00) ->
-      castEqual xs00
diff --git a/test/Test/Size/HList/LetAsCPS/LetAsCPS100.hs b/test/Test/Size/HList/LetAsCPS/LetAsCPS100.hs
deleted file mode 100644
--- a/test/Test/Size/HList/LetAsCPS/LetAsCPS100.hs
+++ /dev/null
@@ -1,122 +0,0 @@
-{-# OPTIONS_GHC -fplugin=TypeLet #-}
-
-module Test.Size.HList.LetAsCPS.LetAsCPS100 where
-
-import TypeLet
-
-import Test.Infra
-import Test.Size.HList.Index.Ix100
-
-hlist :: HList Fields
-hlist = letT' (Proxy @Fields) $ \(_ :: Proxy r) -> castEqual $
-    -- 99 .. 90
-    letAs' @(HList r) (HCons (MkT @"i99") HNil) $ \(xs99 :: HList t99) ->
-    letAs' @(HList r) (HCons (MkT @"i98") xs99) $ \(xs98 :: HList t98) ->
-    letAs' @(HList r) (HCons (MkT @"i97") xs98) $ \(xs97 :: HList t97) ->
-    letAs' @(HList r) (HCons (MkT @"i96") xs97) $ \(xs96 :: HList t96) ->
-    letAs' @(HList r) (HCons (MkT @"i95") xs96) $ \(xs95 :: HList t95) ->
-    letAs' @(HList r) (HCons (MkT @"i94") xs95) $ \(xs94 :: HList t94) ->
-    letAs' @(HList r) (HCons (MkT @"i93") xs94) $ \(xs93 :: HList t93) ->
-    letAs' @(HList r) (HCons (MkT @"i92") xs93) $ \(xs92 :: HList t92) ->
-    letAs' @(HList r) (HCons (MkT @"i91") xs92) $ \(xs91 :: HList t91) ->
-    letAs' @(HList r) (HCons (MkT @"i90") xs91) $ \(xs90 :: HList t90) ->
-    -- 89 .. 80
-    letAs' @(HList r) (HCons (MkT @"i89") xs90) $ \(xs89 :: HList t89) ->
-    letAs' @(HList r) (HCons (MkT @"i88") xs89) $ \(xs88 :: HList t88) ->
-    letAs' @(HList r) (HCons (MkT @"i87") xs88) $ \(xs87 :: HList t87) ->
-    letAs' @(HList r) (HCons (MkT @"i86") xs87) $ \(xs86 :: HList t86) ->
-    letAs' @(HList r) (HCons (MkT @"i85") xs86) $ \(xs85 :: HList t85) ->
-    letAs' @(HList r) (HCons (MkT @"i84") xs85) $ \(xs84 :: HList t84) ->
-    letAs' @(HList r) (HCons (MkT @"i83") xs84) $ \(xs83 :: HList t83) ->
-    letAs' @(HList r) (HCons (MkT @"i82") xs83) $ \(xs82 :: HList t82) ->
-    letAs' @(HList r) (HCons (MkT @"i81") xs82) $ \(xs81 :: HList t81) ->
-    letAs' @(HList r) (HCons (MkT @"i80") xs81) $ \(xs80 :: HList t80) ->
-    -- 79 .. 70
-    letAs' @(HList r) (HCons (MkT @"i79") xs80) $ \(xs79 :: HList t79) ->
-    letAs' @(HList r) (HCons (MkT @"i78") xs79) $ \(xs78 :: HList t78) ->
-    letAs' @(HList r) (HCons (MkT @"i77") xs78) $ \(xs77 :: HList t77) ->
-    letAs' @(HList r) (HCons (MkT @"i76") xs77) $ \(xs76 :: HList t76) ->
-    letAs' @(HList r) (HCons (MkT @"i75") xs76) $ \(xs75 :: HList t75) ->
-    letAs' @(HList r) (HCons (MkT @"i74") xs75) $ \(xs74 :: HList t74) ->
-    letAs' @(HList r) (HCons (MkT @"i73") xs74) $ \(xs73 :: HList t73) ->
-    letAs' @(HList r) (HCons (MkT @"i72") xs73) $ \(xs72 :: HList t72) ->
-    letAs' @(HList r) (HCons (MkT @"i71") xs72) $ \(xs71 :: HList t71) ->
-    letAs' @(HList r) (HCons (MkT @"i70") xs71) $ \(xs70 :: HList t70) ->
-    -- 69 .. 60
-    letAs' @(HList r) (HCons (MkT @"i69") xs70) $ \(xs69 :: HList t69) ->
-    letAs' @(HList r) (HCons (MkT @"i68") xs69) $ \(xs68 :: HList t68) ->
-    letAs' @(HList r) (HCons (MkT @"i67") xs68) $ \(xs67 :: HList t67) ->
-    letAs' @(HList r) (HCons (MkT @"i66") xs67) $ \(xs66 :: HList t66) ->
-    letAs' @(HList r) (HCons (MkT @"i65") xs66) $ \(xs65 :: HList t65) ->
-    letAs' @(HList r) (HCons (MkT @"i64") xs65) $ \(xs64 :: HList t64) ->
-    letAs' @(HList r) (HCons (MkT @"i63") xs64) $ \(xs63 :: HList t63) ->
-    letAs' @(HList r) (HCons (MkT @"i62") xs63) $ \(xs62 :: HList t62) ->
-    letAs' @(HList r) (HCons (MkT @"i61") xs62) $ \(xs61 :: HList t61) ->
-    letAs' @(HList r) (HCons (MkT @"i60") xs61) $ \(xs60 :: HList t60) ->
-    -- 59 .. 50
-    letAs' @(HList r) (HCons (MkT @"i59") xs60) $ \(xs59 :: HList t59) ->
-    letAs' @(HList r) (HCons (MkT @"i58") xs59) $ \(xs58 :: HList t58) ->
-    letAs' @(HList r) (HCons (MkT @"i57") xs58) $ \(xs57 :: HList t57) ->
-    letAs' @(HList r) (HCons (MkT @"i56") xs57) $ \(xs56 :: HList t56) ->
-    letAs' @(HList r) (HCons (MkT @"i55") xs56) $ \(xs55 :: HList t55) ->
-    letAs' @(HList r) (HCons (MkT @"i54") xs55) $ \(xs54 :: HList t54) ->
-    letAs' @(HList r) (HCons (MkT @"i53") xs54) $ \(xs53 :: HList t53) ->
-    letAs' @(HList r) (HCons (MkT @"i52") xs53) $ \(xs52 :: HList t52) ->
-    letAs' @(HList r) (HCons (MkT @"i51") xs52) $ \(xs51 :: HList t51) ->
-    letAs' @(HList r) (HCons (MkT @"i50") xs51) $ \(xs50 :: HList t50) ->
-    -- 49 .. 40
-    letAs' @(HList r) (HCons (MkT @"i49") xs50) $ \(xs49 :: HList t49) ->
-    letAs' @(HList r) (HCons (MkT @"i48") xs49) $ \(xs48 :: HList t48) ->
-    letAs' @(HList r) (HCons (MkT @"i47") xs48) $ \(xs47 :: HList t47) ->
-    letAs' @(HList r) (HCons (MkT @"i46") xs47) $ \(xs46 :: HList t46) ->
-    letAs' @(HList r) (HCons (MkT @"i45") xs46) $ \(xs45 :: HList t45) ->
-    letAs' @(HList r) (HCons (MkT @"i44") xs45) $ \(xs44 :: HList t44) ->
-    letAs' @(HList r) (HCons (MkT @"i43") xs44) $ \(xs43 :: HList t43) ->
-    letAs' @(HList r) (HCons (MkT @"i42") xs43) $ \(xs42 :: HList t42) ->
-    letAs' @(HList r) (HCons (MkT @"i41") xs42) $ \(xs41 :: HList t41) ->
-    letAs' @(HList r) (HCons (MkT @"i40") xs41) $ \(xs40 :: HList t40) ->
-    -- 39 .. 30
-    letAs' @(HList r) (HCons (MkT @"i39") xs40) $ \(xs39 :: HList t39) ->
-    letAs' @(HList r) (HCons (MkT @"i38") xs39) $ \(xs38 :: HList t38) ->
-    letAs' @(HList r) (HCons (MkT @"i37") xs38) $ \(xs37 :: HList t37) ->
-    letAs' @(HList r) (HCons (MkT @"i36") xs37) $ \(xs36 :: HList t36) ->
-    letAs' @(HList r) (HCons (MkT @"i35") xs36) $ \(xs35 :: HList t35) ->
-    letAs' @(HList r) (HCons (MkT @"i34") xs35) $ \(xs34 :: HList t34) ->
-    letAs' @(HList r) (HCons (MkT @"i33") xs34) $ \(xs33 :: HList t33) ->
-    letAs' @(HList r) (HCons (MkT @"i32") xs33) $ \(xs32 :: HList t32) ->
-    letAs' @(HList r) (HCons (MkT @"i31") xs32) $ \(xs31 :: HList t31) ->
-    letAs' @(HList r) (HCons (MkT @"i30") xs31) $ \(xs30 :: HList t30) ->
-    -- 29 .. 20
-    letAs' @(HList r) (HCons (MkT @"i29") xs30) $ \(xs29 :: HList t29) ->
-    letAs' @(HList r) (HCons (MkT @"i28") xs29) $ \(xs28 :: HList t28) ->
-    letAs' @(HList r) (HCons (MkT @"i27") xs28) $ \(xs27 :: HList t27) ->
-    letAs' @(HList r) (HCons (MkT @"i26") xs27) $ \(xs26 :: HList t26) ->
-    letAs' @(HList r) (HCons (MkT @"i25") xs26) $ \(xs25 :: HList t25) ->
-    letAs' @(HList r) (HCons (MkT @"i24") xs25) $ \(xs24 :: HList t24) ->
-    letAs' @(HList r) (HCons (MkT @"i23") xs24) $ \(xs23 :: HList t23) ->
-    letAs' @(HList r) (HCons (MkT @"i22") xs23) $ \(xs22 :: HList t22) ->
-    letAs' @(HList r) (HCons (MkT @"i21") xs22) $ \(xs21 :: HList t21) ->
-    letAs' @(HList r) (HCons (MkT @"i20") xs21) $ \(xs20 :: HList t20) ->
-    -- 19 .. 10
-    letAs' @(HList r) (HCons (MkT @"i19") xs20) $ \(xs19 :: HList t19) ->
-    letAs' @(HList r) (HCons (MkT @"i18") xs19) $ \(xs18 :: HList t18) ->
-    letAs' @(HList r) (HCons (MkT @"i17") xs18) $ \(xs17 :: HList t17) ->
-    letAs' @(HList r) (HCons (MkT @"i16") xs17) $ \(xs16 :: HList t16) ->
-    letAs' @(HList r) (HCons (MkT @"i15") xs16) $ \(xs15 :: HList t15) ->
-    letAs' @(HList r) (HCons (MkT @"i14") xs15) $ \(xs14 :: HList t14) ->
-    letAs' @(HList r) (HCons (MkT @"i13") xs14) $ \(xs13 :: HList t13) ->
-    letAs' @(HList r) (HCons (MkT @"i12") xs13) $ \(xs12 :: HList t12) ->
-    letAs' @(HList r) (HCons (MkT @"i11") xs12) $ \(xs11 :: HList t11) ->
-    letAs' @(HList r) (HCons (MkT @"i10") xs11) $ \(xs10 :: HList t10) ->
-    -- 09 .. 00
-    letAs' @(HList r) (HCons (MkT @"i09") xs10) $ \(xs09 :: HList t09) ->
-    letAs' @(HList r) (HCons (MkT @"i08") xs09) $ \(xs08 :: HList t08) ->
-    letAs' @(HList r) (HCons (MkT @"i07") xs08) $ \(xs07 :: HList t07) ->
-    letAs' @(HList r) (HCons (MkT @"i06") xs07) $ \(xs06 :: HList t06) ->
-    letAs' @(HList r) (HCons (MkT @"i05") xs06) $ \(xs05 :: HList t05) ->
-    letAs' @(HList r) (HCons (MkT @"i04") xs05) $ \(xs04 :: HList t04) ->
-    letAs' @(HList r) (HCons (MkT @"i03") xs04) $ \(xs03 :: HList t03) ->
-    letAs' @(HList r) (HCons (MkT @"i02") xs03) $ \(xs02 :: HList t02) ->
-    letAs' @(HList r) (HCons (MkT @"i01") xs02) $ \(xs01 :: HList t01) ->
-    letAs' @(HList r) (HCons (MkT @"i00") xs01) $ \(xs00 :: HList t00) ->
-      castEqual xs00
diff --git a/typelet.cabal b/typelet.cabal
--- a/typelet.cabal
+++ b/typelet.cabal
@@ -1,7 +1,7 @@
 cabal-version:      2.4
-build-type:         Custom
+build-type:         Simple
 name:               typelet
-version:            0.1.1.0
+version:            0.1.2
 synopsis:           Plugin to faciliate type-level let
 description:        For a certain class of programs, type-level let is essential
                     in order to be able to write these programs in such a way
@@ -23,11 +23,6 @@
   type:     git
   location: https://github.com/well-typed/typelet
 
-custom-setup
-    setup-depends:
-        base >= 4 && <5
-      , cabal-doctest >= 1 && <1.1
-
 library
     exposed-modules:
         TypeLet
@@ -40,7 +35,7 @@
         TypeLet.Plugin.Substitution
     build-depends:
         base >= 4.13 && < 4.17
-      , ghc-tcplugin-api >= 0.7 && < 0.8
+      , ghc-tcplugin-api >= 0.8 && < 0.9
 
         -- whichever versions are bundled with ghc:
       , containers
@@ -95,82 +90,6 @@
         Test.Infra
         Test.Sanity
         Test.WithoutPlugin
-
-    if flag(include-size-tests)
-      -- Currently the size tests are built, but not actually part of the test
-      -- suite proper. We are just interested in the size of their core.
-      other-modules:
-          Test.Size.Ap.Baseline.Baseline010
-          Test.Size.Ap.Baseline.Baseline020
-          Test.Size.Ap.Baseline.Baseline030
-          Test.Size.Ap.Baseline.Baseline040
-          Test.Size.Ap.Baseline.Baseline050
-          Test.Size.Ap.Baseline.Baseline060
-          Test.Size.Ap.Baseline.Baseline070
-          Test.Size.Ap.Baseline.Baseline080
-          Test.Size.Ap.Baseline.Baseline090
-          Test.Size.Ap.Baseline.Baseline100
-          Test.Size.Ap.Index.Ix010
-          Test.Size.Ap.Index.Ix020
-          Test.Size.Ap.Index.Ix030
-          Test.Size.Ap.Index.Ix040
-          Test.Size.Ap.Index.Ix050
-          Test.Size.Ap.Index.Ix060
-          Test.Size.Ap.Index.Ix070
-          Test.Size.Ap.Index.Ix080
-          Test.Size.Ap.Index.Ix090
-          Test.Size.Ap.Index.Ix100
-          Test.Size.Ap.Let.Let010
-          Test.Size.Ap.Let.Let020
-          Test.Size.Ap.Let.Let030
-          Test.Size.Ap.Let.Let040
-          Test.Size.Ap.Let.Let050
-          Test.Size.Ap.Let.Let060
-          Test.Size.Ap.Let.Let070
-          Test.Size.Ap.Let.Let080
-          Test.Size.Ap.Let.Let090
-          Test.Size.Ap.Let.Let100
-          Test.Size.HList.Baseline.Baseline010
-          Test.Size.HList.Baseline.Baseline020
-          Test.Size.HList.Baseline.Baseline030
-          Test.Size.HList.Baseline.Baseline040
-          Test.Size.HList.Baseline.Baseline050
-          Test.Size.HList.Baseline.Baseline060
-          Test.Size.HList.Baseline.Baseline070
-          Test.Size.HList.Baseline.Baseline080
-          Test.Size.HList.Baseline.Baseline090
-          Test.Size.HList.Baseline.Baseline100
-          Test.Size.HList.Index.Ix010
-          Test.Size.HList.Index.Ix020
-          Test.Size.HList.Index.Ix030
-          Test.Size.HList.Index.Ix040
-          Test.Size.HList.Index.Ix050
-          Test.Size.HList.Index.Ix060
-          Test.Size.HList.Index.Ix070
-          Test.Size.HList.Index.Ix080
-          Test.Size.HList.Index.Ix090
-          Test.Size.HList.Index.Ix100
-          Test.Size.HList.LetAs.LetAs010
-          Test.Size.HList.LetAs.LetAs020
-          Test.Size.HList.LetAs.LetAs030
-          Test.Size.HList.LetAs.LetAs040
-          Test.Size.HList.LetAs.LetAs050
-          Test.Size.HList.LetAs.LetAs060
-          Test.Size.HList.LetAs.LetAs070
-          Test.Size.HList.LetAs.LetAs080
-          Test.Size.HList.LetAs.LetAs090
-          Test.Size.HList.LetAs.LetAs100
-          Test.Size.HList.LetAsCPS.LetAsCPS010
-          Test.Size.HList.LetAsCPS.LetAsCPS020
-          Test.Size.HList.LetAsCPS.LetAsCPS030
-          Test.Size.HList.LetAsCPS.LetAsCPS040
-          Test.Size.HList.LetAsCPS.LetAsCPS050
-          Test.Size.HList.LetAsCPS.LetAsCPS060
-          Test.Size.HList.LetAsCPS.LetAsCPS070
-          Test.Size.HList.LetAsCPS.LetAsCPS080
-          Test.Size.HList.LetAsCPS.LetAsCPS090
-          Test.Size.HList.LetAsCPS.LetAsCPS100
-
     build-depends:
         base
       , typelet
@@ -179,49 +98,3 @@
       , tasty-quickcheck
     ghc-options:
         -Wall
-
--- To use the doctest tests, enable flag build-doctest-examples
-test-suite doctest-typelet
-    type:
-        exitcode-stdio-1.0
-    default-language:
-        Haskell2010
-    hs-source-dirs:
-        doctest
-    main-is:
-        DoctestTypeLet.hs
-    build-depends:
-        base
-      , doctest
-      , typelet
-    x-doctest-components:
-        exe:doctest-examples-typelet
-
-    if !flag(build-doctest-examples)
-      buildable: False
-
-executable doctest-examples-typelet
-    main-is:
-        DoctestExamplesTypeLet.hs
-    default-language:
-        Haskell2010
-    default-extensions:
-        FlexibleContexts
-    hs-source-dirs:
-        doctest-examples
-    build-depends:
-        base
-      , typelet
-    ghc-options:
-        -Wwarn
-
-    if !flag(build-doctest-examples)
-      buildable: False
-
-Flag build-doctest-examples
-  Description: Build doctest-examples-typelet (for testing only)
-  Default: False
-
-Flag include-size-tests
-  Description: Include size tests in the test suite
-  Default: True
