diff --git a/shake-ats.cabal b/shake-ats.cabal
--- a/shake-ats.cabal
+++ b/shake-ats.cabal
@@ -1,6 +1,6 @@
 cabal-version: 1.18
 name: shake-ats
-version: 1.8.0.1
+version: 1.8.0.2
 license: BSD3
 license-file: LICENSE
 copyright: Copyright: (c) 2018 Vanessa McHale
diff --git a/src/Development/Shake/ATS.hs b/src/Development/Shake/ATS.hs
--- a/src/Development/Shake/ATS.hs
+++ b/src/Development/Shake/ATS.hs
@@ -51,6 +51,7 @@
                              , hsFile
                              , strip
                              , solver
+                             , linkATSLib
                              ) where
 
 import           Control.Arrow
@@ -106,7 +107,7 @@
 -- Copy source files to the appropriate place. This is necessary because
 -- @#include@s in ATS are weird.
 copySources :: ATSToolConfig -> [FilePath] -> Action ()
-copySources (ATSToolConfig home' _ _ _ _ _) sources =
+copySources (ATSToolConfig home' _ _ _ _ _ _) sources =
     forM_ sources $ \dep -> do
         liftIO $ createDirectoryIfMissing True (home' ++ "/" ++ takeDirectory dep)
         liftIO $ copyFile dep (home' ++ "/" ++ dep)
@@ -140,10 +141,11 @@
 cconfig :: MonadIO m => ATSToolConfig -> [String] -> Bool -> [String] -> m CConfig
 cconfig tc libs' gc' extras = do
     let h = _patsHome tc
-    let cc' = _cc tc
+        cc' = _cc tc
+        f = bool id ("atslib":) (_linkATSLib tc)
     h' <- pkgHome cc'
     -- FIXME only bother with atslib if it's unnecessary?
-    let libs'' = ("atslib" :) $ bool libs' ("gc" : libs') gc'
+    let libs'' = f $ bool libs' ("gc" : libs') gc'
     pure $ CConfig [h ++ "/ccomp/runtime/", h, h' ++ "include", ".atspkg/contrib"] libs'' [h' ++ "lib", _patsHome tc ++ "/ccomp/atslib/lib"] extras (_linkStatic tc)
 
 patsEnv :: ATSToolConfig -> FilePath -> [CmdOption]
diff --git a/src/Development/Shake/ATS/Type.hs b/src/Development/Shake/ATS/Type.hs
--- a/src/Development/Shake/ATS/Type.hs
+++ b/src/Development/Shake/ATS/Type.hs
@@ -34,6 +34,7 @@
                                   , hsFile
                                   , strip
                                   , solver
+                                  , linkATSLib
                                   ) where
 
 import           Control.Lens
@@ -91,7 +92,7 @@
                                    , _cc           :: CCompiler -- ^ C compiler to be used
                                    , _linkStatic   :: Bool -- ^ Force static linking
                                    , _solver       :: Solver
-                                   -- , _linkATSLib :: Bool -- ^ Whether to link against atslib
+                                   , _linkATSLib   :: Bool -- ^ Whether to link against atslib
                                    } deriving (Generic, Binary)
 
 data HATSGen = HATSGen { satsFile :: FilePath -- ^ @.sats@ file containing type definitions
