diff --git a/app/Main.hs b/app/Main.hs
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -5,16 +5,16 @@
 
 import           Control.Composition
 import           Control.Concurrent.ParallelIO.Global
-import           Control.Lens                         hiding (List, argument)
 import           Control.Monad
 import           Data.Bool                            (bool)
-import           Data.Maybe                           (fromMaybe)
+import           Data.Maybe                           (fromMaybe, isNothing)
 import           Data.Semigroup                       (Semigroup (..))
 import qualified Data.Text.Lazy                       as TL
 import           Data.Version                         hiding (Version (..))
 import           Development.Shake.ATS
 import           Development.Shake.FilePath
 import           Language.ATS.Package
+import           Lens.Micro
 import           Options.Applicative
 import           System.Directory
 import           System.IO.Temp                       (withSystemTempDirectory)
@@ -202,7 +202,7 @@
 main = execParser wrapper >>= run
 
 runHelper :: Bool -> Bool -> Bool -> [String] -> Maybe String -> Int -> IO ()
-runHelper rba lint tim rs tgt v = g . bool x y =<< check Nothing
+runHelper rba lint tim rs tgt v = g . bool x y . (&& isNothing tgt) =<< check Nothing
     where g xs = mkPkg rba lint tim xs rs tgt v >> stopGlobalPool
           y = mempty
           x = [buildAll v tgt Nothing]
diff --git a/ats-pkg.cabal b/ats-pkg.cabal
--- a/ats-pkg.cabal
+++ b/ats-pkg.cabal
@@ -1,6 +1,6 @@
 cabal-version: 1.18
 name: ats-pkg
-version: 2.10.1.5
+version: 2.10.1.8
 license: BSD3
 license-file: LICENSE
 copyright: Copyright: (c) 2018 Vanessa McHale
@@ -82,6 +82,7 @@
                       DerivingStrategies
     ghc-options: -Wall -Wincomplete-uni-patterns
                  -Wincomplete-record-updates
+    build-tools: cpphs
     build-depends:
         base >=4.9 && <5,
         http-client -any,
@@ -100,9 +101,8 @@
         hashable -any,
         containers -any,
         parallel-io -any,
-        unix -any,
         mtl -any,
-        dhall >=1.13.0,
+        dhall >=1.14.0,
         ansi-wl-pprint -any,
         shake-ats >=1.8.0.0,
         shake-ext >=2.6.0.0,
@@ -110,10 +110,15 @@
         zip-archive -any,
         ansi-wl-pprint -any,
         binary -any,
-        lens -any,
+        microlens -any,
+        microlens-th -any,
         dependency -any,
         filemanip -any
     
+    if !os(windows)
+        build-depends:
+            unix -any
+    
     if (flag(development) && impl(ghc <8.4))
         ghc-options: -Werror
 
@@ -139,7 +144,7 @@
             ats-pkg -any,
             optparse-applicative -any,
             shake-ats -any,
-            lens -any,
+            microlens -any,
             temporary -any,
             directory -any,
             composition-prelude -any,
diff --git a/dhall/atslib.dhall b/dhall/atslib.dhall
--- a/dhall/atslib.dhall
+++ b/dhall/atslib.dhall
@@ -1,7 +1,7 @@
 {- Dhall prelude imports -}
-let map = https://ipfs.io/ipfs/QmQ8w5PLcsNz56dMvRtq54vbuPe9cNnCCUXAQp6xLc6Ccx/Prelude/List/map
+let map = http://hackage.haskell.org/package/dhall-1.14.0/src/Prelude/List/map
 in
-let concat = https://ipfs.io/ipfs/QmQ8w5PLcsNz56dMvRtq54vbuPe9cNnCCUXAQp6xLc6Ccx/Prelude/List/concat
+let concat = http://hackage.haskell.org/package/dhall-1.14.0/src/Prelude/List/concat
 in
 
 {- ATSPackage parts -}
@@ -40,30 +40,30 @@
 
 let atslib =
   λ(compilerVersion : List Integer) →
-  λ(libVersion : List Integer) →
-  prelude.default ⫽
-    { libraries =
-      [
-        prelude.staticLib ⫽
-        { libTarget = "lib/ats2-postiats-${prelude.showVersion libVersion}/ccomp/atslib/lib/libatslib.a"
-        , name = "atslib"
-        , src =
-          concat Text
-            [ mapPre [ "bool", "integer", "basics", "pointer", "integer_long", "integer_short", "integer_size", "char", "float", "string", "strptr", "integer_ptr", "integer_fixed", "filebas" ]
-            , mapC [ "math", "float", "errno", "fcntl", "dirent", "stdio", "stdlib", "string", "strings", "time", "unistd" ]
-            , mapML [ "list0", "option0", "array0", "matrix0", "string", "strarr", "gvalue", "dynarray", "hashtblref", "filebas", "filebas_dirent" ]
-            ]
-        , includes = ([] : List Text)
-        }
-      , prelude.staticLib ⫽
-        { libTarget = "lib/ats2-postiats-${prelude.showVersion libVersion}/ccomp/atslib/lib/libatsopt.a"
-        , name = "atsopt"
-        , src = mapUtil [ "main", "print", "util" ]
+    λ(libVersion : List Integer) →
+      prelude.default ⫽
+        { libraries =
+          [
+            prelude.staticLib ⫽
+            { libTarget = "target/libatslib.a"
+            , name = "atslib"
+            , src =
+              concat Text
+                [ mapPre [ "bool", "integer", "basics", "pointer", "integer_long", "integer_short", "integer_size", "char", "float", "string", "strptr", "integer_ptr", "integer_fixed", "filebas" ]
+                , mapC [ "math", "float", "errno", "fcntl", "dirent", "stdio", "stdlib", "string", "strings", "time", "unistd" ]
+                , mapML [ "list0", "option0", "array0", "matrix0", "string", "strarr", "gvalue", "dynarray", "hashtblref", "filebas", "filebas_dirent" ]
+                ]
+            , includes = ([] : List Text)
+            }
+          , prelude.staticLib ⫽
+            { libTarget = "target/libatsopt.a"
+            , name = "atsopt"
+            , src = mapUtil [ "main", "print", "util" ]
+            }
+          ]
+        , cflags = [ "-fPIC" ]
+        , compiler = compilerVersion
         }
-      ]
-    , cflags = [ "-fPIC" ]
-    , compiler = compilerVersion
-    }
 in
 
 atslib [0,3,10] [0,3,9]
diff --git a/man/atspkg.1 b/man/atspkg.1
--- a/man/atspkg.1
+++ b/man/atspkg.1
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pandoc 2.2
+.\" Automatically generated by Pandoc 2.2.1
 .\"
 .TH "atspkg (1)" "" "" "" ""
 .hy
diff --git a/src/Language/ATS/Package/Compiler.hs b/src/Language/ATS/Package/Compiler.hs
--- a/src/Language/ATS/Package/Compiler.hs
+++ b/src/Language/ATS/Package/Compiler.hs
@@ -89,7 +89,6 @@
 install v' tgt' als v cd =
     withCompiler "Installing" v >>
     silentCreateProcess v' ((proc "make" ["install"]) { cwd = Just cd }) >>
-    writeFile (cd ++ "/done") "" >>
     maybe mempty (libInstall als cd) tgt'
 
 configure :: Verbosity -> FilePath -> Version -> FilePath -> IO ()
diff --git a/src/Language/ATS/Package/Dependency.hs b/src/Language/ATS/Package/Dependency.hs
--- a/src/Language/ATS/Package/Dependency.hs
+++ b/src/Language/ATS/Package/Dependency.hs
@@ -41,7 +41,7 @@
           -> IO ()
 fetchDeps v cc' setup' deps cdeps atsBld cfgPath als b' =
 
-    unless (null deps && null cdeps && null atsBld && b') $ do
+    unless (null deps && null cdeps && null atsBld && b' && False) $ do
 
         putStrLn "Resolving dependencies..."
 
diff --git a/src/Quaalude.cpphs b/src/Quaalude.cpphs
new file mode 100644
--- /dev/null
+++ b/src/Quaalude.cpphs
@@ -0,0 +1,172 @@
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+
+module Quaalude ( hex
+                , bool
+                , intersperse
+                , transpose
+                , sortBy
+                , void
+                , unless
+                , when
+                , join
+                , fold
+                , zipWithM_
+                , zipWithM
+                , filterM
+                , encode
+                , decode
+                , fromMaybe
+                , isPrefixOf
+                , isSuffixOf
+                , on
+                , both
+                , (***)
+                , (&&&)
+                , (<=<)
+                , (<>)
+                , first
+                , second
+                , getEnv
+                , exitWith
+                , showVersion
+                , ExitCode (ExitSuccess)
+                , MonadIO (..)
+                -- * "System.Process.Ext" reëxports
+                , silentCreateProcess
+                -- * "Data.Text.Lazy" reëxports
+                , Text
+                , pack
+                , unpack
+                -- * "Control.Composition" reëxports
+                , biaxe
+                , (.*)
+                , (.**)
+                , thread
+                -- * Dhall reëxports
+                , Interpret
+                , Inject
+                , Generic
+                , Binary
+                , input
+                , auto
+                , detailed
+                -- * Shake reëxports
+                , Rules
+                , Action
+                , command
+                , command_
+                , (%>)
+                , need
+                , want
+                , shake
+                , Rebuild (..)
+                , (~>)
+                , cmd
+                , cmd_
+                , ShakeOptions (..)
+                , shakeOptions
+                , copyFile'
+                , Change (..)
+                , Verbosity (..)
+                , removeFilesAfter
+                , Lint (..)
+                , takeBaseName
+                , takeFileName
+                , takeDirectory
+                , (-<.>)
+                -- * "System.Posix" reëxports
+                , setFileMode
+                , ownerModes
+                -- * "Network.HTTP.Client.TLS" reëxports
+                , tlsManagerSettings
+                -- "Network.HTTP.Client" reëxports
+                , newManager
+                , parseRequest
+                , httpLbs
+                , Response (..)
+                , Request (method, redirectCount)
+                -- * ByteString reëxports
+                , ByteString
+                -- * Helpers for pretty-printing
+                , (<#>)
+                -- * "Text.PrettyPrint.ANSI.Leijen" reëxports
+                , (<+>)
+                , text
+                , punctuate
+                , dullred
+                , linebreak
+                , dullyellow
+                , hardline
+                , hang
+                , indent
+                , putDoc
+                , Pretty (pretty)
+                , module X
+                -- Lens exports
+                , over
+                , _Just
+                , view
+                , _1
+                , _2
+                , _4
+                , makeLensesFor
+                , makeLenses
+                , each
+                , (&)
+                , (%~)
+                ) where
+
+import           Control.Arrow                hiding ((<+>))
+import           Control.Composition
+import           Control.Monad
+import           Control.Monad.IO.Class
+import           Data.Binary
+import           Data.Bool                    (bool)
+import           Data.ByteString.Lazy         (ByteString)
+import           Data.Foldable                (fold)
+import           Data.List
+import           Data.Maybe                   (fromMaybe)
+import           Data.Semigroup
+import           Data.Text.Lazy               (pack, unpack)
+import           Data.Version                 (showVersion)
+import           Development.Shake            hiding (getEnv)
+import           Development.Shake.FilePath
+import           Dhall                        hiding (bool)
+import           Lens.Micro                   hiding (both)
+import           Lens.Micro.Extras
+import           Lens.Micro.TH
+import           Network.HTTP.Client
+import           Network.HTTP.Client.TLS      (tlsManagerSettings)
+import           Numeric                      (showHex)
+import           System.Directory             as X
+import           System.Environment           (getEnv)
+import           System.Exit                  (ExitCode (ExitSuccess), exitWith)
+#ifndef mingw32_HOST_OS
+import           System.Posix.Files
+#endif
+import           System.Process               as X
+import           System.Process.Ext
+import           Text.PrettyPrint.ANSI.Leijen hiding (bool, (<$>), (<>))
+
+infixr 5 <#>
+
+#ifdef mingw32_HOST_OS
+setFileMode :: a -> b -> IO ()
+setFileMode _ _ = mempty
+ownerModes = undefined
+#endif
+
+hex :: Int -> String
+hex = flip showHex mempty
+
+instance Semigroup a => Semigroup (Action a) where
+    (<>) a b = (<>) <$> a <*> b
+
+instance (Semigroup a, Monoid a) => Monoid (Action a) where
+    mempty = pure mempty
+    mappend = (<>)
+
+-- | Same as "Text.PrettyPrint.ANSI.Leijen"'s @<$>@, but doesn't clash with the
+-- prelude.
+(<#>) :: Doc -> Doc -> Doc
+(<#>) a b = a <> line <> b
diff --git a/src/Quaalude.hs b/src/Quaalude.hs
deleted file mode 100644
--- a/src/Quaalude.hs
+++ /dev/null
@@ -1,162 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-
-module Quaalude ( hex
-                , bool
-                , intersperse
-                , transpose
-                , sortBy
-                , void
-                , unless
-                , when
-                , join
-                , fold
-                , zipWithM_
-                , zipWithM
-                , filterM
-                , encode
-                , decode
-                , fromMaybe
-                , isPrefixOf
-                , isSuffixOf
-                , on
-                , both
-                , (***)
-                , (&&&)
-                , (<=<)
-                , (<>)
-                , first
-                , second
-                , getEnv
-                , exitWith
-                , showVersion
-                , ExitCode (ExitSuccess)
-                , MonadIO (..)
-                -- * "System.Process.Ext" reëxports
-                , silentCreateProcess
-                -- * "Data.Text.Lazy" reëxports
-                , Text
-                , pack
-                , unpack
-                -- * "Control.Composition" reëxports
-                , biaxe
-                , (.*)
-                , (.**)
-                , thread
-                -- * Dhall reëxports
-                , Interpret
-                , Inject
-                , Generic
-                , Binary
-                , input
-                , auto
-                , detailed
-                -- * Shake reëxports
-                , Rules
-                , Action
-                , command
-                , command_
-                , (%>)
-                , need
-                , want
-                , shake
-                , Rebuild (..)
-                , (~>)
-                , cmd
-                , cmd_
-                , ShakeOptions (..)
-                , shakeOptions
-                , copyFile'
-                , Change (..)
-                , Verbosity (..)
-                , removeFilesAfter
-                , Lint (..)
-                , takeBaseName
-                , takeFileName
-                , takeDirectory
-                , (-<.>)
-                -- * "System.Posix" reëxports
-                , setFileMode
-                , ownerModes
-                -- * "Network.HTTP.Client.TLS" reëxports
-                , tlsManagerSettings
-                -- "Network.HTTP.Client" reëxports
-                , newManager
-                , parseRequest
-                , httpLbs
-                , Response (..)
-                , Request (method, redirectCount)
-                -- * ByteString reëxports
-                , ByteString
-                -- * Helpers for pretty-printing
-                , (<#>)
-                -- * "Text.PrettyPrint.ANSI.Leijen" reëxports
-                , (<+>)
-                , text
-                , punctuate
-                , dullred
-                , linebreak
-                , dullyellow
-                , hardline
-                , hang
-                , indent
-                , putDoc
-                , Pretty (pretty)
-                , module X
-                -- Lens exports
-                , over
-                , _Just
-                , view
-                , _1
-                , _2
-                , _4
-                , makeLensesFor
-                , makeLenses
-                , each
-                , (&)
-                , (%~)
-                ) where
-
-import           Control.Arrow                hiding ((<+>))
-import           Control.Composition
-import           Control.Lens                 hiding (both)
-import           Control.Monad
-import           Control.Monad.IO.Class
-import           Data.Binary
-import           Data.Bool                    (bool)
-import           Data.ByteString.Lazy         (ByteString)
-import           Data.Foldable                (fold)
-import           Data.List
-import           Data.Maybe                   (fromMaybe)
-import           Data.Semigroup
-import           Data.Text.Lazy               (pack, unpack)
-import           Data.Version                 (showVersion)
-import           Development.Shake            hiding (getEnv)
-import           Development.Shake.FilePath
-import           Dhall                        hiding (bool)
-import           Network.HTTP.Client
-import           Network.HTTP.Client.TLS      (tlsManagerSettings)
-import           Numeric                      (showHex)
-import           System.Directory             as X
-import           System.Environment           (getEnv)
-import           System.Exit                  (ExitCode (ExitSuccess), exitWith)
-import           System.Posix.Files
-import           System.Process               as X
-import           System.Process.Ext
-import           Text.PrettyPrint.ANSI.Leijen hiding (bool, (<$>), (<>))
-
-infixr 5 <#>
-
-hex :: Int -> String
-hex = flip showHex mempty
-
-instance Semigroup a => Semigroup (Action a) where
-    (<>) a b = (<>) <$> a <*> b
-
-instance (Semigroup a, Monoid a) => Monoid (Action a) where
-    mempty = pure mempty
-    mappend = (<>)
-
--- | Same as "Text.PrettyPrint.ANSI.Leijen"'s @<$>@, but doesn't clash with the
--- prelude.
-(<#>) :: Doc -> Doc -> Doc
-(<#>) a b = a <> line <> b
