diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -1,46 +1,62 @@
 # Builds and tests this Haskell project on "GitHub Actions"
 #
-# 2021  Rudy Matela
+# 2021-2024  Rudy Matela
 #
-# some docs: https://github.com/haskell/actions/tree/main/setup
+# some docs: https://github.com/haskell-actions/setup
+#
+# The official haskell docker image: https://hub.docker.com/_/haskell
 name: build
 on: [push]
 jobs:
   build-and-test:
     runs-on: ubuntu-latest
     steps:
+      - run: git   --version
+      - run: make  --version
+      - run: ghc   --version
+      - run: cabal --version
 
-      - name: Cache ~/.cabal/packages
-        uses: actions/cache@v2
+      - name: Check out repository
+        uses: actions/checkout@v3
+
+      # check out needs to happen before cache so that hashing works
+      - name: Cache hash
+        run: echo Cache hash = ${{ hashFiles('*.cabal') }}
+
+      - name: Cache cabal (source) packages
+        uses: actions/cache@v3
         with:
-          path: ~/.cabal/packages
-          key:          v1-${{ runner.os }}-cabal-packages-${{ hashFiles('hello.cabal') }}
+          path: |
+            ~/.cabal/packages
+            ~/.cache/cabal
+          key:          v1-${{ runner.os }}-cabal-packages-${{ hashFiles('*.cabal') }}
           restore-keys: v1-${{ runner.os }}-cabal-packages-
 
-      - name: Cache ~/.cabal and ~/.ghc
-        uses: actions/cache@v2
+      - name: Cache installed cabal packages
+        uses: actions/cache@v3
         with:
           path: |
             ~/.cabal
             !~/.cabal/packages
+            ~/.config/cabal
+            ~/.local/state/cabal
             ~/.ghc
-          key:          v1-${{ runner.os }}-cabal-ghc-latest-${{ hashFiles('hello.cabal') }}
-          restore-keys: v1-${{ runner.os }}-cabal-ghc-latest-
-
-      - run: du -hd3 ~/.cabal ~/.ghc || true
+          key:          v1-${{ runner.os }}-cabal-ghc-latest-${{ hashFiles('*.cabal') }}
+          restore-keys: v1-${{ runner.os }}-cabal-ghc-latest-${{ hashFiles('*.cabal') }}
+          # restore with exact match has some versions of cabal have trouble updating
 
       - run: haddock --version || sudo apt-get install ghc-haddock
-      - run: ghc     --version
-      - run: cabal   --version
-      - run: haddock --version
-      - run: ghc-pkg list
+      # blank line
+      # blank line for alignment with matrix scripts
 
-      - name: Check out repository
-        uses: actions/checkout@v2
+      - run: du -hd3 ~/.ghc ~/.cabal ~/.config/cabal ~/.cache/cabal ~/.local/state/cabal || true
 
-      - run: cabal update
+      - run: ghc-pkg list
       - run: make install-dependencies
+      - run: ghc-pkg list
 
+      - run: du -hd3 ~/.ghc ~/.cabal ~/.config/cabal ~/.cache/cabal ~/.local/state/cabal || true
+
       - run: make
       - run: make test
       - run: make haddock
@@ -50,57 +66,67 @@
 
   test-with-ghc:
     strategy:
+      max-parallel: 6
       matrix:
+        # starting with 9.10, docker/_/haskell requires -bullseye as suffix
         ghc:
+          - '9.10-bullseye'
+          - '9.8'
+          - '9.6'
           - '9.4'
           - '9.2'
           - '9.0'
-          - '8.10'
           - '8.8'
-          - '8.6'
-          - '8.4'
-          - '8.2'
-          - '8.0'
-          - '7.10'
-          - '7.8'
     runs-on: ubuntu-latest
     needs: build-and-test
     container: haskell:${{ matrix.ghc }}
     steps:
-      - name: Cache ~/.cabal/packages
-        uses: actions/cache@v2
+      - run: git   --version || true # git is missing in some images
+      - run: make  --version || true # make is missing in some images
+      - run: ghc   --version
+      - run: cabal --version
+
+      - name: Check out repository
+        uses: actions/checkout@v3
+
+      # check out needs to happen before cache so that hashing works
+      - name: Cache hash
+        run: echo Cache hash = ${{ hashFiles('*.cabal') }}
+
+      - name: Cache cabal (source) packages
+        uses: actions/cache@v3
         with:
-          path: ~/.cabal/packages
-          key:          v1-${{ runner.os }}-cabal-packages-${{ hashFiles('hello.cabal') }}
+          path: |
+            ~/.cabal/packages
+            ~/.cache/cabal
+          key:          v1-${{ runner.os }}-cabal-packages-${{ hashFiles('*.cabal') }}
           restore-keys: v1-${{ runner.os }}-cabal-packages-
 
-      - name: Cache ~/.cabal and ~/.ghc
-        uses: actions/cache@v2
+      - name: Cache installed cabal packages
+        uses: actions/cache@v3
         with:
           path: |
             ~/.cabal
             !~/.cabal/packages
+            ~/.config/cabal
+            ~/.local/state/cabal
             ~/.ghc
-          key:          v1-${{ runner.os }}-cabal-ghc-${{ matrix.ghc }}-${{ hashFiles('hello.cabal') }}
-          restore-keys: v1-${{ runner.os }}-cabal-ghc-${{ matrix.ghc }}-
-
-      - run: du -hd3 ~/.cabal ~/.ghc || true
+          key:          v1-${{ runner.os }}-cabal-ghc-${{ matrix.ghc }}-${{ hashFiles('*.cabal') }}
+          restore-keys: v1-${{ runner.os }}-cabal-ghc-${{ matrix.ghc }}-${{ hashFiles('*.cabal') }}
+          # restore with exact match has some versions of cabal have trouble updating
 
       - run: make --version || rm /etc/apt/sources.list.d/*.list # faster update
       - run: make --version || apt-get update
       - run: make --version || apt-get install make
 
-      - run: ghc     --version
-      - run: cabal   --version
-      - run: haddock --version
-      - run: ghc-pkg list
-
-      - name: Check out repository
-        uses: actions/checkout@v2
+      - run: du -hd3 ~/.ghc ~/.cabal ~/.config/cabal ~/.cache/cabal ~/.local/state/cabal || true
 
-      - run: cabal update
+      - run: ghc-pkg list
       - run: make install-dependencies
+      - run: ghc-pkg list
 
+      - run: du -hd3 ~/.ghc ~/.cabal ~/.config/cabal ~/.cache/cabal ~/.local/state/cabal || true
+
       - run: make
       - run: make test
       - run: make haddock
@@ -111,20 +137,41 @@
     runs-on: ubuntu-latest
     needs: build-and-test
     steps:
-      - name: Setup Haskell's GHC and Cabal as required by current Stackage LTS
-        uses: haskell/actions/setup@v1
-        with: # lts-19.19
-          ghc-version: '9.0.2'
-          cabal-version: '3.4'
+      - name: Check out repository
+        uses: actions/checkout@v3
 
-      - uses: actions/cache@v2
+      # check out needs to happen before cache so that hashing works
+      - name: Cache hash
+        run: echo Cache hash = ${{ hashFiles('stack.yaml') }}
+
+      - name: Cache stack folder
+        uses: actions/cache@v3
         with:
           path: ~/.stack
           key:          v1-${{ runner.os }}-stack-${{ hashFiles('stack.yaml') }}
           restore-keys: v1-${{ runner.os }}-stack-
 
+      - name: Cache ghcup folder
+        uses: actions/cache@v3
+        with:
+          path: |
+            ~/.ghcup
+            /usr/local/.ghcup/bin
+            /usr/local/.ghcup/db
+            /usr/local/.ghcup/ghc/9.4.8
+          key:          v1-${{ runner.os }}-ghcup-${{ hashFiles('stack.yaml') }}
+          restore-keys: v1-${{ runner.os }}-ghcup-
+
+      - name: Setup Haskell's GHC and Cabal as required by current Stackage LTS
+        uses: haskell-actions/setup@v2
+        with: # lts-21.25
+          ghc-version: '9.4.8'
+          cabal-version: '3.8'
+
+      - run: du -hd2 ~/.stack ~/.ghcup /usr/local/.ghcup || true
+
       - run: stack --version
 
-      - name: Check out repository
-        uses: actions/checkout@v2
       - run: make test-via-stack
+
+      - run: du -hd2 ~/.stack ~/.ghcup /usr/local/.ghcup || true
diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -3,6 +3,7 @@
 # Copyright:   (c) 2015-2022 Rudy Matela
 # License:     3-Clause BSD  (see the file LICENSE)
 # Maintainer:  Rudy Matela <rudy@matela.com.br>
+GHC=ghc-9.10
 TESTS = test/main      \
         test/text
 EGS = \
@@ -14,7 +15,9 @@
 GHCFLAGS = -v0 -O2 $(shell grep -q "Arch Linux" /etc/lsb-release && echo -dynamic)
 HADDOCKFLAGS = \
   $(shell grep -q "Arch Linux" /etc/lsb-release && echo --optghc=-dynamic)
-INSTALL_DEPS = leancheck bytestring nats text --avoid-reinstalls
+BASE_DEPS = containers array time
+INSTALL_DEPS = leancheck bytestring nats text \
+  $(shell cabal --version | grep -q "version [0-2]\." || echo $(BASE_DEPS))
 
 all: mk/toplibs
 
@@ -58,6 +61,12 @@
 test-via-stack:
 	stack test leancheck-instances:test:main --ghc-options="$(GHCFLAGS) -O0" --system-ghc --no-install-ghc --no-terminal
 
+test-with-ghc-9.12:
+	make test GHC=ghc-9.12 GHCIMPORTDIRS=src:test:../leancheck/src
+
+test-with-ghc-9.10:
+	make test GHC=ghc-9.10 GHCIMPORTDIRS=src:test:../leancheck/src
+
 legacy-test: # needs ghc-8.2 .. ghc-7.8 installed as such
 	make clean  &&  make test GHC=ghc-8.2  GHCFLAGS="-Werror -dynamic"
 	make clean  &&  make test GHC=ghc-8.0  GHCFLAGS="-Werror -dynamic"
@@ -106,6 +115,7 @@
 	./bench/tiers "Day"            9 | diff -rud test/diff/tiers-Day.out         -
 	./bench/tiers "DiffTime"         | diff -rud test/diff/tiers-DiffTime.out    -
 	./bench/tiers "Array Int Int"    | diff -rud test/diff/tiers-ArrayIntInt.out -
+	./bench/tiers "These Int Int"    | diff -rud test/diff/tiers-TheseIntInt.out -
 
 update-diff-test-tiers: bench/tiers
 	./bench/tiers "Natural"          > test/diff/tiers-Natural.out
@@ -123,3 +133,4 @@
 	./bench/tiers "Day"            9 > test/diff/tiers-Day.out
 	./bench/tiers "DiffTime"         > test/diff/tiers-DiffTime.out
 	./bench/tiers "Array Int Int"    > test/diff/tiers-ArrayIntInt.out
+	./bench/tiers "These Int Int"    > test/diff/tiers-TheseIntInt.out
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -83,19 +83,19 @@
 	If needed, create a module that will contain your instance following the
 	same structure in [quickcheck-instances]:
 
-		$ cat > src/Test/LeanCheck/Instances/Something.hs
-		-- |
-		-- Module      : Test.LeanCheck.Instances.Containers
-		-- Copyright   : (c) 2019 Authors of leancheck-instances
-		-- License     : 3-Clause BSD  (see the file LICENSE)
-		-- Maintainer  : Rudy Matela <rudy@matela.com.br>
-		--
-		-- 'Listable' something.
-		module Test.LeanCheck.Instances.Something () where
+       $ cat > src/Test/LeanCheck/Instances/Something.hs
+       -- |
+       -- Module      : Test.LeanCheck.Instances.Containers
+       -- Copyright   : (c) 2019 Authors of leancheck-instances
+       -- License     : 3-Clause BSD  (see the file LICENSE)
+       -- Maintainer  : Rudy Matela <rudy@matela.com.br>
+       --
+       -- 'Listable' something.
+       module Test.LeanCheck.Instances.Something () where
 
-		import Test.LeanCheck
-		import Something
-		^D
+       import Test.LeanCheck
+       import Something
+       ^D
 
 	Remember to:
 
@@ -113,8 +113,8 @@
 	Open the relevant module with your favourite text editor and add your
 	instance:
 
-		instance ... => Listable Something where
-		  ...
+       instance ... => Listable Something where
+         ...
 
 	Check the existing modules and the [`Listable`] typeclass documentation for
 	how to create one.
diff --git a/bench/tiers.hs b/bench/tiers.hs
--- a/bench/tiers.hs
+++ b/bench/tiers.hs
@@ -20,6 +20,7 @@
 import Data.Text (Text)
 import Data.Time
 import Numeric.Natural
+import Data.These
 
 dropEmptyTiersTail :: [[a]] -> [[a]]
 dropEmptyTiersTail ([]:[]:[]: []:[]:[]: _) = []
@@ -115,5 +116,7 @@
     "Day"              -> put t n (u :: Day                  )
     "DiffTime"         -> put t n (u :: DiffTime             )
     "UTCTime"          -> put t n (u :: UTCTime              )
+    -- other
+    "These Int Int"    -> put t n (u :: These Int Int        )
     -- unhandled
     _                  -> putStrLn $ "unknown/unhandled type `" ++ t ++ "'"
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,6 +1,13 @@
 Changelog for leancheck-instances
 =================================
 
+
+v0.0.6
+------
+
+* fix tests on GHC 9.10
+
+
 v0.0.5
 ------
 
@@ -11,7 +18,7 @@
 v0.0.4
 ------
 
-* minor improvement on Listable UTCTime
+* minor improvement on `Listable UTCTime`
 * improve tests
 
 
diff --git a/leancheck-instances.cabal b/leancheck-instances.cabal
--- a/leancheck-instances.cabal
+++ b/leancheck-instances.cabal
@@ -1,6 +1,6 @@
 -- Cabal file for leancheck-instances
 name:                leancheck-instances
-version:             0.0.5
+version:             0.0.6
 synopsis:            Common LeanCheck instances
 description:
   Listable instances for types provided by the Haskell Platform.
@@ -36,17 +36,13 @@
                   , test/diff/*.out
                   , test/diff/eg/*.out
                   , test/sdist
-tested-with: GHC==9.4
+tested-with: GHC==9.10
+           , GHC==9.8
+           , GHC==9.6
+           , GHC==9.4
            , GHC==9.2
            , GHC==9.0
-           , GHC==8.10
            , GHC==8.8
-           , GHC==8.6
-           , GHC==8.4
-           , GHC==8.2
-           , GHC==8.0
-           , GHC==7.10
-           , GHC==7.8
 
 
 source-repository head
@@ -56,7 +52,7 @@
 source-repository this
   type:            git
   location:        https://github.com/rudymatela/leancheck-instances
-  tag:             v0.0.5
+  tag:             v0.0.6
 
 library
   exposed-modules: Test.LeanCheck.Instances
@@ -77,6 +73,7 @@
                , text
                , time
                , array
+               , these
   default-language: Haskell2010
 
 test-suite main
diff --git a/mk/ghcdeps b/mk/ghcdeps
--- a/mk/ghcdeps
+++ b/mk/ghcdeps
@@ -2,7 +2,7 @@
 #
 # ghcdeps: generate Haskell make dependencies for compiling with GHC.
 #
-# Copyright (c) 2015-2021 Rudy Matela.
+# Copyright (c) 2015-2024 Rudy Matela.
 # Distributed under the 3-Clause BSD licence.
 #
 # From a list of files provided on standard input,
diff --git a/mk/haddock-i b/mk/haddock-i
--- a/mk/haddock-i
+++ b/mk/haddock-i
@@ -2,7 +2,7 @@
 #
 # haddock-i: list haddock's -i parameters.
 #
-# Copyright (c) 2015-2021 Rudy Matela.
+# Copyright (c) 2015-2024 Rudy Matela.
 # Distributed under the 3-Clause BSD licence.
 #
 # $ haddock-i <package1> <package2> ... <packageN>
diff --git a/mk/haskell.mk b/mk/haskell.mk
--- a/mk/haskell.mk
+++ b/mk/haskell.mk
@@ -1,6 +1,6 @@
 # Implicit rules for compiling Haskell code.
 #
-# Copyright (c) 2015-2021 Rudy Matela.
+# Copyright (c) 2015-2024 Rudy Matela.
 # Distributed under the 3-Clause BSD licence.
 #
 # You can optionally configure the "Configuration variables" below in your main
@@ -21,7 +21,7 @@
 GHC ?= ghc
 GHCCMD = $(GHC) -i$(GHCIMPORTDIRS) $(GHCFLAGS)
 HADDOCK ?= haddock
-CABAL_INSTALL = $(shell cabal --version | grep -q "version [0-2]\." && echo 'cabal install' || echo 'cabal v1-install')
+CABAL_INSTALL = $(shell cabal --version | grep -q "version [0-2]\." && echo 'cabal install' || echo 'cabal install --lib')
 
 # Hugs Parameters
 HUGSIMPORTDIRS ?= "/usr/lib/hugs/packages/*"
@@ -90,7 +90,15 @@
 	find $(ALL_HSS) | ./mk/ghcdeps -i$(GHCIMPORTDIRS) $(GHCFLAGS) > $(DEPMK)
 
 install-dependencies:
-	$(CABAL_INSTALL) $(INSTALL_DEPS)
+	if [ -n "$(INSTALL_DEPS)" ]; then \
+		cd ~ && \
+		cabal update && \
+		$(CABAL_INSTALL) $(INSTALL_DEPS) || true; \
+	fi
+	# above, "|| true" is needed for cabal >= 3.10.2
+	# Before, cabal would successfully skip installation
+	#         of already existing packages
+	# cd ~ is needed so cabal installs only dependencies
 
 # haddock rules
 haddock: doc/index.html
diff --git a/mk/install-on b/mk/install-on
--- a/mk/install-on
+++ b/mk/install-on
@@ -2,7 +2,7 @@
 #
 # mk/install-on: install or updates the mk folder on a Haskell project
 #
-# Copyright (c) 2019-2021 Rudy Matela.
+# Copyright (c) 2019-2024 Rudy Matela.
 # Distributed under the 3-Clause BSD licence.
 #
 # usage: ./mk/install-on path/to/project
diff --git a/src/Test/LeanCheck/Instances.hs b/src/Test/LeanCheck/Instances.hs
--- a/src/Test/LeanCheck/Instances.hs
+++ b/src/Test/LeanCheck/Instances.hs
@@ -40,3 +40,4 @@
 import Test.LeanCheck.Instances.Containers ()
 import Test.LeanCheck.Instances.Time ()
 import Test.LeanCheck.Instances.Void ()
+import Test.LeanCheck.Instances.These ()
diff --git a/src/Test/LeanCheck/Instances/Natural.hs b/src/Test/LeanCheck/Instances/Natural.hs
--- a/src/Test/LeanCheck/Instances/Natural.hs
+++ b/src/Test/LeanCheck/Instances/Natural.hs
@@ -11,4 +11,4 @@
 import Test.LeanCheck
 
 instance Listable Natural where
-  list = [0..]
+  list  =  [0..]
diff --git a/stack.yaml b/stack.yaml
--- a/stack.yaml
+++ b/stack.yaml
@@ -1,7 +1,7 @@
-resolver: lts-19.19 # or ghc-9.0.2
+resolver: lts-21.25 # or ghc-9.4.8
 
 packages:
 - .
 
 extra-deps:
-- leancheck-1.0.0
+- leancheck-1.0.2
diff --git a/test/diff/tiers-TheseIntInt.out b/test/diff/tiers-TheseIntInt.out
new file mode 100644
--- /dev/null
+++ b/test/diff/tiers-TheseIntInt.out
@@ -0,0 +1,125 @@
+map length (tiers :: [[ These Int Int ]])  =  [3,4,5,6,7,8,9,10,11,12,13,14,...]
+
+length (list :: [ These Int Int ])  =  Infinity
+
+allUnique (list :: [ These Int Int ])  =  True
+
+ratioRepetitions (list :: [ These Int Int ])  =  0 % 1
+
+tiers :: [These Int Int]  =
+  [ [ This 0
+    , That 0
+    , These 0 0
+    ]
+  , [ This 1
+    , That 1
+    , These 0 1
+    , These 1 0
+    ]
+  , [ This (-1)
+    , That (-1)
+    , These 0 (-1)
+    , These 1 1
+    , These (-1) 0
+    ]
+  , [ This 2
+    , That 2
+    , These 0 2
+    , These 1 (-1)
+    , These (-1) 1
+    , These 2 0
+    ]
+  , [ This (-2)
+    , That (-2)
+    , These 0 (-2)
+    , These 1 2
+    , These (-1) (-1)
+    , These 2 1
+    , These (-2) 0
+    ]
+  , [ This 3
+    , That 3
+    , These 0 3
+    , These 1 (-2)
+    , These (-1) 2
+    , These 2 (-1)
+    , These (-2) 1
+    , These 3 0
+    ]
+  , [ This (-3)
+    , That (-3)
+    , These 0 (-3)
+    , These 1 3
+    , These (-1) (-2)
+    , These 2 2
+    , These (-2) (-1)
+    , These 3 1
+    , These (-3) 0
+    ]
+  , [ This 4
+    , That 4
+    , These 0 4
+    , These 1 (-3)
+    , These (-1) 3
+    , These 2 (-2)
+    , These (-2) 2
+    , These 3 (-1)
+    , These (-3) 1
+    , These 4 0
+    ]
+  , [ This (-4)
+    , That (-4)
+    , These 0 (-4)
+    , These 1 4
+    , These (-1) (-3)
+    , These 2 3
+    , These (-2) (-2)
+    , These 3 2
+    , These (-3) (-1)
+    , These 4 1
+    , These (-4) 0
+    ]
+  , [ This 5
+    , That 5
+    , These 0 5
+    , These 1 (-4)
+    , These (-1) 4
+    , These 2 (-3)
+    , These (-2) 3
+    , These 3 (-2)
+    , These (-3) 2
+    , These 4 (-1)
+    , These (-4) 1
+    , These 5 0
+    ]
+  , [ This (-5)
+    , That (-5)
+    , These 0 (-5)
+    , These 1 5
+    , These (-1) (-4)
+    , These 2 4
+    , These (-2) (-3)
+    , These 3 3
+    , These (-3) (-2)
+    , These 4 2
+    , These (-4) (-1)
+    , These 5 1
+    , These (-5) 0
+    ]
+  , [ This 6
+    , That 6
+    , These 0 6
+    , These 1 (-5)
+    , These (-1) 5
+    , These 2 (-4)
+    , These (-2) 4
+    , These 3 (-3)
+    , These (-3) 3
+    , These 4 (-2)
+    , These (-4) 2
+    , These 5 (-1)
+    , These (-5) 1
+    , These 6 0
+    ]
+  , ...
+  ]
diff --git a/test/main.hs b/test/main.hs
--- a/test/main.hs
+++ b/test/main.hs
@@ -12,6 +12,7 @@
 import qualified Data.Map as Map
 import qualified Data.Sequence as Seq
 import Numeric.Natural
+import Data.These
 
 import Test.LeanCheck
 import Test.LeanCheck.Instances
@@ -47,4 +48,7 @@
 
   , fails n $ \m1 m2 -> m1 `Map.union` m2 == m2 `Map.union` (m1 :: Map Int Int)
   , holds n $ \m1 -> m1 `Map.union` m1 == (m1 :: Map Int Int)
+
+  , fails n $ \t -> let p  =  uncurry (*) (fromThese 2 3 t) :: Int
+                    in  p `mod` 2 == 0 || p `mod` 3 == 0
   ]
diff --git a/test/sdist b/test/sdist
--- a/test/sdist
+++ b/test/sdist
@@ -2,7 +2,7 @@
 #
 # test/sdist: tests the package generated by "cabal sdist".
 #
-# Copyright (c) 2015-2021 Rudy Matela.
+# Copyright (c) 2015-2024 Rudy Matela.
 # Distributed under the 3-Clause BSD licence.
 
 set -xe
@@ -29,7 +29,11 @@
 tar -tf $pkg | sort --ignore-case --unique > $tmp/ls-cabal-iu
 diff -rud $tmp/ls-cabal-i $tmp/ls-cabal-iu
 
-if [ -d .git ]
+# Check if we have a clone of the repo and git is available
+# The check that we can run git ls-files is needed to avoid:
+# fatal: detected dubious ownership in repository at '/__w/.../hello-haskell'
+# on CI.
+if [ -d .git ] && git --version && git ls-files >/dev/null
 then
 	# Test if files included by cabal are the same as files tracked in git.
 	git ls-files                                         | sort > $tmp/ls-git
diff --git a/test/text.hs b/test/text.hs
--- a/test/text.hs
+++ b/test/text.hs
@@ -12,7 +12,7 @@
 main =
   case elemIndices False (tests 1000) of
   [] -> putStrLn "Tests passed!"
-  is -> putStrLn ("Failed tests:" ++ show is) >> exitFailure
+  is -> putStrLn ("Failed tests:" ++ Prelude.show is) >> exitFailure
 
 tests :: Int -> [Bool]
 tests n =
