module Main ( main ) where import Codec.Archive import Control.Exception (throw) import qualified Data.ByteString.Lazy as BSL forceList :: [a] -> IO () forceList = (`seq` mempty) . last main :: IO () main = sequence_ [ readArc , readWriteArc , readArcBS ] readArc :: IO () readArc = forceList =<< throwArchiveM (readArchiveFile "test/data/llvm-9.0.0.src.tar") readArcBS :: IO () readArcBS = forceList =<< fmap (either throw id) (readArchiveBSL <$> BSL.readFile "test/data/llvm-9.0.0.src.tar") readWriteArc :: IO () readWriteArc = forceList . BSL.toChunks =<< throwArchiveM (entriesToBSL <$> readArchiveFile "test/data/llvm-9.0.0.src.tar")