diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -8,6 +8,7 @@
 import           Codec.Compression.GZip                       (decompress)
 import           Control.Concurrent.ParallelIO.Global
 import           Control.Monad                                (unless, when)
+import           Data.List
 import           Distribution.Simple
 import           Distribution.Simple.Setup
 import           Distribution.Types.GenericPackageDescription
@@ -39,16 +40,18 @@
 
     putStrLn "Setting up ATS dependencies..."
 
-    let libs = zipWith3 buildHelper
+    let libs = zipWith4 buildHelper
             ["ats2-postiats-0.3.8-prelude", "atscntrb-hs-intinf-1.0.6", "atscntrb-libgmp-1.0.4"]
             ["ats-deps/prelude", "ats-deps/contrib/atscntrb-hx-intinf", "ats-deps/contrib/atscntrb-libgmp"]
+            ["ats-deps/prelude/ATS2-Postiats-include-0.3.8/prelude", "ats-deps/contrib/atscntrb-hx-intinf", "ats-deps/contrib/atscntrb-libgmp/SATS"]
             ["https://downloads.sourceforge.net/project/ats2-lang/ats2-lang/ats2-postiats-0.3.8/ATS2-Postiats-include-0.3.8.tgz", "https://registry.npmjs.org/atscntrb-hx-intinf/-/atscntrb-hx-intinf-1.0.6.tgz", "https://registry.npmjs.org/atscntrb-libgmp/-/atscntrb-libgmp-1.0.4.tgz" ]
     parallel_ libs >> stopGlobalPool
 
     pure emptyHookedBuildInfo
 
-buildHelper libName dirName url = do
+buildHelper libName dirName needed url = do
 
+    -- FIXME not discerning enough!
     needsSetup <- not <$> doesDirectoryExist dirName
 
     when needsSetup $ do
@@ -65,5 +68,5 @@
         needsMove <- doesDirectoryExist (dirName ++ "/package")
         when needsMove $ do
             renameDirectory (dirName ++ "/package") "tempdir"
-            removeDirectoryRecursive dirName
+            removeDirectory dirName
             renameDirectory "tempdir" dirName
diff --git a/cbits/number-theory.c b/cbits/number-theory.c
--- a/cbits/number-theory.c
+++ b/cbits/number-theory.c
@@ -1,7 +1,7 @@
 /*
 **
 ** The C code is generated by [ATS/Postiats-0-3-8]
-** The starting compilation time is: 2018-1-4:  2h:26m
+** The starting compilation time is: 2018-1-4:  9h: 3m
 **
 */
 
diff --git a/cbits/numerics.c b/cbits/numerics.c
--- a/cbits/numerics.c
+++ b/cbits/numerics.c
@@ -1,7 +1,7 @@
 /*
 **
 ** The C code is generated by [ATS/Postiats-0-3-8]
-** The starting compilation time is: 2018-1-4:  2h:26m
+** The starting compilation time is: 2018-1-4:  9h: 3m
 **
 */
 
diff --git a/fast-arithmetic.cabal b/fast-arithmetic.cabal
--- a/fast-arithmetic.cabal
+++ b/fast-arithmetic.cabal
@@ -1,5 +1,5 @@
 name:                fast-arithmetic
-version:             0.1.0.2
+version:             0.1.0.3
 synopsis:            Fast number-theoretic functions.
 description:         Fast number-theoretic code with a high level of safety guaranteed by ATS.
 homepage:            https://github.com/vmchale/fast-arithmetic#readme
