diff --git a/app/Main.hs b/app/Main.hs
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -1,7 +1,7 @@
 module Main (main) where
 
 import           Control.Monad
-import           Data.Semigroup hiding (getAll)
+import           Data.Semigroup        hiding (getAll)
 import           Data.Version          (showVersion)
 import           Language.C.Dependency
 import           Options.Applicative
diff --git a/cdeps.cabal b/cdeps.cabal
--- a/cdeps.cabal
+++ b/cdeps.cabal
@@ -1,6 +1,6 @@
 cabal-version: 1.18
 name: cdeps
-version: 0.1.1.2
+version: 0.1.1.3
 license: BSD3
 license-file: LICENSE
 copyright: Copyright: (c) 2018 Vanessa McHale
@@ -37,7 +37,7 @@
     other-extensions: OverloadedStrings
     ghc-options: -Wall
     build-depends:
-        base >=4.9 && <5,
+        base >=4.8 && <5,
         text -any,
         bytestring -any,
         array -any,
@@ -47,6 +47,11 @@
     if flag(development)
         ghc-options: -Werror
     
+    if !impl(ghc >=8.0)
+        build-depends:
+            transformers -any,
+            semigroups -any
+    
     if impl(ghc >=8.0)
         ghc-options: -Wincomplete-uni-patterns -Wincomplete-record-updates
     
@@ -68,7 +73,7 @@
     if flag(no-executable)
         buildable: False
     
-    if flag(development)
+    if (flag(development) && impl(ghc <8.4))
         ghc-options: -Werror
     
     if impl(ghc >=8.0)
diff --git a/src/Language/C/Dependency.x b/src/Language/C/Dependency.x
--- a/src/Language/C/Dependency.x
+++ b/src/Language/C/Dependency.x
@@ -59,6 +59,7 @@
 getIncludes :: BSL.ByteString -> Either String [FilePath]
 getIncludes = fmap extractDeps . lexC
 
+-- TODO file name??
 nested_comment :: Alex Token
 nested_comment = go 1 =<< alexGetInput
 
@@ -87,7 +88,7 @@
                 alexError ("Error in nested comment at line " ++ show line ++ ", column " ++ show col)
 
 extractDeps :: [Token] -> [FilePath]
-extractDeps [] = mempty
+extractDeps [] = []
 extractDeps (Include:StringTok s:xs) = toInclude s : extractDeps xs
 extractDeps (_:xs) = extractDeps xs
 
@@ -101,7 +102,7 @@
 loop = do
     tok' <- alexMonadScan
     case tok' of
-        End -> pure mempty
+        End -> pure []
         _ -> (tok' :) <$> loop
 
 includes' :: BSL.ByteString -> [FilePath]
@@ -120,7 +121,7 @@
             -> m [FilePath]
 getCDepends incls src = liftIO $ do
     contents <- BSL.readFile src
-    envPath <- fromMaybe mempty <$> lookupEnv "C_INCLUDE_PATH"
+    envPath <- fromMaybe "" <$> lookupEnv "C_INCLUDE_PATH"
     let incl = includes' contents
         dir = takeDirectory src
         allDirs = dir : incls ++ split envPath
