diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d6f9b81448787abb7b8de740833ac631229c0e86..46939c575a06098ab9dfe0d2ac4ee55ba1ac00cf 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,5 +3,5 @@ build:
   tags:
     - "x86_64-linux"
   script:
-    - "cabal update && cabal build -w $GHC"
+    - "cabal update && cabal build -f ci-build -w $GHC"
     - "HPC=hpc cabal test -w $GHC"
diff --git a/hpc-bin.cabal b/hpc-bin.cabal
index 44dd18f05464cf2e9d0204f8ff13cd765ee99caa..512f5dc0a939d4d748707a5470431189d461cbf0 100644
--- a/hpc-bin.cabal
+++ b/hpc-bin.cabal
@@ -23,6 +23,10 @@ Flag build-tool-depends
     Description: Use build-tool-depends
     Default: True
 
+Flag ci-build
+    Description: Use -Wall -Werror -Wcompat
+    Default: False
+
 executable hpc
     default-language: Haskell2010
     hs-source-dirs:
@@ -46,6 +50,9 @@ executable hpc
                    Paths_hpc_bin
     autogen-modules: Paths_hpc_bin
 
+    if flag(ci-build)
+      ghc-options: -Wall -Wcompat -Werror
+
     build-depends: base       >= 4   && < 5,
                    deepseq    >= 1.4.4 && < 1.6,
                    directory  >= 1   && < 1.4,
diff --git a/src/Trace/Hpc/Combine.hs b/src/Trace/Hpc/Combine.hs
index 95da809fb6a0ae7d4989e918a94f97b912ddbfe5..4b38bab068c4e51a391aef34dc843ee932798898 100644
--- a/src/Trace/Hpc/Combine.hs
+++ b/src/Trace/Hpc/Combine.hs
@@ -5,10 +5,6 @@
 -- License            : BSD-3-Clause
 module Trace.Hpc.Combine (combinePlugin) where
 
-import Control.DeepSeq
-import Control.Monad
-import qualified Data.Map as Map
-import qualified Data.Set as Set
 import Trace.Hpc.Flags
 import Trace.Hpc.Plugin
 import Trace.Hpc.Tix
diff --git a/src/Trace/Hpc/Flags.hs b/src/Trace/Hpc/Flags.hs
index 361f91f2579a07cd30190891bb3a49022bea9a99..45dfe8b263cb9e855f39d49cbf16bc3a9748a520 100644
--- a/src/Trace/Hpc/Flags.hs
+++ b/src/Trace/Hpc/Flags.hs
@@ -8,7 +8,6 @@ module Trace.Hpc.Flags where
 import Data.Char
 import qualified Data.Set as Set
 import System.Console.GetOpt
-import System.Exit
 import System.FilePath
 import Trace.Hpc.Mix
 import Trace.Hpc.Tix
diff --git a/src/Trace/Hpc/Utils.hs b/src/Trace/Hpc/Utils.hs
index bf0b608452d9aa30882b085a6460072ee46b200c..e851aa1bc1dc4780191b45761ad38ed24c2e1127 100644
--- a/src/Trace/Hpc/Utils.hs
+++ b/src/Trace/Hpc/Utils.hs
@@ -4,7 +4,6 @@
 -- License            : BSD-3-Clause
 module Trace.Hpc.Utils where
 
-import Control.DeepSeq
 import qualified Data.Map as Map
 import qualified Data.Set as Set
 import System.FilePath