diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 0.1.0
+
+* Updated for streamly 0.8.0.
+
 ## 0.0.2
 
 * Allow QuickCheck <2.15 and tasty <1.5.
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
 # streamly-archive
 
 [![Hackage](https://img.shields.io/hackage/v/streamly-archive.svg?style=flat)](https://hackage.haskell.org/package/streamly-archive)
-[![Build Status](https://travis-ci.org/shlok/streamly-archive.svg?branch=master)](https://travis-ci.org/shlok/streamly-archive)
+![CI](https://github.com/shlok/streamly-archive/workflows/CI/badge.svg?branch=master)
 
 Stream data from archives (tar, tar.gz, zip, or any other format [supported by libarchive](https://github.com/libarchive/libarchive/wiki/LibarchiveFormats)) using the Haskell [streamly](https://hackage.haskell.org/package/streamly) library.
 
diff --git a/src/Streamly/External/Archive.hs b/src/Streamly/External/Archive.hs
--- a/src/Streamly/External/Archive.hs
+++ b/src/Streamly/External/Archive.hs
@@ -26,12 +26,12 @@
 import Data.Void (Void)
 import Foreign (Ptr, free, malloc)
 import Foreign.C.Types (CChar, CSize)
+import Streamly.Internal.Data.IOFinalizer (newIOFinalizer, runIOFinalizer)
 import Streamly.Internal.Data.Stream.StreamD.Type (Step (..))
 import Streamly.Internal.Data.Unfold (supply)
-import Streamly.Internal.Data.Unfold.Types (Unfold (..))
+import Streamly.Internal.Data.Unfold.Type (Unfold (..))
 
 import qualified Data.ByteString as B
-import qualified Streamly.Internal.Data.Stream.StreamD as D
 
 import Streamly.External.Archive.Internal.Foreign (Entry, FileType (..),
     archive_entry_filetype, archive_entry_pathname, archive_entry_pathname_utf8, archive_entry_size,
@@ -62,14 +62,14 @@
 -- | Creates an unfold with which we can stream data out of the given archive.
 {-# INLINE readArchive #-}
 readArchive :: (MonadIO m) => FilePath -> Unfold m Void (Either Header ByteString)
-readArchive fp = flip supply () $
+readArchive fp = supply () $
     Unfold
         (\(arch, buf, sz, offs, pos, ref, readHeader) ->
             if readHeader then do
                 me <- liftIO $ archive_read_next_header arch
                 case me of
                     Nothing -> do
-                        liftIO $ D.runIORefFinalizer ref
+                        liftIO $ runIOFinalizer ref
                         return Stop
                     Just e -> do
                         return $ Yield (Left $ Header e) (arch, buf, sz, offs, 0, ref, False)
@@ -86,7 +86,7 @@
                 buf :: Ptr (Ptr CChar) <- liftIO malloc
                 sz :: Ptr CSize <- liftIO malloc
                 offs :: Ptr Int64 <- liftIO malloc
-                ref <- D.newFinalizedIORef $ archive_read_free arch >> free buf >> free sz >> free offs
+                ref <- newIOFinalizer $ archive_read_free arch >> free buf >> free sz >> free offs
                 return (arch, buf, sz, offs, ref)
             liftIO $ archive_read_support_filter_all arch
             liftIO $ archive_read_support_format_all arch
diff --git a/streamly-archive.cabal b/streamly-archive.cabal
--- a/streamly-archive.cabal
+++ b/streamly-archive.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: d1bdeda7161e474d2faae54074a27a35ecd88370e604246d11b83a5f54a66471
+-- hash: 3fcf39b51710099491d88d24c7309b32d8799b3ab5c85856dddb8b74361e25be
 
 name:           streamly-archive
-version:        0.0.2
+version:        0.1.0
 synopsis:       Stream data from archives using the streamly library.
 description:    Please see the README on GitHub at <https://github.com/shlok/streamly-archive#readme>
 category:       Archive, Codec, Streaming, Streamly
@@ -15,7 +15,7 @@
 bug-reports:    https://github.com/shlok/streamly-archive/issues
 author:         Shlok Datye
 maintainer:     sd-haskell@quant.is
-copyright:      2020 Shlok Datye
+copyright:      2021 Shlok Datye
 license:        BSD3
 license-file:   LICENSE
 build-type:     Simple
@@ -43,7 +43,7 @@
   build-depends:
       base >=4.7 && <5
     , bytestring ==0.10.*
-    , streamly ==0.7.*
+    , streamly ==0.8.*
   default-language: Haskell2010
 
 test-suite streamly-archive-test
@@ -64,7 +64,7 @@
     , cryptonite >=0.26
     , directory >=1.3.6.0 && <1.4
     , filepath >=1.4.2.1 && <1.5
-    , streamly ==0.7.*
+    , streamly ==0.8.*
     , streamly-archive
     , tar >=0.5.1.1 && <0.6
     , tasty >=1.2.3 && <1.5
diff --git a/test/Streamly/External/Archive/Tests.hs b/test/Streamly/External/Archive/Tests.hs
--- a/test/Streamly/External/Archive/Tests.hs
+++ b/test/Streamly/External/Archive/Tests.hs
@@ -19,7 +19,7 @@
 import Data.Function ((&))
 import Data.List (nub, sort)
 import Data.Maybe (fromJust)
-import Streamly.Internal.Data.Fold.Types (Fold (..))
+import Streamly.Internal.Data.Fold.Type (Fold (Fold), Step (Partial))
 import System.Directory (createDirectoryIfMissing)
 import System.FilePath (addTrailingPathSeparator, hasTrailingPathSeparator, joinPath, takeDirectory)
 import System.IO.Temp (withSystemTempDirectory)
@@ -73,11 +73,11 @@
                             mfp_ <- headerPathName h
                             mtyp_ <- headerFileType h
                             msz_ <- headerSize h
-                            return (unpack <$> mfp_, mtyp_, msz_, mbs)
-                        Right bs -> return (mfp, mtyp, msz, case mbs of
+                            return $ Partial (unpack <$> mfp_, mtyp_, msz_, mbs)
+                        Right bs -> return $ Partial (mfp, mtyp, msz, case mbs of
                             Nothing -> Just bs
                             Just bs' -> Just $ bs' `append` bs))
-                (return (Nothing, Nothing, Nothing, Nothing))
+                (return $ Partial (Nothing, Nothing, Nothing, Nothing))
                 return
 
         pathsFileTypesSizesAndByteStrings <-
@@ -116,11 +116,11 @@
                 case e of
                     Left h -> do
                         mfp_ <- headerPathName h
-                        return (unpack <$> mfp_, mbs)
-                    Right bs -> return (mfp, case mbs of
+                        return $ Partial (unpack <$> mfp_, mbs)
+                    Right bs -> return $ Partial (mfp, case mbs of
                         Nothing -> Just bs
                         Just bs' -> Just $ bs' `append` bs))
-            (return (Nothing, Nothing))
+            (return $ Partial (Nothing, Nothing))
             return
 
     archive <-
