diff --git a/app/Main.hs b/app/Main.hs
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -2,7 +2,6 @@
 
 import           Control.Monad
 import           Data.Foldable
-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.4
+version: 0.1.1.5
 license: BSD3
 license-file: LICENSE
 copyright: Copyright: (c) 2018 Vanessa McHale
@@ -61,11 +61,11 @@
     default-language: Haskell2010
     ghc-options: -Wall
     build-depends:
-        base -any,
+        base >=4.11 && <5,
         cdeps -any,
         optparse-applicative -any
     
-    if (flag(development) && impl(ghc <8.4))
+    if flag(development)
         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
@@ -14,7 +14,7 @@
 import qualified Data.Text.Lazy as TL
 import Data.Text.Lazy.Encoding (decodeUtf8)
 import qualified Data.ByteString.Lazy as BSL
-import System.FilePath (takeDirectory)
+import System.FilePath ((</>), takeDirectory)
 import System.Environment (lookupEnv)
 import Control.Monad
 
@@ -126,7 +126,7 @@
     let incl = includes' contents
         dir = takeDirectory src
         allDirs = dir : incls ++ split envPath
-    filterM doesFileExist ((++) <$> allDirs <*> incl)
+    filterM doesFileExist ((</>) <$> allDirs <*> incl)
 
 -- | Get transitive dependencies of a C source file.
 getAll :: MonadIO m
