diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # cdeps
 
+## 0.1.3.1
+
+  * Pass `-A5M` to the command-line executable, making performance better
+
 ## 0.1.3.0
 
   * Add `getIncludesStr` function
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright Vanessa McHale (c) 2018-2019
+Copyright Vanessa McHale (c) 2018-2020
 
 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
 
diff --git a/app/Main.hs b/app/Main.hs
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -1,11 +1,10 @@
 module Main (main) where
 
-import           Control.Monad
-import           Data.Bool             (bool)
-import           Data.Foldable
-import           Data.Semigroup        hiding (getAll)
+import           Control.Monad         ((<=<))
+import           Data.Foldable         (traverse_)
+import           Data.Semigroup        ((<>))
 import           Data.Version          (showVersion)
-import           Language.C.Dependency
+import           Language.C.Dependency (getAll, getCDepends)
 import           Options.Applicative
 import           Paths_cdeps           (version)
 
@@ -45,7 +44,9 @@
 
 run :: Command -> IO ()
 run (Dump cSrc is nr) = (traverse_ putStrLn <=< go is) cSrc
-    where go = bool getAll getCDepends nr
+    where go = if nr
+            then getCDepends
+            else getAll
 
 versionInfo :: Parser (a -> a)
 versionInfo = infoOption ("cdeps version: " ++ showVersion version) (short 'V' <> long "version" <> help "Show version")
diff --git a/cdeps.cabal b/cdeps.cabal
--- a/cdeps.cabal
+++ b/cdeps.cabal
@@ -1,9 +1,9 @@
 cabal-version:   1.18
 name:            cdeps
-version:         0.1.3.0
+version:         0.1.3.1
 license:         BSD3
 license-file:    LICENSE
-copyright:       Copyright: (c) 2018-2019 Vanessa McHale
+copyright:       Copyright: (c) 2018-2020 Vanessa McHale
 maintainer:      vamchale@gmail.com
 author:          Vanessa McHale
 synopsis:        Extract dependencies from C code.
@@ -53,7 +53,7 @@
     hs-source-dirs:   app
     other-modules:    Paths_cdeps
     default-language: Haskell2010
-    ghc-options:      -Wall
+    ghc-options:      -Wall -rtsopts -with-rtsopts=-A4M
     build-depends:
         base >=4.9 && <5,
         cdeps -any,
@@ -70,7 +70,7 @@
     main-is:          Spec.hs
     hs-source-dirs:   test
     default-language: Haskell2010
-    ghc-options:      -threaded -rtsopts -with-rtsopts=-N -Wall
+    ghc-options:      -threaded -rtsopts "-with-rtsopts=-N -K1K" -Wall
     build-depends:
         base -any,
         cdeps -any,
@@ -87,6 +87,7 @@
     main-is:          Bench.hs
     hs-source-dirs:   bench
     default-language: Haskell2010
+    ghc-options:      -Wall -rtsopts -with-rtsopts=-A4M
     build-depends:
         base -any,
         cdeps -any,
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
@@ -9,7 +9,6 @@
 
 import Control.Monad (filterM)
 import qualified Data.ByteString.Lazy as BSL
-import Data.Foldable (fold)
 import Data.List (groupBy, group, sort)
 import Data.Maybe (fromMaybe)
 import qualified Data.Text.Lazy as TL
@@ -119,7 +118,7 @@
     deps <- getCDepends incls src
     level <- traverse (getAll incls) deps
     let rmdups = fmap head . group . sort
-        next = rmdups (fold (deps : level))
+        next = rmdups (concat (deps : level))
     pure $ if null level then deps else next
 
 }
