diff --git a/.docker/validate-7.10.3.dockerfile b/.docker/validate-7.10.3.dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..7e6ef100f6e6f58810e1d95fc70b2a8a388714c8
--- /dev/null
+++ b/.docker/validate-7.10.3.dockerfile
@@ -0,0 +1,51 @@
+FROM    phadej/ghc:7.10.3-bionic
+
+# We need newer compiler, to install cabal-plan
+RUN     apt-get update
+RUN     apt-get install -y ghc-8.6.5
+
+# Install cabal-plan
+RUN     cabal v2-update
+RUN     cabal v2-install -w /opt/ghc/8.6.5/bin/ghc-8.6.5 cabal-plan --constraint 'cabal-plan ^>=0.6'
+
+# Remove ghc-8.6.5, so it doesn't interfere
+RUN     apt-get remove -y ghc-8.6.5
+
+# We install happy, so it's in the store; we (hopefully) don't use it directly.
+RUN     cabal v2-install happy --constraint 'happy ^>=1.19.12'
+
+# Install some other dependencies
+# Remove $HOME/.ghc so there aren't any environments
+RUN     cabal v2-install -w ghc-7.10.3 --lib \
+          aeson \
+          async \
+          base-compat \
+          base16-bytestring \
+          base64-bytestring \
+          cryptohash-sha256 \
+          Diff \
+          echo \
+          ed25519 \
+          edit-distance \
+          haskell-lexer \
+          HTTP \
+          network \
+          optparse-applicative \
+          pretty-show \
+          regex-compat-tdfa \
+          regex-tdfa \
+          resolv \
+          statistics \
+          tar \
+          tasty \
+          tasty-golden \
+          tasty-hunit \
+          tasty-quickcheck \
+          tree-diff \
+          zlib \
+        && rm -rf $HOME/.ghc
+
+# Validate
+WORKDIR /build
+COPY    . /build
+RUN     sh ./validate.sh -w ghc-7.10.3 -v
diff --git a/.docker/validate-7.8.4.dockerfile b/.docker/validate-7.8.4.dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..83d2e8fc2803ef7f17a1a1a83197a818f4caa98d
--- /dev/null
+++ b/.docker/validate-7.8.4.dockerfile
@@ -0,0 +1,62 @@
+# TODO: change to bionic
+# https://github.com/haskell-CI/haskell-ci/issues/342
+FROM    phadej/ghc:7.8.4-xenial
+
+# We need newer compiler, to install cabal-plan
+RUN     apt-get update
+RUN     apt-get install -y ghc-8.6.5 ghc-7.8.4-dyn
+
+# Install cabal-plan
+RUN     cabal v2-update
+RUN     cabal v2-install -w /opt/ghc/8.6.5/bin/ghc-8.6.5 cabal-plan --constraint 'cabal-plan ^>=0.6'
+
+# Remove ghc-8.6.5, so it doesn't interfere
+RUN     apt-get remove -y ghc-8.6.5
+
+# We install happy, so it's in the store; we (hopefully) don't use it directly.
+RUN     cabal v2-install happy --constraint 'happy ^>=1.19.12'
+
+# Install some other dependencies
+# Remove $HOME/.ghc so there aren't any environments
+RUN     cabal v2-install -w ghc-7.8.4 --lib \
+          aeson \
+          async \
+          base-compat \
+          base16-bytestring \
+          base64-bytestring \
+          cryptohash-sha256 \
+          Diff \
+          echo \
+          ed25519 \
+          edit-distance \
+          haskell-lexer \
+          HTTP \
+          network \
+          optparse-applicative \
+          pretty-show \
+          regex-compat-tdfa \
+          regex-tdfa \
+          statistics \
+          tar \
+          tasty \
+          tasty-golden \
+          tasty-hunit \
+          tasty-quickcheck \
+          tree-diff \
+          zlib \
+	  --constraint="bytestring installed" \
+	  --constraint="binary     installed" \
+	  --constraint="containers installed" \
+	  --constraint="deepseq    installed" \
+	  --constraint="directory  installed" \
+	  --constraint="filepath   installed" \
+	  --constraint="pretty     installed" \
+	  --constraint="process    installed" \
+	  --constraint="time       installed" \
+	  --constraint="unix       installed" \
+        && rm -rf $HOME/.ghc
+
+# Validate
+WORKDIR /build
+COPY    . /build
+RUN     sh ./validate.sh -l -w ghc-7.8.4 -v
diff --git a/.docker/validate-8.0.2.dockerfile b/.docker/validate-8.0.2.dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..10147cd0e877782764e78f1a23d5b75c932bc048
--- /dev/null
+++ b/.docker/validate-8.0.2.dockerfile
@@ -0,0 +1,44 @@
+FROM    phadej/ghc:8.0.2-bionic
+
+# Install cabal-plan
+RUN     cabal v2-update
+RUN     cabal v2-install cabal-plan --constraint 'cabal-plan ^>=0.6'
+
+# We install happy, so it's in the store; we (hopefully) don't use it directly.
+RUN     cabal v2-install happy --constraint 'happy ^>=1.19.12'
+
+# Install some other dependencies
+# Remove $HOME/.ghc so there aren't any environments
+RUN     cabal v2-install -w ghc-8.0.2 --lib \
+          aeson \
+          async \
+          base-compat \
+          base16-bytestring \
+          base64-bytestring \
+          cryptohash-sha256 \
+          Diff \
+          echo \
+          ed25519 \
+          edit-distance \
+          haskell-lexer \
+          HTTP \
+          network \
+          optparse-applicative \
+          pretty-show \
+          regex-compat-tdfa \
+          regex-tdfa \
+          resolv \
+          statistics \
+          tar \
+          tasty \
+          tasty-golden \
+          tasty-hunit \
+          tasty-quickcheck \
+          tree-diff \
+          zlib \
+        && rm -rf $HOME/.ghc
+
+# Validate
+WORKDIR /build
+COPY    . /build
+RUN     sh ./validate.sh -w ghc-8.0.2 -v
diff --git a/.docker/validate-8.2.2.dockerfile b/.docker/validate-8.2.2.dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..e9bb8b904ddbd15d884cb8a39e5522ffcf78453e
--- /dev/null
+++ b/.docker/validate-8.2.2.dockerfile
@@ -0,0 +1,44 @@
+FROM    phadej/ghc:8.2.2-bionic
+
+# Install cabal-plan
+RUN     cabal v2-update
+RUN     cabal v2-install cabal-plan --constraint 'cabal-plan ^>=0.6'
+
+# We install happy, so it's in the store; we (hopefully) don't use it directly.
+RUN     cabal v2-install happy --constraint 'happy ^>=1.19.12'
+
+# Install some other dependencies
+# Remove $HOME/.ghc so there aren't any environments
+RUN     cabal v2-install -w ghc-8.2.2 --lib \
+          aeson \
+          async \
+          base-compat \
+          base16-bytestring \
+          base64-bytestring \
+          cryptohash-sha256 \
+          Diff \
+          echo \
+          ed25519 \
+          edit-distance \
+          haskell-lexer \
+          HTTP \
+          network \
+          optparse-applicative \
+          pretty-show \
+          regex-compat-tdfa \
+          regex-tdfa \
+          resolv \
+          statistics \
+          tar \
+          tasty \
+          tasty-golden \
+          tasty-hunit \
+          tasty-quickcheck \
+          tree-diff \
+          zlib \
+        && rm -rf $HOME/.ghc
+
+# Validate
+WORKDIR /build
+COPY    . /build
+RUN     sh ./validate.sh -w ghc-8.2.2 -v
diff --git a/.docker/validate-8.4.4.dockerfile b/.docker/validate-8.4.4.dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..7b4891399ffa8653f0fc1c991ea6a5e30a07772b
--- /dev/null
+++ b/.docker/validate-8.4.4.dockerfile
@@ -0,0 +1,44 @@
+FROM    phadej/ghc:8.6.5-bionic
+
+# Install cabal-plan
+RUN     cabal v2-update
+RUN     cabal v2-install cabal-plan --constraint 'cabal-plan ^>=0.6'
+
+# We install happy, so it's in the store; we (hopefully) don't use it directly.
+RUN     cabal v2-install happy --constraint 'happy ^>=1.19.12'
+
+# Install some other dependencies
+# Remove $HOME/.ghc so there aren't any environments
+RUN     cabal v2-install -w ghc-8.6.5 --lib \
+          aeson \
+          async \
+          base-compat \
+          base16-bytestring \
+          base64-bytestring \
+          cryptohash-sha256 \
+          Diff \
+          echo \
+          ed25519 \
+          edit-distance \
+          haskell-lexer \
+          HTTP \
+          network \
+          optparse-applicative \
+          pretty-show \
+          regex-compat-tdfa \
+          regex-tdfa \
+          resolv \
+          statistics \
+          tar \
+          tasty \
+          tasty-golden \
+          tasty-hunit \
+          tasty-quickcheck \
+          tree-diff \
+          zlib \
+        && rm -rf $HOME/.ghc
+
+# Validate
+WORKDIR /build
+COPY    . /build
+RUN     sh ./validate.sh -w ghc-8.6.5 -v
diff --git a/Makefile b/Makefile
index 659f72cb0fea7df9fdecf933502c4a30a6026054..2b5d5a69d83aa00faf9a965c68222de7d0c90e76 100644
--- a/Makefile
+++ b/Makefile
@@ -112,9 +112,45 @@ cabal-install-test:
 
 # Docker validation
 
+validate-via-docker-all :
+	@echo "This takes a lot of time"
+	@echo 5
+	@sleep 1
+	@echo 4
+	@sleep 1
+	@echo 3
+	@sleep 1
+	@echo 2
+	@sleep 1
+	@echo 1
+	@sleep 1
+	$(MAKE) validate-via-docker-7.6.3
+	$(MAKE) validate-via-docker-7.8.4
+	$(MAKE) validate-via-docker-7.10.3
+	$(MAKE) validate-via-docker-8.0.2
+	$(MAKE) validate-via-docker-8.2.2
+	$(MAKE) validate-via-docker-8.4.4
+	$(MAKE) validate-via-docker-8.6.5
+	$(MAKE) validate-via-docker-8.8.1
+
 validate-via-docker-7.6.3:
 	docker build -t cabal-validate -f .docker/validate-7.6.3.dockerfile .
 
+validate-via-docker-7.8.4:
+	docker build -t cabal-validate -f .docker/validate-7.8.4.dockerfile .
+
+validate-via-docker-7.10.3:
+	docker build -t cabal-validate -f .docker/validate-7.10.3.dockerfile .
+
+validate-via-docker-8.0.2:
+	docker build -t cabal-validate -f .docker/validate-8.0.2.dockerfile .
+
+validate-via-docker-8.2.2:
+	docker build -t cabal-validate -f .docker/validate-8.2.2.dockerfile .
+
+validate-via-docker-8.4.4:
+	docker build -t cabal-validate -f .docker/validate-8.4.4.dockerfile .
+
 validate-via-docker-8.6.5:
 	docker build -t cabal-validate -f .docker/validate-8.6.5.dockerfile .