diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # shake-ats
 
+## 1.10.2.2
+
+  * `genLinks` calls `traced` for better profiling
+
 ## 1.10.2.1
 
   * Use oracle to track `HsCompiler` in rules
diff --git a/shake-ats.cabal b/shake-ats.cabal
--- a/shake-ats.cabal
+++ b/shake-ats.cabal
@@ -1,13 +1,12 @@
 cabal-version: 1.18
 name: shake-ats
-version: 1.10.2.1
+version: 1.10.2.2
 license: BSD3
 license-file: LICENSE
-copyright: Copyright: (c) 2018 Vanessa McHale
+copyright: Copyright: (c) 2018-2019 Vanessa McHale
 maintainer: vamchale@gmail.com
 author: Vanessa McHale
-tested-with: ghc ==8.4.4 ghc ==8.2.2 ghc ==8.6.3
-homepage: https://github.com/vmchale/shake-ats#readme
+tested-with: ghc ==8.4.4 ghc ==8.6.5
 synopsis: Utilities for building ATS projects with shake
 description:
     Various helper functions for building [ATS](http://www.ats-lang.org/) with the [shake](http://shakebuild.com/) library
@@ -17,8 +16,9 @@
                  CHANGELOG.md
 
 source-repository head
-    type: darcs
-    location: https://hub.darcs.net/vmchale/ats
+    type: git
+    location: git@github.com:vmchale/atspkg.git
+    subdir: shake-ats
 
 flag development
     description:
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
@@ -49,7 +49,7 @@
 import           Development.Shake.FilePath
 import           Development.Shake.Version
 import           Language.ATS
-import           System.Directory                  (copyFile, createDirectoryIfMissing, doesFileExist)
+import           System.Directory                  (createDirectoryIfMissing, doesFileExist)
 import           System.Environment                (getEnv)
 import           System.Exit                       (ExitCode (ExitSuccess))
 
@@ -96,7 +96,7 @@
 copySources ATSToolConfig{..} sources =
     forM_ sources $ \dep -> do
         liftIO $ createDirectoryIfMissing True (_patsHome </> takeDirectory dep)
-        liftIO $ copyFile dep (_patsHome </> dep)
+        copyFile' dep (_patsHome </> dep)
 
 makeCFlags :: [String] -- ^ Inputs
            -> [ForeignCabal] -- ^ Haskell libraries
@@ -203,6 +203,7 @@
         cconfig'' <- cconfig _toolConfig _libs _gc (makeCFlags _cFlags _hsLibs ghcV' _gc)
 
         unit $ g _tgtType (_cc _toolConfig) (h' cTargets) _binTarget cconfig''
+        -- TODO: use oracle?
         bool (pure ()) (stripA _binTarget (_cc _toolConfig)) _strip
 
 -- | Generate C code from ATS code.
diff --git a/src/Development/Shake/ATS/Rules.hs b/src/Development/Shake/ATS/Rules.hs
--- a/src/Development/Shake/ATS/Rules.hs
+++ b/src/Development/Shake/ATS/Rules.hs
@@ -35,7 +35,7 @@
 
 genLinks :: FilePath -> FilePath -> Rules ()
 genLinks dats link =
-    link %> \out -> liftIO $ do
+    link %> \out -> traced "genLinks" $ do
         contents <- readFile dats
         let proc = generateLinks contents
         either printErr (flip writeFile out) proc
@@ -81,10 +81,10 @@
 
         dir <- filter endsBuild <$> liftIO (getSubdirs pkgDir)
         let obj = head dir </> takeFileName obf
-        liftIO $ copyFile obj out
+        copyFile' obj out
 
         let hdr = dropExtension obj ++ "_stub.h"
-        liftIO $ copyFile hdr (takeDirectory out </> takeFileName hdr)
+        copyFile' hdr (takeDirectory out </> takeFileName hdr)
 cabalForeign _ _ = error "HsCompiler must be GHC"
 
 -- | Build a @.lats@ file using @atslex@.
