process :: FilePath -> FilePath -> IO ()
process file dir = do
  putStrLn $ "Temp path: " ++ encodeString dir
  putStrLn $ "File: " ++ encodeString file
  isFile file >>= flip unless (error "No such file")
  unpack file dir >>= \ec -> unless (ec == ExitSuccess) (error "Unpack failed")
  readTree dir >>= bitraverse return tryReadTag >>= print
process :: FilePath -> FilePath -> IO ()
process file dir = do
  putStrLn $ "Temp path: " ++ encodeString dir
  putStrLn $ "File: " ++ encodeString file
  isFile file >>= flip unless (error "No such file")
  unpack file dir >>= \ec -> unless (ec == ExitSuccess) (error "Unpack failed")
  readTree dir >>= bitraverse return tryReadTag >>= print
process file dir = do
  putStrLn $ "Temp path: " ++ encodeString dir
  putStrLn $ "File: " ++ encodeString file
  isFile file >>= flip unless (error "No such file")
  unpack file dir >>= \ec -> unless (ec == ExitSuccess) (error "Unpack failed")
  readTree dir >>= bitraverse return tryReadTag >>= print