diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import Distribution.Simple
-main = defaultMain
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.9.0.2
+version: 1.9.0.3
 license: BSD3
 license-file: LICENSE
 copyright: Copyright: (c) 2018 Vanessa McHale
@@ -38,7 +38,6 @@
     ghc-options: -Wall
     build-depends:
         base >=4.9 && <5,
-        hashable -any,
         language-ats -any,
         shake-ext >=3.0.0.0,
         hs2ats >=0.2.0.1,
diff --git a/src/Development/Shake/ATS/Environment.hs b/src/Development/Shake/ATS/Environment.hs
--- a/src/Development/Shake/ATS/Environment.hs
+++ b/src/Development/Shake/ATS/Environment.hs
@@ -7,7 +7,7 @@
 import qualified Data.Text.Lazy             as TL
 import           Development.Shake.C
 import           Development.Shake.FilePath
-import           System.Environment         (getEnv)
+import           System.Directory
 
 -- | Given a C compiler, return the appropriate directory for its globally
 -- installed artifacts. This is used to keep libraries built for different
@@ -18,7 +18,7 @@
 
 -- | The directory @~/.atspkg@
 pkgHome :: MonadIO m => CCompiler -> m String
-pkgHome cc' = liftIO $ (</> (".atspkg" </> ccToDir cc')) <$> getEnv "HOME"
+pkgHome cc' = liftIO $ getAppUserDataDirectory ("atspkg" </> ccToDir cc')
 
 fixDir :: FilePath -> String -> String
 fixDir p =
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
@@ -60,8 +60,8 @@
         obfDir = takeDirectory (obf -<.> "hs")
         libName = takeBaseName cf
 
-    (v, trDeps) <- liftIO $ getCabalDeps cf
     obf %> \out -> do
+        (v, trDeps) <- liftIO $ getCabalDeps cf
 
         ghcV' <- quietly ghcVersion
         let ghcV = maybe ghcV' (drop 1) suff
@@ -75,7 +75,7 @@
             pkgDir = subdir </> "dist-newstyle" </> "build" </> platform </> "ghc-" ++ ghcV </> libName ++ "-" ++ prettyShow v
 
         dir <- filter endsBuild <$> liftIO (getSubdirs pkgDir)
-        let obj = head dir ++ "/" ++ takeFileName obf
+        let obj = head dir </> takeFileName obf
         liftIO $ copyFile obj out
 
         let hdr = dropExtension obj ++ "_stub.h"
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
@@ -14,7 +14,6 @@
 
 import           Data.Binary         (Binary (..))
 import           Data.Dependency     (Version (..))
-import           Data.Hashable       (Hashable)
 import qualified Data.Text.Lazy      as TL
 import           Development.Shake.C
 import           GHC.Generics        (Generic)
@@ -98,4 +97,4 @@
 data ForeignCabal = ForeignCabal { projectFile :: Maybe TL.Text -- ^ @cabal.project@ file to track
                                  , cabalFile   :: TL.Text -- ^ @.cabal@ file associated with the library
                                  , objectFile  :: TL.Text -- ^ Object file to be generated
-                                 } deriving (Eq, Show, Generic, Binary, Hashable)
+                                 } deriving (Eq, Show, Generic, Binary)
