diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # cpkg
 
+## 0.2.4.0
+
+  * Use [`libarchive`](http://hackage.haskell.org/package/libarchive) exclusively
+
 ## 0.2.3.8
 
   * Support `.zst` via [zstd](http://hackage.haskell.org/package/zstd) library
diff --git a/cpkg.cabal b/cpkg.cabal
--- a/cpkg.cabal
+++ b/cpkg.cabal
@@ -1,6 +1,6 @@
 cabal-version:      1.18
 name:               cpkg
-version:            0.2.3.9
+version:            0.2.4.0
 license:            BSD3
 license-file:       LICENSE
 copyright:          Copyright: (c) 2018-2019 Vanessa McHale
@@ -82,7 +82,6 @@
         zlib -any,
         bzlib -any,
         lzma -any,
-        tar -any,
         zip-archive -any,
         prettyprinter -any,
         http-client -any,
diff --git a/dhall/cpkg-prelude.dhall b/dhall/cpkg-prelude.dhall
--- a/dhall/cpkg-prelude.dhall
+++ b/dhall/cpkg-prelude.dhall
@@ -395,8 +395,7 @@
 
         let modifyArgs = maybeAppend Text maybeHost
 
-        in  [ mkExe filename
-            , call
+        in  [ call
                 (   defaultCall
                   ⫽ { program = "./${filename}"
                     , arguments =
@@ -516,7 +515,6 @@
       , installCommand = defaultInstall
       , pkgBuildDeps = [] : List types.Dep
       , pkgDeps = [] : List types.Dep
-      , pkgStream = True
       }
 
 let simplePackage =
@@ -710,8 +708,7 @@
 
 let autogenConfigure =
         λ(cfg : types.BuildVars)
-      →   [ mkExe "autogen.sh"
-          , call
+      →   [ call
               (   defaultCall
                 ⫽ { program = "./autogen.sh"
                   , environment =
diff --git a/pkgs/pkg-set.dhall b/pkgs/pkg-set.dhall
--- a/pkgs/pkg-set.dhall
+++ b/pkgs/pkg-set.dhall
@@ -15,7 +15,7 @@
       ../dhall/cpkg-types.dhall sha256:caef717db41539eb7ded38d8cd676ba998bd387171ba3fd2db7fea9e8ee8f361
 
 let prelude =
-      ../dhall/cpkg-prelude.dhall sha256:a8dc1bfd659bb1d87a35bf6da3ed28b6ef8e268b216c42e40a0e4f2607e6a38e
+      ../dhall/cpkg-prelude.dhall sha256:4eae9adcc22ceda96091f3fa560aa095dbf8de05f7cf0387061042a9f31d10ee
 
 let gpgPackage =
         λ(x : { name : Text, version : List Natural })
@@ -243,20 +243,14 @@
 
               let modifyArgs = prelude.maybeAppend Text maybeHost
 
-              in    prelude.mkExes
-                      [ "configure"
-                      , "scripts/mkinstalldirs"
-                      , "scripts/rellns-sh"
-                      ]
-                  # [ prelude.createDir "build"
-                    , prelude.call
-                        { program = "../configure"
-                        , arguments =
-                            modifyArgs [ "--prefix=${cfg.installDir}" ]
-                        , environment = prelude.configSome ([] : List Text) cfg
-                        , procDir = buildDir
-                        }
-                    ]
+              in  [ prelude.createDir "build"
+                  , prelude.call
+                      { program = "../configure"
+                      , arguments = modifyArgs [ "--prefix=${cfg.installDir}" ]
+                      , environment = prelude.configSome ([] : List Text) cfg
+                      , procDir = buildDir
+                      }
+                  ]
 
       let glibcBuild =
               λ(cfg : types.BuildVars)
@@ -303,7 +297,6 @@
               "https://gmplib.org/download/gmp/gmp-${prelude.showVersion
                                                        v}.tar.lz"
           , pkgBuildDeps = [ prelude.unbounded "m4" ]
-          , pkgStream = False
           }
 
 let harfbuzz =
@@ -448,8 +441,7 @@
 let perl5 =
       let perlConfigure =
               λ(cfg : types.BuildVars)
-            → [ prelude.mkExe "Configure"
-              , prelude.call
+            → [ prelude.call
                   (   prelude.defaultCall
                     ⫽ { program = "sh"
                       , arguments =
@@ -548,7 +540,6 @@
                 [ { file = "share/man/man1/sed.1", section = 1 } ]
           , configureCommand =
               prelude.configureWithFlags [ "--disable-dependency-tracking" ]
-          , pkgStream = False
           }
 
 let tar = λ(v : List Natural) → prelude.makeGnuExe { name = "tar", version = v }
@@ -643,8 +634,7 @@
                 λ(cfg : types.BuildVars)
               → let host = prelude.mkCCVar cfg
 
-                in  [ prelude.mkExe "configure"
-                    , prelude.call
+                in  [ prelude.call
                         (   prelude.defaultCall
                           ⫽ { program = "sh"
                             , arguments =
@@ -679,7 +669,6 @@
                 [ "bin/gettext", "bin/msgfmt", "bin/autopoint" ]
           , configureCommand =
               prelude.configureWithFlags [ "--disable-dependency-tracking" ]
-          , pkgStream = False
           }
 
 let gzip =
@@ -714,9 +703,7 @@
                       { name = "p11-kit", lower = [ 0, 23, 1 ] }
                   ]
               , configureCommand =
-                    λ(cfg : types.BuildVars)
-                  →   prelude.mkExes [ "src/gen-mech-list.sh" ]
-                    # prelude.configureLinkExtraLibs [ "nettle", "hogweed" ] cfg
+                  prelude.configureLinkExtraLibs [ "nettle", "hogweed" ]
               }
 
 let lapack =
@@ -805,7 +792,6 @@
               →   prelude.installWithBinaries [ "bin/patch" ] cfg
                 # prelude.symlinkManpages
                     [ { file = "share/man/man1/patch.1", section = 1 } ]
-          , pkgStream = False
           }
 
 let m4 =
@@ -821,7 +807,6 @@
               prelude.installWithManpages
                 [ { file = "share/man/man1/m4.1", section = 1 } ]
           , pkgBuildDeps = [ prelude.unbounded "patch" ]
-          , pkgStream = False
           }
 
 let nginx =
@@ -1144,7 +1129,7 @@
 let gdb =
         λ(v : List Natural)
       →   prelude.makeGnuExe { name = "gdb", version = v }
-        ⫽ { pkgStream = False, pkgBuildDeps = [ prelude.unbounded "texinfo" ] }
+        ⫽ { pkgBuildDeps = [ prelude.unbounded "texinfo" ] }
 
 let libtool =
         λ(v : List Natural)
@@ -1154,7 +1139,6 @@
                                                              v}.tar.xz"
           , pkgBuildDeps =
               [ prelude.lowerBound { name = "m4", lower = [ 1, 4, 16 ] } ]
-          , pkgStream = False
           }
 
 let pkg-config =
@@ -1295,8 +1279,7 @@
 
       let gtkConfig =
               λ(cfg : types.BuildVars)
-            → [ prelude.mkExe "configure"
-              , prelude.call
+            → [ prelude.call
                   (   prelude.defaultCall
                     ⫽ { program = "./configure"
                       , arguments = [ "--prefix=${cfg.installDir}" ]
@@ -1495,7 +1478,6 @@
                     λ(cfg : types.BuildVars)
                   → [ prelude.patch
                         ./patches/intltool.patch sha256:e33e9b3e43d80a17475e36c05ed4e649fa5d610991044749e6321dff555cc8e5 as Text
-                    , prelude.mkExe "configure"
                     , prelude.call
                         (   prelude.defaultCall
                           ⫽ { program = "./configure"
@@ -1600,9 +1582,7 @@
 let ninja =
       let ninjaConfigure =
               λ(cfg : types.BuildVars)
-            → [ prelude.mkExe "configure.py"
-              , prelude.mkExe "src/inline.sh"
-              , prelude.call
+            → [ prelude.call
                   (   prelude.defaultCall
                     ⫽ { program = "./configure.py"
                       , arguments = [ "--bootstrap" ]
@@ -2566,8 +2546,7 @@
 
       let gtkConfig =
               λ(cfg : types.BuildVars)
-            → [ prelude.mkExe "configure"
-              , prelude.call
+            → [ prelude.call
                   (   prelude.defaultCall
                     ⫽ { program = "./configure"
                       , arguments = [ "--prefix=${cfg.installDir}" ]
@@ -2700,7 +2679,6 @@
                   "https://sqlite.org/${Natural/show
                                           x.year}/sqlite-autoconf-${versionString}000.tar.gz"
               , pkgSubdir = "sqlite-autoconf-${versionString}000"
-              , pkgStream = False
               }
 
 let ragel =
@@ -2746,9 +2724,7 @@
         in    mkGnomeSimple "pygtk" x
             ⫽ { pkgUrl =
                   "http://ftp.gnome.org/pub/gnome/sources/pygtk/${versionString}/pygtk-${fullVersion}.tar.bz2"
-              , configureCommand =
-                    λ(cfg : types.BuildVars)
-                  → prelude.mkExes [ "py-compile" ] # prelude.preloadCfg cfg
+              , configureCommand = prelude.preloadCfg
               , pkgDeps =
                   [ prelude.lowerBound { name = "glib", lower = [ 2, 8, 0 ] }
                   , prelude.lowerBound
@@ -2909,7 +2885,6 @@
               , prelude.unbounded "json-glib"
               ]
           , configureCommand = prelude.preloadCfg
-          , pkgStream = False
           }
 
 let libexif =
@@ -3382,7 +3357,6 @@
                                                                v}.tar.gz"
           , installCommand = prelude.installWithBinaries [ "bin/fossil" ]
           , pkgDeps = [ prelude.unbounded "zlib", prelude.unbounded "openssl" ]
-          , pkgStream = False
           }
 
 let libcroco =
@@ -3580,7 +3554,6 @@
                                                            v}.tar.xz"
           , configureCommand =
               prelude.configureWithFlags [ "--disable-dependency-tracking" ]
-          , pkgStream = False
           }
 
 let node =
@@ -3597,7 +3570,6 @@
                     # [ prelude.mkExe
                           "${cfg.installDir}/lib/node_modules/npm/bin/npm-cli.js"
                       ]
-              , pkgStream = False
               }
 
 let glu =
@@ -3687,7 +3659,6 @@
                       "https://dl.bintray.com/boostorg/release/${prelude.showVersion
                                                                    v}/source/boost_${versionString}.tar.bz2"
                   , pkgSubdir = "boost_${versionString}"
-                  , pkgStream = False
                   , configureCommand = boostConfigure
                   , buildCommand = prelude.doNothing
                   , installCommand = boostInstall
@@ -3713,7 +3684,6 @@
             ⫽ { pkgUrl =
                   "http://releases.llvm.org/${versionString}/cfe-${versionString}.src.tar.xz"
               , pkgSubdir = "cfe-${versionString}.src"
-              , pkgStream = False
               , buildCommand = slowBuild
               , pkgDeps = [ prelude.unbounded "llvm" ]
               , installCommand =
@@ -3733,7 +3703,6 @@
             ⫽ { pkgUrl =
                   "http://releases.llvm.org/${versionString}/llvm-${versionString}.src.tar.xz"
               , pkgSubdir = "llvm-${versionString}.src"
-              , pkgStream = False
               , buildCommand = slowBuild
               }
 
@@ -3749,7 +3718,6 @@
                 "Configure"
                 ([] : List Text)
                 ([] : List Text)
-          , pkgStream = False
           }
 
 let pdfgrep =
@@ -3806,7 +3774,6 @@
                   , prelude.unbounded "sed"
                   , prelude.unbounded "libtool"
                   ]
-              , pkgStream = False
               }
 
 let ruby =
@@ -3821,7 +3788,6 @@
                   "https://cache.ruby-lang.org/pub/ruby/${versionString}/ruby-${fullVersion}.tar.gz"
               , installCommand =
                   prelude.installWithBinaries [ "bin/ruby", "bin/gem" ]
-              , pkgStream = False
               , pkgDeps =
                   [ prelude.unbounded "readline", prelude.unbounded "openssl" ]
               }
@@ -3935,7 +3901,6 @@
                       }
                   ]
                 # prelude.defaultConfigure cfg
-          , pkgStream = False
           }
 
 let cimg =
@@ -3986,7 +3951,6 @@
               , prelude.unbounded "libvpx"
               , prelude.unbounded "fdk-aac"
               ]
-          , pkgStream = False
           }
 
 let libsndfile =
@@ -4069,7 +4033,7 @@
 
       in    prelude.simplePackage { name = "mercury", version = [ 14, 1, 1 ] }
           ⫽ mercuryCommon
-          ⫽ { pkgBuildDeps = [ prelude.unbounded "flex" ], pkgStream = False }
+          ⫽ { pkgBuildDeps = [ prelude.unbounded "flex" ] }
 
 let qt =
         λ(x : { version : List Natural, patch : Natural })
@@ -4102,7 +4066,6 @@
                   , prelude.unbounded "giflib"
                   , prelude.unbounded "glib"
                   ]
-              , pkgStream = False
               }
 
 let lz4 =
@@ -4246,7 +4209,6 @@
             ⫽ { pkgUrl =
                   "https://cran.r-project.org/src/base/R-3/R-${versionString}.tar.gz"
               , pkgSubdir = "R-${versionString}"
-              , pkgStream = False
               , pkgDeps =
                   [ prelude.unbounded "readline"
                   , prelude.unbounded "libXt"
@@ -4319,7 +4281,6 @@
                             }
                         )
                     ]
-              , pkgStream = False
               }
 
 let librsvg =
@@ -4373,7 +4334,6 @@
                   , buildCommand = atsBuild
                   , installCommand =
                       prelude.installWithBinaries [ "bin/patsopt" ]
-                  , pkgStream = False
                   }
 
 let libiconv =
@@ -4403,7 +4363,6 @@
         ⫽ { pkgUrl =
               "https://www.alsa-project.org/files/pub/lib/alsa-lib-${prelude.showVersion
                                                                        v}.tar.bz2"
-          , pkgStream = False
           }
 
 let bash-completion =
@@ -4434,7 +4393,6 @@
                   "configure"
                   ([] : List Text)
                   ([] : List Text)
-            , pkgStream = False
             , pkgBuildDeps =
                 [ prelude.unbounded "coreutils"
                 , prelude.unbounded "sed"
@@ -4459,7 +4417,6 @@
         ⫽ { pkgUrl =
               "https://ftp.gnu.org/pub/gnu/findutils/findutils-${prelude.showVersion
                                                                    v}.tar.xz"
-          , pkgStream = False
           }
 
 let ghc =
@@ -4470,7 +4427,6 @@
             ⫽ { pkgUrl =
                   "https://downloads.haskell.org/~ghc/${versionString}/ghc-${versionString}-x86_64-deb9-linux.tar.xz"
               , buildCommand = prelude.doNothing
-              , pkgStream = False
               }
 
 let cmark =
@@ -4574,7 +4530,6 @@
                   "https://github.com/webmproject/libvpx/archive/v${versionString}/libvpx-${versionString}.tar.gz"
               , pkgBuildDeps =
                   [ prelude.unbounded "nasm", prelude.unbounded "perl" ]
-              , pkgStream = False
               }
 
 let fdk-aac =
@@ -4599,7 +4554,6 @@
                   , prelude.unbounded "coreutils"
                   ]
               , pkgSubdir = "swipl-${versionString}"
-              , pkgStream = False
               }
 
 let exiftool =
@@ -4663,7 +4617,6 @@
         ⫽ { pkgUrl =
               "https://www-eu.apache.org/dist/apr/apr-${prelude.showVersion
                                                           v}.tar.bz2"
-          , pkgStream = False
           }
 
 let apr-util =
@@ -4678,7 +4631,6 @@
               → prelude.configureWithFlags
                   [ "--with-apr=${concat cfg.linkDirs}/../" ]
                   cfg
-          , pkgStream = False
           }
 
 let libsass =
@@ -4712,7 +4664,6 @@
                       }
                   ]
                 # prelude.defaultConfigure cfg
-          , pkgStream = False
           }
 
 in  [ alsa-lib [ 1, 1, 9 ]
@@ -4941,7 +4892,7 @@
     , pycairo [ 1, 18, 1 ]
     , pygobject { version = [ 2, 28 ], patch = 7 }
     , pygtk { version = [ 2, 24 ], patch = 0 }
-    , python [ 2, 7, 16 ]
+    , python [ 2, 7, 17 ]
     , python [ 3, 8, 1 ]
     , qrencode [ 4, 0, 2 ]
     , qt { version = [ 5, 13 ], patch = 0 }
@@ -4975,7 +4926,7 @@
     , util-macros [ 1, 19, 2 ]
     , vala { version = [ 0, 45 ], patch = 3 }
     , valgrind [ 3, 15, 0 ]
-    , vim [ 8, 1 ]
+    , vim [ 8, 2 ]
     , wayland [ 1, 17, 0 ]
     , wget [ 1, 20, 3 ]
     , which [ 2, 21 ]
diff --git a/src/Package/C/Build.hs b/src/Package/C/Build.hs
--- a/src/Package/C/Build.hs
+++ b/src/Package/C/Build.hs
@@ -111,7 +111,7 @@
 fetchCPkg :: CPkg
           -> FilePath -- ^ Directory for intermediate build files
           -> PkgM ()
-fetchCPkg cpkg = fetchUrl (pkgUrl cpkg) (pkgName cpkg) (pkgStream cpkg)
+fetchCPkg cpkg = fetchUrl (pkgUrl cpkg) (pkgName cpkg)
 
 buildCPkg :: CPkg
           -> Maybe TargetTriple
diff --git a/src/Package/C/Db/Register.hs b/src/Package/C/Db/Register.hs
--- a/src/Package/C/Db/Register.hs
+++ b/src/Package/C/Db/Register.hs
@@ -213,7 +213,7 @@
               -> Bool -- ^ Was this package manually installed?
               -> BuildVars
               -> BuildCfg
-pkgToBuildCfg (CPkg n v _ _ _ bds ds cCmd bCmd iCmd) host glob usr bVar =
+pkgToBuildCfg (CPkg n v _ _ bds ds cCmd bCmd iCmd) host glob usr bVar =
     BuildCfg n v (go <$> bds) (go <$> ds) host glob (cCmd bVar) (bCmd bVar) (iCmd bVar) usr -- TODO: fix pinned build deps &c.
     where placeholderVersion = Version [0,1,0,0]
           go (Dep n' _) = (n', placeholderVersion)
diff --git a/src/Package/C/Dhall/Type.hs b/src/Package/C/Dhall/Type.hs
--- a/src/Package/C/Dhall/Type.hs
+++ b/src/Package/C/Dhall/Type.hs
@@ -55,7 +55,6 @@
                  , pkgVersion       :: [ Natural ]
                  , pkgUrl           :: T.Text
                  , pkgSubdir        :: T.Text
-                 , pkgStream        :: Bool -- ^ Use @tar@ package to stream
                  , pkgBuildDeps     :: [ Dep ] -- TODO: depend on target?
                  , pkgDeps          :: [ Dep ]
                  , configureCommand :: BuildVars -> [ Command ]
@@ -76,4 +75,4 @@
 prettyBldDeps = preDeps "build dependencies:"
 
 instance Pretty CPkg where
-    pretty (CPkg nam v url _ _ bds ds _ _ _) = pretty nam <##> indent 4 ("url:" <+> pretty url <##> "version:" <+> pretty (Version v) <> prettyDeps ds <> prettyBldDeps bds)
+    pretty (CPkg nam v url _ bds ds _ _ _) = pretty nam <##> indent 4 ("url:" <+> pretty url <##> "version:" <+> pretty (Version v) <> prettyDeps ds <> prettyBldDeps bds)
diff --git a/src/Package/C/Fetch.hs b/src/Package/C/Fetch.hs
--- a/src/Package/C/Fetch.hs
+++ b/src/Package/C/Fetch.hs
@@ -36,10 +36,9 @@
 
 fetchUrl :: String -- ^ URL
          -> String -- ^ Package name
-         -> Bool -- ^ Stream using @tar@ package?
          -> FilePath -- ^ Directory to unpack to
          -> PkgM ()
-fetchUrl url name libArch dirName = do
+fetchUrl url name dirName = do
 
         let tarballName = fromJust (asFilename url)
         tarballDir <- (</> tarballName) <$> cacheDir
@@ -72,4 +71,4 @@
 
         putNormal ("Unpacking " ++ name)
 
-        liftIO $ unpackResponse compression libArch dirName response
+        liftIO $ unpackResponse compression dirName response
diff --git a/src/Package/C/PackageSet.hs b/src/Package/C/PackageSet.hs
--- a/src/Package/C/PackageSet.hs
+++ b/src/Package/C/PackageSet.hs
@@ -24,7 +24,7 @@
 
 defaultPackageSetDhall :: Maybe String -> IO PackageSetDhall
 defaultPackageSetDhall (Just pkSet) = input auto (T.pack pkSet)
-defaultPackageSetDhall Nothing      = input auto "https://raw.githubusercontent.com/vmchale/cpkg/22671be2cdb048ab407ff24ca24923c2f03ab60a/pkgs/pkg-set.dhall sha256:36616ae1a3e6affbebf83d056297ffd6cc4fefc4fdc3895052b6b551e9d3113f"
+defaultPackageSetDhall Nothing      = input auto "https://raw.githubusercontent.com/vmchale/cpkg/6635d6c4dd9da9bbe09f1dd0f94b485ba9015c74/pkgs/pkg-set.dhall sha256:cba9042d6520714c9c57cdfe4baf8d4618c15ff5938ce9a4e223bcb9d4f14725"
 
 displayPackageSet :: Maybe String -> IO ()
 displayPackageSet = putDoc . pretty <=< defaultPackageSetDhall
diff --git a/src/Package/C/Type.hs b/src/Package/C/Type.hs
--- a/src/Package/C/Type.hs
+++ b/src/Package/C/Type.hs
@@ -49,7 +49,6 @@
                  , pkgVersion       :: Version
                  , pkgUrl           :: String
                  , pkgSubdir        :: String
-                 , pkgStream        :: Bool -- ^ Use @tar@ package to stream
                  , pkgBuildDeps     :: [ Dep ]
                  , pkgDeps          :: [ Dep ]
                  , configureCommand :: BuildVars -> [ Command ]
@@ -75,8 +74,8 @@
 buildVarsToDhallBuildVars (BuildVars dir' cd tgt' cross incls prelds shr lds bins os' arch' sta nproc) = Dhall.BuildVars (T.pack dir') (T.pack cd) tgt' cross (T.pack <$> incls) (T.pack <$> prelds) (T.pack <$> shr) (T.pack <$> lds) (T.pack <$> bins) os' arch' sta (fromIntegral nproc)
 
 cPkgDhallToCPkg :: Dhall.CPkg -> CPkg
-cPkgDhallToCPkg (Dhall.CPkg n v url subdir stream bldDeps deps cfgCmd buildCmd installCmd) =
-    CPkg (T.unpack n) (Version v) (T.unpack url) (T.unpack subdir) stream bldDeps deps configure build install
+cPkgDhallToCPkg (Dhall.CPkg n v url subdir bldDeps deps cfgCmd buildCmd installCmd) =
+    CPkg (T.unpack n) (Version v) (T.unpack url) (T.unpack subdir) bldDeps deps configure build install
 
     where configure cfg = commandDhallToCommand <$> cfgCmd (buildVarsToDhallBuildVars cfg)
           build cfg = commandDhallToCommand <$> buildCmd (buildVarsToDhallBuildVars cfg)
diff --git a/src/Package/C/Unpack.hs b/src/Package/C/Unpack.hs
--- a/src/Package/C/Unpack.hs
+++ b/src/Package/C/Unpack.hs
@@ -4,7 +4,6 @@
                         ) where
 
 import qualified Codec.Archive               as Archive
-import qualified Codec.Archive.Tar           as Tar
 import           Codec.Archive.Zip           (ZipOption (..), extractFilesFromArchive, toArchive)
 import qualified Codec.Compression.BZip      as Bzip
 import qualified Codec.Compression.GZip      as Gzip
@@ -39,16 +38,11 @@
 
     where showError = error . show
 
-tarResponse :: TarCompress -> FilePath -> BSL.ByteString -> IO ()
-tarResponse compressScheme dirName =
-    Tar.unpack dirName . Tar.read . getCompressor compressScheme
-
 zipResponse :: FilePath -> BSL.ByteString -> IO ()
 zipResponse dirName response = withCurrentDirectory dirName $ do
     let options = OptDestination dirName
     extractFilesFromArchive [options] (toArchive response)
 
-unpackResponse :: Compression -> Bool -> FilePath -> BSL.ByteString -> IO ()
-unpackResponse (Tar tarCmp) True fp response  = tarResponse tarCmp fp response
-unpackResponse (Tar tarCmp) False fp response = archiveResponse tarCmp fp response
-unpackResponse Zip _ fp response              = zipResponse fp response
+unpackResponse :: Compression -> FilePath -> BSL.ByteString -> IO ()
+unpackResponse (Tar tarCmp) fp response = archiveResponse tarCmp fp response
+unpackResponse Zip fp response          = zipResponse fp response
