diff --git a/pandoc.cabal b/pandoc.cabal
index 2a99fc2a2..a3e62d5cf 100644
--- a/pandoc.cabal
+++ b/pandoc.cabal
@@ -414,7 +414,15 @@ library
      other-modules: Text.Pandoc.Data
   if os(windows)
     cpp-options:      -D_WINDOWS
-  ghc-options:   -Wall -fno-warn-unused-do-bind
+  ghc-options:     -Wall -fno-warn-unused-do-bind
+  if impl(ghc > 8.0)
+    ghc-options:     -Wincomplete-record-updates
+                     -Wnoncanonical-monad-instances
+                     -Wnoncanonical-monadfail-instances
+  if impl(ghc > 8.4)
+    ghc-options:     -Wincomplete-uni-patterns
+                     -Widentities
+                     -Werror=missing-home-modules
   default-language: Haskell2010
   other-extensions: NoImplicitPrelude
   hs-source-dirs:  src