-- GENERATED by C->Haskell Compiler, version 0.28.6 Switcheroo, 25 November 2017 (Haskell)
-- Edit the ORIGNAL .chs file instead!


{-# LINE 1 "src/Codec/Archive/Foreign/Archive.chs" #-}
-- | This module corresponds to @archive.h@
--
-- Functions in this module are stateful and hence take place in the 'IO'
-- monad.
module Codec.Archive.Foreign.Archive ( archiveReadHasEncryptedEntries
                                     -- * Version information
                                     , archiveVersionNumber
                                     , archiveVersionString
                                     , archiveVersionDetails
                                     , archiveZlibVersion
                                     , archiveLiblzmaVersion
                                     , archiveBzlibVersion
                                     , archiveLiblz4Version
                                     , archiveLibzstdVersion
                                     -- * Miscellany
                                     , archiveErrorString
                                     , archiveFormatName
                                     , archiveFormat
                                     , archiveClearError
                                     , archiveSetError
                                     , archiveCopyError
                                     , archiveFileCount
                                     , archiveFilterCount
                                     , archiveFilterBytes
                                     , archiveFilterCode
                                     , archiveFilterName
                                     -- * Read
                                     , archiveReadData
                                     , archiveReadNew
                                     , archiveReadSetOpenCallback
                                     , archiveReadSetSeekCallback
                                     , archiveReadSetSkipCallback
                                     , archiveReadSetSwitchCallback
                                     , archiveReadSetCallbackData2
                                     , archiveReadAddCallbackData
                                     , archiveReadAppendCallbackData
                                     , archiveReadPrependCallbackData
                                     , archiveReadSetReadCallback
                                     , archiveReadSetCloseCallback
                                     , archiveReadSetCallbackData
                                     , archiveReadSetFormat
                                     , archiveReadOpen
                                     , archiveReadOpenFilename
                                     , archiveReadOpenFilenameW
                                     , archiveReadOpenFilenames
                                     , archiveReadOpenMemory
                                     , archiveReadOpen1
                                     , archiveReadOpen2
                                     , archiveReadOpenFd
                                     , archiveReadOpenFILE
                                     , archiveReadNextHeader
                                     , archiveReadNextHeader2
                                     , archiveReadHeaderPosition
                                     , archiveReadFormatCapabilities
                                     , archiveSeekData
                                     , archiveReadDataBlock
                                     , archiveReadDataIntoFd
                                     , archiveReadSetFormatOption
                                     , archiveReadSetFilterOption
                                     , archiveReadSetOption
                                     , archiveReadSetOptions
                                     , archiveReadAddPassphrase
                                     , archiveReadSetPassphraseCallback
                                     , archiveReadExtract
                                     , archiveReadExtract2
                                     , archiveReadExtractSetProgressCallback
                                     , archiveReadExtractSetSkipFile
                                     , archiveReadClose
                                     , archiveReadFree
                                     , archiveReadSupportFilterAll
                                     , archiveReadSupportFilterBzip2
                                     , archiveReadSupportFilterCompress
                                     , archiveReadSupportFilterGzip
                                     , archiveReadSupportFilterGrzip
                                     , archiveReadSupportFilterLrzip
                                     , archiveReadSupportFilterLz4
                                     , archiveReadSupportFilterLzip
                                     , archiveReadSupportFilterLzma
                                     , archiveReadSupportFilterLzop
                                     , archiveReadSupportFilterNone
                                     , archiveReadSupportFilterProgram
                                     , archiveReadSupportFilterProgramSignature
                                     , archiveReadSupportFilterRpm
                                     , archiveReadSupportFilterUu
                                     , archiveReadSupportFilterXz
                                     , archiveReadSupportFormatAll
                                     , archiveReadSupportFormat7zip
                                     , archiveReadSupportFormatAr
                                     , archiveReadSupportFormatByCode
                                     , archiveReadSupportFormatCab
                                     , archiveReadSupportFormatCpio
                                     , archiveReadSupportFormatEmpty
                                     , archiveReadSupportFormatGnutar
                                     , archiveReadSupportFormatIso9660
                                     , archiveReadSupportFormatLha
                                     , archiveReadSupportFormatMtree
                                     , archiveReadSupportFormatRar
                                     , archiveReadSupportFormatRar5
                                     , archiveReadSupportFormatRaw
                                     , archiveReadSupportFormatTar
                                     , archiveReadSupportFormatWarc
                                     , archiveReadSupportFormatXar
                                     , archiveReadSupportFormatZip
                                     , archiveReadSupportFormatZipStreamable
                                     , archiveReadSupportFormatZipSeekable
                                     , archiveReadAppendFilter
                                     , archiveReadAppendFilterProgram
                                     , archiveReadAppendFilterProgramSignature
                                     -- * Write
                                     , archiveWriteOpenMemory
                                     , archiveWriteNew
                                     , archiveWriteData
                                     , archiveWriteOpen
                                     , archiveWriteClose
                                     , archiveWriteHeader
                                     , archiveWriteSetBytesPerBlock
                                     , archiveWriteGetBytesPerBlock
                                     , archiveWriteSetBytesInLastBlock
                                     , archiveWriteGetBytesInLastBlock
                                     , archiveWriteSetSkipFile
                                     , archiveWriteAddFilter
                                     , archiveWriteAddFilterByName
                                     , archiveWriteAddFilterB64encode
                                     , archiveWriteAddFilterBzip2
                                     , archiveWriteAddFilterCompress
                                     , archiveWriteAddFilterGrzip
                                     , archiveWriteAddFilterLrzip
                                     , archiveWriteAddFilterLz4
                                     , archiveWriteAddFilterLzma
                                     , archiveWriteAddFilterLzip
                                     , archiveWriteAddFilterLzop
                                     , archiveWriteAddFilterNone
                                     , archiveWriteAddFilterProgram
                                     , archiveWriteAddFilterUuencode
                                     , archiveWriteAddFilterXz
                                     , archiveWriteAddFilterZstd
                                     , archiveWriteSetFormat
                                     , archiveWriteSetFormatByName
                                     , archiveWriteSetFormatArBsd
                                     , archiveWriteSetFormatArSvr4
                                     , archiveWriteSetFormatCpio
                                     , archiveWriteSetFormatCpioNewc
                                     , archiveWriteSetFormatGnutar
                                     , archiveWriteSetFormatMtree
                                     , archiveWriteSetFormatMtreeClassic
                                     , archiveWriteSetFormatPax
                                     , archiveWriteSetFormatPaxRestricted
                                     , archiveWriteSetFormatZip
                                     , archiveWriteSetFormat7zip
                                     , archiveWriteSetFormatRaw
                                     , archiveWriteSetFormatShar
                                     , archiveWriteSetFormatSharDump
                                     , archiveWriteSetFormatUstar
                                     , archiveWriteSetFormatV7tar
                                     , archiveWriteSetFormatWarc
                                     , archiveWriteSetFormatXar
                                     , archiveWriteSetFormatFilterByExt
                                     , archiveWriteSetFormatFilterByExtDef
                                     , archiveWriteZipSetCompressionDeflate
                                     , archiveWriteZipSetCompressionStore
                                     , archiveWriteOpenFd
                                     , archiveWriteOpenFilenameW
                                     , archiveWriteOpenFilename
                                     , archiveWriteOpenFILE
                                     , archiveWriteDataBlock
                                     , archiveWriteFinishEntry
                                     , archiveWriteFail
                                     , archiveWriteFree
                                     , archiveWriteSetFormatOption
                                     , archiveWriteSetFilterOption
                                     , archiveWriteSetOption
                                     , archiveWriteSetOptions
                                     , archiveWriteSetPassphrase
                                     , archiveWriteSetPassphraseCallback
                                     -- * Write disk
                                     , archiveWriteDiskSetOptions
                                     , archiveWriteDiskNew
                                     , archiveWriteDiskSetSkipFile
                                     , archiveWriteDiskSetStandardLookup
                                     , archiveWriteDiskSetGroupLookup
                                     , archiveWriteDiskSetUserLookup
                                     , archiveWriteDiskGid
                                     , archiveWriteDiskUid
                                     -- * Read disk
                                     , archiveReadDiskNew
                                     , archiveReadDiskSetSymlinkLogical
                                     , archiveReadDiskSetSymlinkPhysical
                                     , archiveReadDiskSetSymlinkHybrid
                                     , archiveReadDiskEntryFromFile
                                     , archiveReadDiskGname
                                     , archiveReadDiskUname
                                     , archiveReadDiskSetStandardLookup
                                     , archiveReadDiskSetGnameLookup
                                     , archiveReadDiskSetUnameLookup
                                     , archiveReadDiskOpen
                                     , archiveReadDiskOpenW
                                     , archiveReadDiskDescend
                                     , archiveReadDiskCanDescend
                                     , archiveReadDiskCurrentFilesystem
                                     , archiveReadDiskCurrentFilesystemIsSynthetic
                                     , archiveReadDiskCurrentFilesystemIsRemote
                                     , archiveReadDiskSetAtimeRestored
                                     , archiveReadDiskSetBehavior
                                     , archiveReadDiskSetMatching
                                     , archiveReadDiskSetMetadataFilterCallback
                                     , archiveReadDiskNoAcl
                                     , archiveReadDiskNoFFlags
                                     -- * Version macros
                                     , archiveVersionNumberMacro
                                     , archiveVersionOnlyString
                                     , archiveVersionStringMacro
                                     -- * Capability macros
                                     , archiveReadFormatCapsNone
                                     , archiveReadFormatCapsEncryptData
                                     , archiveReadFormatCapsEncryptMetadata
                                     -- * Time matching macros
                                     , archiveMatchMTime
                                     , archiveMatchCTime
                                     , archiveMatchNewer
                                     , archiveMatchOlder
                                     , archiveMatchEqual
                                     -- * Entry flags
                                     , archiveExtractOwner
                                     , archiveExtractPerm
                                     , archiveExtractTime
                                     , archiveExtractNoOverwrite
                                     , archiveExtractUnlink
                                     , archiveExtractACL
                                     , archiveExtractFFlags
                                     , archiveExtractXattr
                                     , archiveExtractSecureSymlinks
                                     , archiveExtractSecureNoDotDot
                                     , archiveExtractNoAutodir
                                     , archiveExtractSparse
                                     , archiveExtractMacMetadata
                                     , archiveExtractNoHfsCompression
                                     , archiveExtractHfsCompressionForced
                                     , archiveExtractSecureNoAbsolutePaths
                                     , archiveExtractClearNoChangeFFlags
                                     , archiveExtractNoOverwriteNewer
                                     -- * Read disk flags
                                     , archiveReadDiskRestoreATime
                                     , archiveReadDiskHonorNoDump
                                     , archiveReadDiskMacCopyFile
                                     , archiveReadDiskNoTraverseMounts
                                     , archiveReadDiskNoXattr
                                     , archiveFree
                                     , archiveMatchExcluded
                                     , archiveMatchPathExcluded
                                     , archiveMatchSetInclusionRecursion
                                     , archiveMatchExcludePattern
                                     , archiveMatchExcludePatternW
                                     , archiveMatchIncludePattern
                                     , archiveMatchIncludePatternW
                                     , archiveMatchExcludePatternFromFile
                                     , archiveMatchExcludePatternFromFileW
                                     , archiveMatchIncludePatternFromFile
                                     , archiveMatchIncludePatternFromFileW
                                     , archiveMatchPathUnmatchedInclusions
                                     , archiveMatchPathUnmatchedInclusionsNext
                                     , archiveMatchPathUnmatchedInclusionsNextW
                                     , archiveMatchIncludeTime
                                     , archiveMatchIncludeDate
                                     , archiveMatchIncludeDateW
                                     , archiveMatchIncludeFileTime
                                     , archiveMatchIncludeFileTimeW
                                     , archiveMatchTimeExcluded
                                     , archiveMatchOwnerExcluded
                                     , archiveMatchExcludeEntry
                                     , archiveReadDataSkip
                                     , archiveMatchIncludeGname
                                     , archiveMatchIncludeGnameW
                                     , archiveMatchIncludeUname
                                     , archiveMatchIncludeUnameW
                                     , archiveMatchIncludeUid
                                     , archiveMatchIncludeGid
                                     , archiveErrno
                                     -- * Abstract types
                                     , Archive
                                     -- * Haskell types
                                     , ArchiveEncryption (..)
                                     -- * C types
                                     , FilePtr (..)
                                     -- * Enum types
                                     , ArchiveFilter (..)
                                     , ArchiveFormat (..)
                                     -- * Lower-level API types
                                     , Flags
                                     , ArchiveCapabilities
                                     , ReadDiskFlags
                                     , TimeFlag
                                     -- * Callback types
                                     , ArchiveReadCallback
                                     , ArchiveSkipCallback
                                     , ArchiveSeekCallback
                                     , ArchiveWriteCallback
                                     , ArchiveOpenCallback
                                     , ArchiveCloseCallback
                                     , ArchiveSwitchCallback
                                     , ArchiveOpenCallbackRaw
                                     , ArchiveCloseCallbackRaw
                                     , ArchiveSwitchCallbackRaw
                                     , ArchivePassphraseCallback
                                     -- * Callback constructors
                                     , noOpenCallback
                                     , mkReadCallback
                                     , mkSkipCallback
                                     , mkSeekCallback
                                     , mkWriteCallback
                                     , mkPassphraseCallback
                                     , mkOpenCallback
                                     , mkCloseCallback
                                     , mkSwitchCallback
                                     , mkWriteLookup
                                     , mkReadLookup
                                     , mkCleanup
                                     , mkMatch
                                     , mkFilter
                                     , mkExcludedCallback
                                     -- * Type synonyms
                                     , ArchiveEntryPtr
                                     , ArchivePtr
                                     , StatPtr
                                     -- * libarchive types
                                     , LaInt64
                                     , LaSSize
                                     ) where
import qualified Foreign.C.String as C2HSImp
import qualified Foreign.C.Types as C2HSImp
import qualified Foreign.Marshal.Utils as C2HSImp
import qualified Foreign.Ptr as C2HSImp
import qualified System.IO.Unsafe as C2HSImp



import qualified Codec.Archive.Types.Foreign
{-# LINE 329 "src/Codec/Archive/Foreign/Archive.chs" #-}


import Codec.Archive.Foreign.Archive.Macros
import Codec.Archive.Types
import Control.Composition ((.*), (.**))
import Data.Coerce (coerce)
import Foreign.C.String
import Foreign.C.Types
import Foreign.Marshal.Alloc (alloca)
import Foreign.Ptr
import Foreign.Storable (Storable (peek))
import System.Posix.Types (Fd (..))

-- destructors: use "dynamic" instead of "wrapper" (but we don't want that)
-- callbacks
foreign import ccall "wrapper" mkReadCallback :: ArchiveReadCallback a b -> IO (FunPtr (ArchiveReadCallback a b))
foreign import ccall "wrapper" mkSkipCallback :: ArchiveSkipCallback a -> IO (FunPtr (ArchiveSkipCallback a))
foreign import ccall "wrapper" mkSeekCallback :: ArchiveSeekCallback a -> IO (FunPtr (ArchiveSeekCallback a))
foreign import ccall "wrapper" mkWriteCallback :: ArchiveWriteCallback a b -> IO (FunPtr (ArchiveWriteCallback a b))
foreign import ccall "wrapper" mkOpenCallbackRaw :: ArchiveOpenCallbackRaw a -> IO (FunPtr (ArchiveOpenCallbackRaw a))
foreign import ccall "wrapper" mkCloseCallbackRaw :: ArchiveCloseCallbackRaw a -> IO (FunPtr (ArchiveCloseCallbackRaw a))
foreign import ccall "wrapper" mkSwitchCallbackRaw :: ArchiveSwitchCallbackRaw a b -> IO (FunPtr (ArchiveSwitchCallbackRaw a b))
foreign import ccall "wrapper" mkPassphraseCallback :: ArchivePassphraseCallback a -> IO (FunPtr (ArchivePassphraseCallback a))
foreign import ccall "wrapper" mkExcludedCallback :: (ArchivePtr -> Ptr a -> ArchiveEntryPtr -> IO ()) -> IO (FunPtr (ArchivePtr -> Ptr a -> ArchiveEntryPtr -> IO ()))

-- | Don't use an open callback. This is the recommended argument to 'archiveReadOpen'
noOpenCallback :: FunPtr (ArchiveOpenCallbackRaw a)
noOpenCallback :: FunPtr (ArchiveOpenCallbackRaw a)
noOpenCallback = Ptr Any -> FunPtr (ArchiveOpenCallbackRaw a)
forall a b. Ptr a -> FunPtr b
castPtrToFunPtr Ptr Any
forall a. Ptr a
nullPtr

foreign import ccall "wrapper" mkWriteLookup :: (Ptr a -> CString -> LaInt64 -> IO LaInt64) -> IO (FunPtr (Ptr a -> CString -> LaInt64 -> IO LaInt64))
-- | Also for 'archiveReadDiskSetGnameLookup' and 'archiveReadDiskSetUnameLookup'
foreign import ccall "wrapper" mkReadLookup :: (Ptr a -> LaInt64 -> IO CString) -> IO (FunPtr (Ptr a -> LaInt64 -> IO CString))

-- | Can also be used with 'archiveReadExtractSetProgressCallback'
foreign import ccall "wrapper" mkCleanup :: (Ptr a -> IO ()) -> IO (FunPtr (Ptr a -> IO ()))

foreign import ccall "wrapper" mkMatch :: (Ptr Archive -> Ptr a -> Ptr ArchiveEntry -> IO ()) -> IO (FunPtr (Ptr Archive -> Ptr a -> Ptr ArchiveEntry -> IO ()))
foreign import ccall "wrapper" preMkFilter :: (Ptr Archive -> Ptr a -> Ptr ArchiveEntry -> IO CInt) -> IO (FunPtr (Ptr Archive -> Ptr a -> Ptr ArchiveEntry -> IO CInt))

mkOpenCallback :: ArchiveOpenCallback a -> IO (FunPtr (ArchiveOpenCallbackRaw a))
mkOpenCallback :: ArchiveOpenCallback a -> IO (FunPtr (ArchiveOpenCallbackRaw a))
mkOpenCallback f :: ArchiveOpenCallback a
f = let f' :: ArchiveOpenCallbackRaw a
f' = (ArchiveResult -> CInt) -> IO ArchiveResult -> IO CInt
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap ArchiveResult -> CInt
resultToErr (IO ArchiveResult -> IO CInt)
-> ArchiveOpenCallback a -> ArchiveOpenCallbackRaw a
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
.* ArchiveOpenCallback a
f in ArchiveOpenCallbackRaw a -> IO (FunPtr (ArchiveOpenCallbackRaw a))
forall a.
ArchiveOpenCallbackRaw a -> IO (FunPtr (ArchiveOpenCallbackRaw a))
mkOpenCallbackRaw ArchiveOpenCallbackRaw a
f'

mkCloseCallback :: ArchiveCloseCallback a -> IO (FunPtr (ArchiveCloseCallbackRaw a))
mkCloseCallback :: ArchiveCloseCallback a -> IO (FunPtr (ArchiveCloseCallbackRaw a))
mkCloseCallback f :: ArchiveCloseCallback a
f = let f' :: ArchiveCloseCallbackRaw a
f' = (ArchiveResult -> CInt) -> IO ArchiveResult -> IO CInt
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap ArchiveResult -> CInt
resultToErr (IO ArchiveResult -> IO CInt)
-> ArchiveCloseCallback a -> ArchiveCloseCallbackRaw a
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
.* ArchiveCloseCallback a
f in ArchiveCloseCallbackRaw a
-> IO (FunPtr (ArchiveCloseCallbackRaw a))
forall a.
ArchiveOpenCallbackRaw a -> IO (FunPtr (ArchiveOpenCallbackRaw a))
mkCloseCallbackRaw ArchiveCloseCallbackRaw a
f'

mkSwitchCallback :: ArchiveSwitchCallback a b -> IO (FunPtr (ArchiveSwitchCallbackRaw a b))
mkSwitchCallback :: ArchiveSwitchCallback a b
-> IO (FunPtr (ArchiveSwitchCallbackRaw a b))
mkSwitchCallback f :: ArchiveSwitchCallback a b
f = let f' :: ArchiveSwitchCallbackRaw a b
f' = (ArchiveResult -> CInt) -> IO ArchiveResult -> IO CInt
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap ArchiveResult -> CInt
resultToErr (IO ArchiveResult -> IO CInt)
-> ArchiveSwitchCallback a b -> ArchiveSwitchCallbackRaw a b
forall d e a b c.
(d -> e) -> (a -> b -> c -> d) -> a -> b -> c -> e
.** ArchiveSwitchCallback a b
f in ArchiveSwitchCallbackRaw a b
-> IO (FunPtr (ArchiveSwitchCallbackRaw a b))
forall a b.
ArchiveSwitchCallbackRaw a b
-> IO (FunPtr (ArchiveSwitchCallbackRaw a b))
mkSwitchCallbackRaw ArchiveSwitchCallbackRaw a b
f'

mkFilter :: (Ptr Archive -> Ptr a -> Ptr ArchiveEntry -> IO Bool) -> IO (FunPtr (Ptr Archive -> Ptr a -> Ptr ArchiveEntry -> IO CInt))
mkFilter :: (Ptr Archive -> Ptr a -> Ptr ArchiveEntry -> IO Bool)
-> IO
     (FunPtr (Ptr Archive -> Ptr a -> Ptr ArchiveEntry -> IO CInt))
mkFilter f :: Ptr Archive -> Ptr a -> Ptr ArchiveEntry -> IO Bool
f = let f' :: Ptr Archive -> Ptr a -> Ptr ArchiveEntry -> IO CInt
f' = (Bool -> CInt) -> IO Bool -> IO CInt
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Bool -> CInt
forall p. Num p => Bool -> p
boolToInt (IO Bool -> IO CInt)
-> (Ptr Archive -> Ptr a -> Ptr ArchiveEntry -> IO Bool)
-> Ptr Archive
-> Ptr a
-> Ptr ArchiveEntry
-> IO CInt
forall d e a b c.
(d -> e) -> (a -> b -> c -> d) -> a -> b -> c -> e
.** Ptr Archive -> Ptr a -> Ptr ArchiveEntry -> IO Bool
f in (Ptr Archive -> Ptr a -> Ptr ArchiveEntry -> IO CInt)
-> IO
     (FunPtr (Ptr Archive -> Ptr a -> Ptr ArchiveEntry -> IO CInt))
forall a.
(Ptr Archive -> Ptr a -> Ptr ArchiveEntry -> IO CInt)
-> IO
     (FunPtr (Ptr Archive -> Ptr a -> Ptr ArchiveEntry -> IO CInt))
preMkFilter Ptr Archive -> Ptr a -> Ptr ArchiveEntry -> IO CInt
f'
    where boolToInt :: Bool -> p
boolToInt False = 0
          boolToInt True  = 1



type ArchivePtr = C2HSImp.Ptr (Archive)
{-# LINE 384 "src/Codec/Archive/Foreign/Archive.chs" #-}

type ArchiveEntryPtr = C2HSImp.Ptr (ArchiveEntry)
{-# LINE 385 "src/Codec/Archive/Foreign/Archive.chs" #-}

type StatPtr = C2HSImp.Ptr (Stat)
{-# LINE 386 "src/Codec/Archive/Foreign/Archive.chs" #-}

-- | @FILE*@ in C
newtype FilePtr = FilePtr (C2HSImp.Ptr (FilePtr))
{-# LINE 388 "src/Codec/Archive/Foreign/Archive.chs" #-}



{-# LINE 390 "src/Codec/Archive/Foreign/Archive.chs" #-}


{-# LINE 391 "src/Codec/Archive/Foreign/Archive.chs" #-}


{-# LINE 392 "src/Codec/Archive/Foreign/Archive.chs" #-}


{-# LINE 393 "src/Codec/Archive/Foreign/Archive.chs" #-}


{-# LINE 394 "src/Codec/Archive/Foreign/Archive.chs" #-}



{-# LINE 396 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveZlibVersion :: IO ((CString))
archiveZlibVersion :: IO CString
archiveZlibVersion =
  IO CString
archiveZlibVersion'_ IO CString -> (CString -> IO CString) -> IO CString
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \res :: CString
res ->
  CString -> IO CString
forall (m :: * -> *) a. Monad m => a -> m a
return CString
res IO CString -> (CString -> IO CString) -> IO CString
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \res' :: CString
res' ->
  CString -> IO CString
forall (m :: * -> *) a. Monad m => a -> m a
return (CString
res')

{-# LINE 398 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveLiblzmaVersion :: IO ((CString))
archiveLiblzmaVersion =
  archiveLiblzmaVersion'_ >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 399 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveBzlibVersion :: IO ((CString))
archiveBzlibVersion =
  archiveBzlibVersion'_ >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 400 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveLiblz4Version :: IO ((CString))
archiveLiblz4Version =
  archiveLiblz4Version'_ >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 401 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveLibzstdVersion :: IO ((CString))
archiveLibzstdVersion =
  archiveLibzstdVersion'_ >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 402 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveErrorString :: (ArchivePtr) -> IO ((CString))
archiveErrorString a1 =
  let {a1' = id a1} in 
  archiveErrorString'_ a1' >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 404 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveFormatName :: (ArchivePtr) -> IO ((CString))
archiveFormatName a1 =
  let {a1' = id a1} in 
  archiveFormatName'_ a1' >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 405 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveFormat :: (ArchivePtr) -> IO ((ArchiveFormat))
archiveFormat a1 =
  let {a1' = id a1} in 
  archiveFormat'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 406 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveClearError :: (ArchivePtr) -> IO ()
archiveClearError a1 =
  let {a1' = id a1} in 
  archiveClearError'_ a1' >>
  return ()

{-# LINE 407 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveSetError :: (ArchivePtr) -> (CInt) -> (CString) -> IO ()
archiveSetError a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = fromIntegral a2} in 
  (flip ($)) a3 $ \a3' -> 
  archiveSetError'_ a1' a2' a3' >>
  return ()

{-# LINE 408 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveCopyError :: (ArchivePtr) -> (ArchivePtr) -> IO ()
archiveCopyError a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  archiveCopyError'_ a1' a2' >>
  return ()

{-# LINE 409 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveFileCount :: (ArchivePtr) -> IO ((CInt))
archiveFileCount a1 =
  let {a1' = id a1} in 
  archiveFileCount'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 410 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveVersionNumber :: (CInt)
archiveVersionNumber =
  C2HSImp.unsafePerformIO $
  archiveVersionNumber'_ >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 411 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveVersionString :: (String)
archiveVersionString =
  C2HSImp.unsafePerformIO $
  archiveVersionString'_ >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 412 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveVersionDetails :: (String)
archiveVersionDetails =
  C2HSImp.unsafePerformIO $
  archiveVersionDetails'_ >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 413 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveFilterCount :: (ArchivePtr) -> IO ((CInt))
archiveFilterCount a1 =
  let {a1' = id a1} in 
  archiveFilterCount'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 414 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveFilterBytes :: (ArchivePtr) -> (CInt) -> IO ((LaInt64))
archiveFilterBytes a1 a2 =
  let {a1' = id a1} in 
  let {a2' = fromIntegral a2} in 
  archiveFilterBytes'_ a1' a2' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 415 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveFilterCode :: (ArchivePtr) -> (CInt) -> IO ((Int))
archiveFilterCode a1 a2 =
  let {a1' = id a1} in 
  let {a2' = fromIntegral a2} in 
  archiveFilterCode'_ a1' a2' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 416 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveFilterName :: (ArchivePtr) -> (CInt) -> IO ((CString))
archiveFilterName a1 a2 =
  let {a1' = id a1} in 
  let {a2' = fromIntegral a2} in 
  archiveFilterName'_ a1' a2' >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 417 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveReadNew :: IO ((ArchivePtr))
archiveReadNew =
  archiveReadNew'_ >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 419 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveMatchExcluded :: (ArchivePtr) -> (ArchiveEntryPtr) -> IO ((Bool))
archiveMatchExcluded a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  archiveMatchExcluded'_ a1' a2' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 421 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchPathExcluded :: (ArchivePtr) -> (ArchiveEntryPtr) -> IO ((Bool))
archiveMatchPathExcluded a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  archiveMatchPathExcluded'_ a1' a2' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 422 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchExcludePattern :: (ArchivePtr) -> (CString) -> IO ((ArchiveResult))
archiveMatchExcludePattern a1 a2 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  archiveMatchExcludePattern'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 423 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchExcludePatternW :: (ArchivePtr) -> (CWString) -> IO ((ArchiveResult))
archiveMatchExcludePatternW a1 a2 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  archiveMatchExcludePatternW'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 424 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchSetInclusionRecursion :: (ArchivePtr) -> (Bool) -> IO ((ArchiveResult))
archiveMatchSetInclusionRecursion a1 a2 =
  let {a1' = id a1} in 
  let {a2' = C2HSImp.fromBool a2} in 
  archiveMatchSetInclusionRecursion'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 425 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchExcludePatternFromFile :: (ArchivePtr) -> (CString) -> (Bool) -> IO ((ArchiveResult))
archiveMatchExcludePatternFromFile a1 a2 a3 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  let {a3' = C2HSImp.fromBool a3} in 
  archiveMatchExcludePatternFromFile'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 426 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchExcludePatternFromFileW :: (ArchivePtr) -> (CWString) -> (Bool) -> IO ((ArchiveResult))
archiveMatchExcludePatternFromFileW a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = C2HSImp.fromBool a3} in 
  archiveMatchExcludePatternFromFileW'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 427 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchIncludePattern :: (ArchivePtr) -> (CString) -> IO ((ArchiveResult))
archiveMatchIncludePattern a1 a2 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  archiveMatchIncludePattern'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 428 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchIncludePatternW :: (ArchivePtr) -> (CWString) -> IO ((ArchiveResult))
archiveMatchIncludePatternW a1 a2 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  archiveMatchIncludePatternW'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 429 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchIncludePatternFromFile :: (ArchivePtr) -> (CString) -> (Bool) -> IO ((ArchiveResult))
archiveMatchIncludePatternFromFile a1 a2 a3 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  let {a3' = C2HSImp.fromBool a3} in 
  archiveMatchIncludePatternFromFile'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 430 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchIncludePatternFromFileW :: (ArchivePtr) -> (CWString) -> (Bool) -> IO ((ArchiveResult))
archiveMatchIncludePatternFromFileW a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = C2HSImp.fromBool a3} in 
  archiveMatchIncludePatternFromFileW'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 431 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchPathUnmatchedInclusions :: (ArchivePtr) -> IO ((CInt))
archiveMatchPathUnmatchedInclusions a1 =
  let {a1' = id a1} in 
  archiveMatchPathUnmatchedInclusions'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 432 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchPathUnmatchedInclusionsNext :: (ArchivePtr) -> IO ((ArchiveResult), (CString))
archiveMatchPathUnmatchedInclusionsNext a1 =
  let {a1' = id a1} in 
  alloca $ \a2' -> 
  archiveMatchPathUnmatchedInclusionsNext'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  peek  a2'>>= \a2'' -> 
  return (res', a2'')

{-# LINE 433 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchPathUnmatchedInclusionsNextW :: (ArchivePtr) -> IO ((ArchiveResult), (CWString))
archiveMatchPathUnmatchedInclusionsNextW a1 =
  let {a1' = id a1} in 
  alloca $ \a2' -> 
  archiveMatchPathUnmatchedInclusionsNextW'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  peek  a2'>>= \a2'' -> 
  return (res', a2'')

{-# LINE 434 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchTimeExcluded :: (ArchivePtr) -> (ArchiveEntryPtr) -> IO ((Bool))
archiveMatchTimeExcluded a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  archiveMatchTimeExcluded'_ a1' a2' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 435 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchIncludeTime :: (ArchivePtr) -> (TimeFlag) -> (CTime) -> (CLong) -> IO ((ArchiveResult))
archiveMatchIncludeTime a1 a2 a3 a4 =
  let {a1' = id a1} in 
  let {a2' = coerce a2} in 
  let {a3' = id a3} in 
  let {a4' = fromIntegral a4} in 
  archiveMatchIncludeTime'_ a1' a2' a3' a4' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 436 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchIncludeDate :: (ArchivePtr) -> (TimeFlag) -> (CString) -> IO ((ArchiveResult))
archiveMatchIncludeDate a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = coerce a2} in 
  (flip ($)) a3 $ \a3' -> 
  archiveMatchIncludeDate'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 437 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchIncludeDateW :: (ArchivePtr) -> (TimeFlag) -> (CWString) -> IO ((ArchiveResult))
archiveMatchIncludeDateW a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = coerce a2} in 
  let {a3' = castPtr a3} in 
  archiveMatchIncludeDateW'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 438 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchIncludeFileTime :: (ArchivePtr) -> (TimeFlag) -> (CString) -> IO ((ArchiveResult))
archiveMatchIncludeFileTime a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = coerce a2} in 
  (flip ($)) a3 $ \a3' -> 
  archiveMatchIncludeFileTime'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 439 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchIncludeFileTimeW :: (ArchivePtr) -> (TimeFlag) -> (CWString) -> IO ((ArchiveResult))
archiveMatchIncludeFileTimeW a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = coerce a2} in 
  let {a3' = castPtr a3} in 
  archiveMatchIncludeFileTimeW'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 440 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchExcludeEntry :: (ArchivePtr) -> (TimeFlag) -> (ArchiveEntryPtr) -> IO ((ArchiveResult))
archiveMatchExcludeEntry a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = coerce a2} in 
  let {a3' = id a3} in 
  archiveMatchExcludeEntry'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 441 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveMatchOwnerExcluded :: (ArchivePtr) -> (ArchiveEntryPtr) -> IO ((Bool))
archiveMatchOwnerExcluded a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  archiveMatchOwnerExcluded'_ a1' a2' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 443 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveReadSetOpenCallback :: (ArchivePtr) -> (FunPtr (ArchiveOpenCallbackRaw a)) -> IO ((ArchiveResult))
archiveReadSetOpenCallback a1 a2 =
  let {a1' = id a1} in 
  let {a2' = castFunPtr a2} in 
  archiveReadSetOpenCallback'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 445 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSetReadCallback :: (ArchivePtr) -> (FunPtr (ArchiveReadCallback a b)) -> IO ((ArchiveResult))
archiveReadSetReadCallback a1 a2 =
  let {a1' = id a1} in 
  let {a2' = castFunPtr a2} in 
  archiveReadSetReadCallback'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 446 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSetSeekCallback :: (ArchivePtr) -> (FunPtr (ArchiveSeekCallback a)) -> IO ((ArchiveResult))
archiveReadSetSeekCallback a1 a2 =
  let {a1' = id a1} in 
  let {a2' = castFunPtr a2} in 
  archiveReadSetSeekCallback'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 447 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSetSkipCallback :: (ArchivePtr) -> (FunPtr (ArchiveSeekCallback a)) -> IO ((ArchiveResult))
archiveReadSetSkipCallback a1 a2 =
  let {a1' = id a1} in 
  let {a2' = castFunPtr a2} in 
  archiveReadSetSkipCallback'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 448 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSetCloseCallback :: (ArchivePtr) -> (FunPtr (ArchiveCloseCallbackRaw a)) -> IO ((ArchiveResult))
archiveReadSetCloseCallback a1 a2 =
  let {a1' = id a1} in 
  let {a2' = castFunPtr a2} in 
  archiveReadSetCloseCallback'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 449 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSetSwitchCallback :: (ArchivePtr) -> (FunPtr (ArchiveSwitchCallbackRaw a n)) -> IO ((ArchiveResult))
archiveReadSetSwitchCallback a1 a2 =
  let {a1' = id a1} in 
  let {a2' = castFunPtr a2} in 
  archiveReadSetSwitchCallback'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 450 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveReadSetCallbackData :: (ArchivePtr) -> (Ptr a) -> IO ((ArchiveResult))
archiveReadSetCallbackData a1 a2 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  archiveReadSetCallbackData'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 452 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSetCallbackData2 :: (ArchivePtr) -> (Ptr a) -> (CUInt) -> IO ((ArchiveResult))
archiveReadSetCallbackData2 a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = fromIntegral a3} in 
  archiveReadSetCallbackData2'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 453 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadAddCallbackData :: (ArchivePtr) -> (Ptr a) -> (CUInt) -> IO ((ArchiveResult))
archiveReadAddCallbackData a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = fromIntegral a3} in 
  archiveReadAddCallbackData'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 454 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadAppendCallbackData :: (ArchivePtr) -> (Ptr a) -> IO ((ArchiveResult))
archiveReadAppendCallbackData a1 a2 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  archiveReadAppendCallbackData'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 455 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadPrependCallbackData :: (ArchivePtr) -> (Ptr a) -> IO ((ArchiveResult))
archiveReadPrependCallbackData a1 a2 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  archiveReadPrependCallbackData'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 456 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveReadOpen1 :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadOpen1 a1 =
  let {a1' = id a1} in 
  archiveReadOpen1'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 458 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadOpen :: (ArchivePtr) -> (Ptr a) -> (FunPtr (ArchiveOpenCallbackRaw a)) -> (FunPtr (ArchiveReadCallback a b)) -> (FunPtr (ArchiveCloseCallbackRaw a)) -> IO ((ArchiveResult))
archiveReadOpen a1 a2 a3 a4 a5 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = castFunPtr a3} in 
  let {a4' = castFunPtr a4} in 
  let {a5' = castFunPtr a5} in 
  archiveReadOpen'_ a1' a2' a3' a4' a5' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 464 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadOpen2 :: (ArchivePtr) -> (Ptr a) -> (FunPtr (ArchiveOpenCallbackRaw a)) -> (FunPtr (ArchiveReadCallback a b)) -> (FunPtr (ArchiveSkipCallback a)) -> (FunPtr (ArchiveCloseCallbackRaw a)) -> IO ((ArchiveResult))
archiveReadOpen2 a1 a2 a3 a4 a5 a6 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = castFunPtr a3} in 
  let {a4' = castFunPtr a4} in 
  let {a5' = castFunPtr a5} in 
  let {a6' = castFunPtr a6} in 
  archiveReadOpen2'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 471 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveReadOpenFilename :: (ArchivePtr) -> (CString) -> (CSize) -> IO ((ArchiveResult))
archiveReadOpenFilename a1 a2 a3 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  let {a3' = id a3} in 
  archiveReadOpenFilename'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 473 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadOpenFilenameW :: (ArchivePtr) -> (CWString) -> (CSize) -> IO ((ArchiveResult))
archiveReadOpenFilenameW a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = id a3} in 
  archiveReadOpenFilenameW'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 474 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadOpenFilenames :: (ArchivePtr) -> (Ptr CString) -> (CSize) -> IO ((ArchiveResult))
archiveReadOpenFilenames a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  let {a3' = id a3} in 
  archiveReadOpenFilenames'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 475 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadOpenMemory :: (ArchivePtr) -> (Ptr a) -> (CSize) -> IO ((ArchiveResult))
archiveReadOpenMemory a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = id a3} in 
  archiveReadOpenMemory'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 476 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadOpenFd :: (ArchivePtr) -> (Fd) -> (CSize) -> IO ((ArchiveResult))
archiveReadOpenFd a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = coerce a2} in 
  let {a3' = id a3} in 
  archiveReadOpenFd'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 477 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadOpenFILE :: (ArchivePtr) -> (FilePtr) -> IO ((ArchiveResult))
archiveReadOpenFILE a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  archiveReadOpenFILE'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 478 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadNextHeader :: (ArchivePtr) -> IO ((ArchiveResult), (ArchiveEntryPtr))
archiveReadNextHeader a1 =
  let {a1' = id a1} in 
  alloca $ \a2' -> 
  archiveReadNextHeader'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  peek  a2'>>= \a2'' -> 
  return (res', a2'')

{-# LINE 479 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadNextHeader2 :: (ArchivePtr) -> (ArchiveEntryPtr) -> IO ((ArchiveResult))
archiveReadNextHeader2 a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  archiveReadNextHeader2'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 480 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadHeaderPosition :: (ArchivePtr) -> IO ((LaInt64))
archiveReadHeaderPosition a1 =
  let {a1' = id a1} in 
  archiveReadHeaderPosition'_ a1' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 481 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadHasEncryptedEntries :: (ArchivePtr) -> IO ((ArchiveEncryption))
archiveReadHasEncryptedEntries a1 =
  let {a1' = id a1} in 
  archiveReadHasEncryptedEntries'_ a1' >>= \res ->
  let {res' = encryptionResult res} in
  return (res')

{-# LINE 482 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadFormatCapabilities :: (ArchivePtr) -> IO ((ArchiveCapabilities))
archiveReadFormatCapabilities a1 =
  let {a1' = id a1} in 
  archiveReadFormatCapabilities'_ a1' >>= \res ->
  let {res' = ArchiveCapabilities res} in
  return (res')

{-# LINE 483 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadData :: (ArchivePtr) -> (Ptr a) -> (CSize) -> IO ((LaSSize))
archiveReadData a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = id a3} in 
  archiveReadData'_ a1' a2' a3' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 484 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveSeekData :: (ArchivePtr) -> (LaInt64) -> (CInt) -> IO ((LaInt64))
archiveSeekData a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  let {a3' = fromIntegral a3} in 
  archiveSeekData'_ a1' a2' a3' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 485 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadDataBlock :: (ArchivePtr) -> (Ptr (Ptr a)) -> (Ptr CSize) -> (Ptr LaInt64) -> IO ((ArchiveResult))
archiveReadDataBlock a1 a2 a3 a4 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = id a3} in 
  let {a4' = id a4} in 
  archiveReadDataBlock'_ a1' a2' a3' a4' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 486 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadDataSkip :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadDataSkip a1 =
  let {a1' = id a1} in 
  archiveReadDataSkip'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 487 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadDataIntoFd :: (ArchivePtr) -> (Fd) -> IO ((ArchiveResult))
archiveReadDataIntoFd a1 a2 =
  let {a1' = id a1} in 
  let {a2' = coerce a2} in 
  archiveReadDataIntoFd'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 488 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSetFormatOption :: (ArchivePtr) -> (CString) -> (CString) -> (CString) -> IO ((ArchiveResult))
archiveReadSetFormatOption a1 a2 a3 a4 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  (flip ($)) a3 $ \a3' -> 
  (flip ($)) a4 $ \a4' -> 
  archiveReadSetFormatOption'_ a1' a2' a3' a4' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 489 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSetFilterOption :: (ArchivePtr) -> (CString) -> (CString) -> (CString) -> IO ((ArchiveResult))
archiveReadSetFilterOption a1 a2 a3 a4 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  (flip ($)) a3 $ \a3' -> 
  (flip ($)) a4 $ \a4' -> 
  archiveReadSetFilterOption'_ a1' a2' a3' a4' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 490 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSetOption :: (ArchivePtr) -> (CString) -> (CString) -> (CString) -> IO ((ArchiveResult))
archiveReadSetOption a1 a2 a3 a4 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  (flip ($)) a3 $ \a3' -> 
  (flip ($)) a4 $ \a4' -> 
  archiveReadSetOption'_ a1' a2' a3' a4' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 491 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSetOptions :: (ArchivePtr) -> (CString) -> IO ((ArchiveResult))
archiveReadSetOptions a1 a2 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  archiveReadSetOptions'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 492 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveReadAddPassphrase :: (ArchivePtr) -> (CString) -> IO ((ArchiveResult))
archiveReadAddPassphrase a1 a2 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  archiveReadAddPassphrase'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 494 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSetPassphraseCallback :: (ArchivePtr) -> (Ptr a) -> (FunPtr (ArchivePassphraseCallback a)) -> IO ((ArchiveResult))
archiveReadSetPassphraseCallback a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = castFunPtr a3} in 
  archiveReadSetPassphraseCallback'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 495 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveReadExtract :: (ArchivePtr) -> (ArchiveEntryPtr) -> (Flags) -> IO ((ArchiveResult))
archiveReadExtract a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  let {a3' = coerce a3} in 
  archiveReadExtract'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 497 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadExtract2 :: (ArchivePtr) -> (ArchiveEntryPtr) -> (ArchivePtr) -> IO ((ArchiveResult))
archiveReadExtract2 a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  let {a3' = id a3} in 
  archiveReadExtract2'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 498 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadExtractSetProgressCallback :: (ArchivePtr) -> (FunPtr (Ptr a -> IO ())) -> (Ptr a) -> IO ((()))
archiveReadExtractSetProgressCallback a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = castFunPtr a2} in 
  let {a3' = castPtr a3} in 
  archiveReadExtractSetProgressCallback'_ a1' a2' a3' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 499 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadExtractSetSkipFile :: (ArchivePtr) -> (LaInt64) -> (LaInt64) -> IO ()
archiveReadExtractSetSkipFile a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  let {a3' = id a3} in 
  archiveReadExtractSetSkipFile'_ a1' a2' a3' >>
  return ()

{-# LINE 500 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadClose :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadClose a1 =
  let {a1' = id a1} in 
  archiveReadClose'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 501 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadFree :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadFree a1 =
  let {a1' = id a1} in 
  archiveReadFree'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 502 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveWriteNew :: IO ((ArchivePtr))
archiveWriteNew =
  archiveWriteNew'_ >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 504 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetBytesPerBlock :: (ArchivePtr) -> (CInt) -> IO ((ArchiveResult))
archiveWriteSetBytesPerBlock a1 a2 =
  let {a1' = id a1} in 
  let {a2' = fromIntegral a2} in 
  archiveWriteSetBytesPerBlock'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 505 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteGetBytesPerBlock :: (ArchivePtr) -> IO ((CInt))
archiveWriteGetBytesPerBlock a1 =
  let {a1' = id a1} in 
  archiveWriteGetBytesPerBlock'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 506 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetBytesInLastBlock :: (ArchivePtr) -> (CInt) -> IO ((ArchiveResult))
archiveWriteSetBytesInLastBlock a1 a2 =
  let {a1' = id a1} in 
  let {a2' = fromIntegral a2} in 
  archiveWriteSetBytesInLastBlock'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 507 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteGetBytesInLastBlock :: (ArchivePtr) -> IO ((CInt))
archiveWriteGetBytesInLastBlock a1 =
  let {a1' = id a1} in 
  archiveWriteGetBytesInLastBlock'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 508 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetSkipFile :: (ArchivePtr) -> (LaInt64) -> (LaInt64) -> IO ((ArchiveResult))
archiveWriteSetSkipFile a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  let {a3' = id a3} in 
  archiveWriteSetSkipFile'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 509 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteAddFilter :: (ArchivePtr) -> (ArchiveFilter) -> IO ((ArchiveResult))
archiveWriteAddFilter a1 a2 =
  let {a1' = id a1} in 
  let {a2' = (fromIntegral . fromEnum) a2} in 
  archiveWriteAddFilter'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 510 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteAddFilterByName :: (ArchivePtr) -> (CString) -> IO ((ArchiveResult))
archiveWriteAddFilterByName a1 a2 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  archiveWriteAddFilterByName'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 511 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteAddFilterB64encode :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteAddFilterB64encode a1 =
  let {a1' = id a1} in 
  archiveWriteAddFilterB64encode'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 512 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteAddFilterBzip2 :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteAddFilterBzip2 a1 =
  let {a1' = id a1} in 
  archiveWriteAddFilterBzip2'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 513 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteAddFilterCompress :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteAddFilterCompress a1 =
  let {a1' = id a1} in 
  archiveWriteAddFilterCompress'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 514 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteAddFilterGrzip :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteAddFilterGrzip a1 =
  let {a1' = id a1} in 
  archiveWriteAddFilterGrzip'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 515 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteAddFilterLrzip :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteAddFilterLrzip a1 =
  let {a1' = id a1} in 
  archiveWriteAddFilterLrzip'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 516 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteAddFilterLz4 :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteAddFilterLz4 a1 =
  let {a1' = id a1} in 
  archiveWriteAddFilterLz4'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 517 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteAddFilterLzip :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteAddFilterLzip a1 =
  let {a1' = id a1} in 
  archiveWriteAddFilterLzip'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 518 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteAddFilterLzma :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteAddFilterLzma a1 =
  let {a1' = id a1} in 
  archiveWriteAddFilterLzma'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 519 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteAddFilterLzop :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteAddFilterLzop a1 =
  let {a1' = id a1} in 
  archiveWriteAddFilterLzop'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 520 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteAddFilterNone :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteAddFilterNone a1 =
  let {a1' = id a1} in 
  archiveWriteAddFilterNone'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 521 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteAddFilterProgram :: (ArchivePtr) -> (CString) -> IO ((ArchiveResult))
archiveWriteAddFilterProgram a1 a2 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  archiveWriteAddFilterProgram'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 522 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteAddFilterUuencode :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteAddFilterUuencode a1 =
  let {a1' = id a1} in 
  archiveWriteAddFilterUuencode'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 523 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteAddFilterXz :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteAddFilterXz a1 =
  let {a1' = id a1} in 
  archiveWriteAddFilterXz'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 524 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteAddFilterZstd :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteAddFilterZstd a1 =
  let {a1' = id a1} in 
  archiveWriteAddFilterZstd'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 525 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveWriteSetFormat :: (ArchivePtr) -> (ArchiveFormat) -> IO ((ArchiveResult))
archiveWriteSetFormat a1 a2 =
  let {a1' = id a1} in 
  let {a2' = (fromIntegral . fromEnum) a2} in 
  archiveWriteSetFormat'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 527 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetFormatByName :: (ArchivePtr) -> (CString) -> IO ((ArchiveResult))
archiveWriteSetFormatByName a1 a2 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  archiveWriteSetFormatByName'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 528 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetFormat7zip :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteSetFormat7zip a1 =
  let {a1' = id a1} in 
  archiveWriteSetFormat7zip'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 529 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetFormatArBsd :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteSetFormatArBsd a1 =
  let {a1' = id a1} in 
  archiveWriteSetFormatArBsd'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 530 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetFormatArSvr4 :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteSetFormatArSvr4 a1 =
  let {a1' = id a1} in 
  archiveWriteSetFormatArSvr4'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 531 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetFormatCpio :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteSetFormatCpio a1 =
  let {a1' = id a1} in 
  archiveWriteSetFormatCpio'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 532 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetFormatCpioNewc :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteSetFormatCpioNewc a1 =
  let {a1' = id a1} in 
  archiveWriteSetFormatCpioNewc'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 533 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetFormatGnutar :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteSetFormatGnutar a1 =
  let {a1' = id a1} in 
  archiveWriteSetFormatGnutar'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 534 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetFormatMtree :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteSetFormatMtree a1 =
  let {a1' = id a1} in 
  archiveWriteSetFormatMtree'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 535 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetFormatMtreeClassic :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteSetFormatMtreeClassic a1 =
  let {a1' = id a1} in 
  archiveWriteSetFormatMtreeClassic'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 536 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetFormatPax :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteSetFormatPax a1 =
  let {a1' = id a1} in 
  archiveWriteSetFormatPax'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 537 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetFormatPaxRestricted :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteSetFormatPaxRestricted a1 =
  let {a1' = id a1} in 
  archiveWriteSetFormatPaxRestricted'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 538 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetFormatRaw :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteSetFormatRaw a1 =
  let {a1' = id a1} in 
  archiveWriteSetFormatRaw'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 539 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetFormatShar :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteSetFormatShar a1 =
  let {a1' = id a1} in 
  archiveWriteSetFormatShar'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 540 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetFormatSharDump :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteSetFormatSharDump a1 =
  let {a1' = id a1} in 
  archiveWriteSetFormatSharDump'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 541 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetFormatUstar :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteSetFormatUstar a1 =
  let {a1' = id a1} in 
  archiveWriteSetFormatUstar'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 542 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetFormatV7tar :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteSetFormatV7tar a1 =
  let {a1' = id a1} in 
  archiveWriteSetFormatV7tar'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 543 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetFormatWarc :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteSetFormatWarc a1 =
  let {a1' = id a1} in 
  archiveWriteSetFormatWarc'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 544 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetFormatXar :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteSetFormatXar a1 =
  let {a1' = id a1} in 
  archiveWriteSetFormatXar'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 545 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetFormatZip :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteSetFormatZip a1 =
  let {a1' = id a1} in 
  archiveWriteSetFormatZip'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 546 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetFormatFilterByExt :: (ArchivePtr) -> (CString) -> IO ((ArchiveResult))
archiveWriteSetFormatFilterByExt a1 a2 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  archiveWriteSetFormatFilterByExt'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 547 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetFormatFilterByExtDef :: (ArchivePtr) -> (CString) -> (CString) -> IO ((ArchiveResult))
archiveWriteSetFormatFilterByExtDef a1 a2 a3 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  (flip ($)) a3 $ \a3' -> 
  archiveWriteSetFormatFilterByExtDef'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 548 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteZipSetCompressionDeflate :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteZipSetCompressionDeflate a1 =
  let {a1' = id a1} in 
  archiveWriteZipSetCompressionDeflate'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 549 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteZipSetCompressionStore :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteZipSetCompressionStore a1 =
  let {a1' = id a1} in 
  archiveWriteZipSetCompressionStore'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 550 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteOpen :: (ArchivePtr) -> (Ptr a) -> (FunPtr (ArchiveOpenCallbackRaw a)) -> (FunPtr (ArchiveWriteCallback a b)) -> (FunPtr (ArchiveCloseCallbackRaw a)) -> IO ((ArchiveResult))
archiveWriteOpen a1 a2 a3 a4 a5 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = castFunPtr a3} in 
  let {a4' = castFunPtr a4} in 
  let {a5' = castFunPtr a5} in 
  archiveWriteOpen'_ a1' a2' a3' a4' a5' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 556 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteOpenFd :: (ArchivePtr) -> (Fd) -> IO ((ArchiveResult))
archiveWriteOpenFd a1 a2 =
  let {a1' = id a1} in 
  let {a2' = coerce a2} in 
  archiveWriteOpenFd'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 557 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteOpenFilename :: (ArchivePtr) -> (CString) -> IO ((ArchiveResult))
archiveWriteOpenFilename a1 a2 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  archiveWriteOpenFilename'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 558 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteOpenFilenameW :: (ArchivePtr) -> (CWString) -> IO ((ArchiveResult))
archiveWriteOpenFilenameW a1 a2 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  archiveWriteOpenFilenameW'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 559 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteOpenFILE :: (ArchivePtr) -> (FilePtr) -> IO ((ArchiveResult))
archiveWriteOpenFILE a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  archiveWriteOpenFILE'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 560 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteOpenMemory :: (ArchivePtr) -> (Ptr a) -> (CSize) -> IO ((ArchiveResult), (CSize))
archiveWriteOpenMemory a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = id a3} in 
  alloca $ \a4' -> 
  archiveWriteOpenMemory'_ a1' a2' a3' a4' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  peek  a4'>>= \a4'' -> 
  return (res', a4'')

{-# LINE 561 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveWriteHeader :: (ArchivePtr) -> (ArchiveEntryPtr) -> IO ((ArchiveResult))
archiveWriteHeader a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  archiveWriteHeader'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 563 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteData :: (ArchivePtr) -> (Ptr a) -> (CSize) -> IO ((LaSSize))
archiveWriteData a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = id a3} in 
  archiveWriteData'_ a1' a2' a3' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 564 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteDataBlock :: (ArchivePtr) -> (Ptr a) -> (CSize) -> (LaInt64) -> IO ((LaSSize))
archiveWriteDataBlock a1 a2 a3 a4 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = id a3} in 
  let {a4' = id a4} in 
  archiveWriteDataBlock'_ a1' a2' a3' a4' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 565 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveWriteFinishEntry :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteFinishEntry a1 =
  let {a1' = id a1} in 
  archiveWriteFinishEntry'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 567 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteClose :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteClose a1 =
  let {a1' = id a1} in 
  archiveWriteClose'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 568 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteFail :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteFail a1 =
  let {a1' = id a1} in 
  archiveWriteFail'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 569 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteFree :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteFree a1 =
  let {a1' = id a1} in 
  archiveWriteFree'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 570 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveWriteSetFormatOption :: (ArchivePtr) -> (CString) -> (CString) -> (CString) -> IO ((ArchiveResult))
archiveWriteSetFormatOption a1 a2 a3 a4 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  (flip ($)) a3 $ \a3' -> 
  (flip ($)) a4 $ \a4' -> 
  archiveWriteSetFormatOption'_ a1' a2' a3' a4' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 572 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetFilterOption :: (ArchivePtr) -> (CString) -> (CString) -> (CString) -> IO ((ArchiveResult))
archiveWriteSetFilterOption a1 a2 a3 a4 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  (flip ($)) a3 $ \a3' -> 
  (flip ($)) a4 $ \a4' -> 
  archiveWriteSetFilterOption'_ a1' a2' a3' a4' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 573 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetOption :: (ArchivePtr) -> (CString) -> (CString) -> (CString) -> IO ((ArchiveResult))
archiveWriteSetOption a1 a2 a3 a4 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  (flip ($)) a3 $ \a3' -> 
  (flip ($)) a4 $ \a4' -> 
  archiveWriteSetOption'_ a1' a2' a3' a4' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 574 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetOptions :: (ArchivePtr) -> (CString) -> IO ((ArchiveResult))
archiveWriteSetOptions a1 a2 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  archiveWriteSetOptions'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 575 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveWriteSetPassphrase :: (ArchivePtr) -> (CString) -> IO ((ArchiveResult))
archiveWriteSetPassphrase a1 a2 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  archiveWriteSetPassphrase'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 577 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteSetPassphraseCallback :: (ArchivePtr) -> (Ptr a) -> (FunPtr (ArchivePassphraseCallback a)) -> IO ((ArchiveResult))
archiveWriteSetPassphraseCallback a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = castFunPtr a3} in 
  archiveWriteSetPassphraseCallback'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 578 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteDiskSetOptions :: (ArchivePtr) -> (Flags) -> IO ((ArchiveResult))
archiveWriteDiskSetOptions a1 a2 =
  let {a1' = id a1} in 
  let {a2' = coerce a2} in 
  archiveWriteDiskSetOptions'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 579 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveWriteDiskNew :: IO ((ArchivePtr))
archiveWriteDiskNew =
  archiveWriteDiskNew'_ >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 581 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteDiskSetSkipFile :: (ArchivePtr) -> (LaInt64) -> (LaInt64) -> IO ((ArchiveResult))
archiveWriteDiskSetSkipFile a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  let {a3' = id a3} in 
  archiveWriteDiskSetSkipFile'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 582 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveWriteDiskSetStandardLookup :: (ArchivePtr) -> IO ((ArchiveResult))
archiveWriteDiskSetStandardLookup a1 =
  let {a1' = id a1} in 
  archiveWriteDiskSetStandardLookup'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 584 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteDiskSetGroupLookup :: (ArchivePtr) -> (Ptr a) -> (FunPtr (Ptr a -> CString -> LaInt64 -> IO LaInt64)) -> (FunPtr (Ptr a -> IO ())) -> IO ((ArchiveResult))
archiveWriteDiskSetGroupLookup a1 a2 a3 a4 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = castFunPtr a3} in 
  let {a4' = castFunPtr a4} in 
  archiveWriteDiskSetGroupLookup'_ a1' a2' a3' a4' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 589 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteDiskSetUserLookup :: (ArchivePtr) -> (Ptr a) -> (FunPtr (Ptr a -> CString -> LaInt64 -> IO LaInt64)) -> (FunPtr (Ptr a -> IO ())) -> IO ((ArchiveResult))
archiveWriteDiskSetUserLookup a1 a2 a3 a4 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = castFunPtr a3} in 
  let {a4' = castFunPtr a4} in 
  archiveWriteDiskSetUserLookup'_ a1' a2' a3' a4' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 594 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteDiskGid :: (ArchivePtr) -> (CString) -> (LaInt64) -> IO ((LaInt64))
archiveWriteDiskGid a1 a2 a3 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  let {a3' = id a3} in 
  archiveWriteDiskGid'_ a1' a2' a3' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 595 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveWriteDiskUid :: (ArchivePtr) -> (CString) -> (LaInt64) -> IO ((LaInt64))
archiveWriteDiskUid a1 a2 a3 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  let {a3' = id a3} in 
  archiveWriteDiskUid'_ a1' a2' a3' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 596 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveReadDiskNew :: IO ((ArchivePtr))
archiveReadDiskNew =
  archiveReadDiskNew'_ >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 598 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadDiskSetSymlinkLogical :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadDiskSetSymlinkLogical a1 =
  let {a1' = id a1} in 
  archiveReadDiskSetSymlinkLogical'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 599 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadDiskSetSymlinkPhysical :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadDiskSetSymlinkPhysical a1 =
  let {a1' = id a1} in 
  archiveReadDiskSetSymlinkPhysical'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 600 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadDiskSetSymlinkHybrid :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadDiskSetSymlinkHybrid a1 =
  let {a1' = id a1} in 
  archiveReadDiskSetSymlinkHybrid'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 601 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadDiskEntryFromFile :: (ArchivePtr) -> (ArchiveEntryPtr) -> (Fd) -> (StatPtr) -> IO ((ArchiveResult))
archiveReadDiskEntryFromFile a1 a2 a3 a4 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  let {a3' = coerce a3} in 
  let {a4' = id a4} in 
  archiveReadDiskEntryFromFile'_ a1' a2' a3' a4' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 602 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadDiskGname :: (ArchivePtr) -> (LaInt64) -> IO ((CString))
archiveReadDiskGname a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  archiveReadDiskGname'_ a1' a2' >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 603 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadDiskUname :: (ArchivePtr) -> (LaInt64) -> IO ((CString))
archiveReadDiskUname a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  archiveReadDiskUname'_ a1' a2' >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 604 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadDiskSetStandardLookup :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadDiskSetStandardLookup a1 =
  let {a1' = id a1} in 
  archiveReadDiskSetStandardLookup'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 605 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadDiskSetGnameLookup :: (ArchivePtr) -> (Ptr a) -> (FunPtr (Ptr a -> LaInt64 -> IO CString )) -> (FunPtr (Ptr a -> IO ())) -> IO ((ArchiveResult))
archiveReadDiskSetGnameLookup a1 a2 a3 a4 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = castFunPtr a3} in 
  let {a4' = castFunPtr a4} in 
  archiveReadDiskSetGnameLookup'_ a1' a2' a3' a4' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 610 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadDiskSetUnameLookup :: (ArchivePtr) -> (Ptr a) -> (FunPtr (Ptr a -> LaInt64 -> IO CString )) -> (FunPtr (Ptr a -> IO ())) -> IO ((ArchiveResult))
archiveReadDiskSetUnameLookup a1 a2 a3 a4 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = castFunPtr a3} in 
  let {a4' = castFunPtr a4} in 
  archiveReadDiskSetUnameLookup'_ a1' a2' a3' a4' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 615 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadDiskOpen :: (ArchivePtr) -> (CString) -> IO ((ArchiveResult))
archiveReadDiskOpen a1 a2 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  archiveReadDiskOpen'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 616 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadDiskOpenW :: (ArchivePtr) -> (CWString) -> IO ((ArchiveResult))
archiveReadDiskOpenW a1 a2 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  archiveReadDiskOpenW'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 617 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadDiskDescend :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadDiskDescend a1 =
  let {a1' = id a1} in 
  archiveReadDiskDescend'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 618 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadDiskCanDescend :: (ArchivePtr) -> IO ((Bool))
archiveReadDiskCanDescend a1 =
  let {a1' = id a1} in 
  archiveReadDiskCanDescend'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 619 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadDiskCurrentFilesystem :: (ArchivePtr) -> IO ((CInt))
archiveReadDiskCurrentFilesystem a1 =
  let {a1' = id a1} in 
  archiveReadDiskCurrentFilesystem'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 620 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadDiskCurrentFilesystemIsSynthetic :: (ArchivePtr) -> IO ((Bool))
archiveReadDiskCurrentFilesystemIsSynthetic a1 =
  let {a1' = id a1} in 
  archiveReadDiskCurrentFilesystemIsSynthetic'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 621 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadDiskCurrentFilesystemIsRemote :: (ArchivePtr) -> IO ((Bool))
archiveReadDiskCurrentFilesystemIsRemote a1 =
  let {a1' = id a1} in 
  archiveReadDiskCurrentFilesystemIsRemote'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 622 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadDiskSetAtimeRestored :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadDiskSetAtimeRestored a1 =
  let {a1' = id a1} in 
  archiveReadDiskSetAtimeRestored'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 623 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadDiskSetBehavior :: (ArchivePtr) -> (Flags) -> IO ((ArchiveResult))
archiveReadDiskSetBehavior a1 a2 =
  let {a1' = id a1} in 
  let {a2' = coerce a2} in 
  archiveReadDiskSetBehavior'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 624 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveReadDiskSetMatching :: (ArchivePtr) -> (ArchivePtr) -> (FunPtr (ArchivePtr -> Ptr a -> ArchiveEntryPtr -> IO ())) -> (Ptr a) -> IO ((ArchiveResult))
archiveReadDiskSetMatching a1 a2 a3 a4 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  let {a3' = castFunPtr a3} in 
  let {a4' = castPtr a4} in 
  archiveReadDiskSetMatching'_ a1' a2' a3' a4' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 630 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadDiskSetMetadataFilterCallback :: (ArchivePtr) -> (FunPtr (ArchivePtr -> Ptr a -> ArchiveEntry -> IO CInt)) -> (Ptr a) -> IO ((ArchiveResult))
archiveReadDiskSetMetadataFilterCallback a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = castFunPtr a2} in 
  let {a3' = castPtr a3} in 
  archiveReadDiskSetMetadataFilterCallback'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 634 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveFree :: (ArchivePtr) -> IO ((ArchiveResult))
archiveFree a1 =
  let {a1' = id a1} in 
  archiveFree'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 636 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveMatchIncludeGnameW :: (ArchivePtr) -> (CWString) -> IO ((ArchiveResult))
archiveMatchIncludeGnameW a1 a2 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  archiveMatchIncludeGnameW'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 638 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchIncludeGname :: (ArchivePtr) -> (CString) -> IO ((ArchiveResult))
archiveMatchIncludeGname a1 a2 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  archiveMatchIncludeGname'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 639 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchIncludeUnameW :: (ArchivePtr) -> (CWString) -> IO ((ArchiveResult))
archiveMatchIncludeUnameW a1 a2 =
  let {a1' = id a1} in 
  let {a2' = castPtr a2} in 
  archiveMatchIncludeUnameW'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 640 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchIncludeUname :: (ArchivePtr) -> (CString) -> IO ((ArchiveResult))
archiveMatchIncludeUname a1 a2 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  archiveMatchIncludeUname'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 641 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchIncludeGid :: (ArchivePtr) -> (Id) -> IO ((ArchiveResult))
archiveMatchIncludeGid a1 a2 =
  let {a1' = id a1} in 
  let {a2' = coerce a2} in 
  archiveMatchIncludeGid'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 642 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveMatchIncludeUid :: (ArchivePtr) -> (Id) -> IO ((ArchiveResult))
archiveMatchIncludeUid a1 a2 =
  let {a1' = id a1} in 
  let {a2' = coerce a2} in 
  archiveMatchIncludeUid'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 643 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFilterAll :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFilterAll a1 =
  let {a1' = id a1} in 
  archiveReadSupportFilterAll'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 644 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFilterBzip2 :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFilterBzip2 a1 =
  let {a1' = id a1} in 
  archiveReadSupportFilterBzip2'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 645 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFilterCompress :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFilterCompress a1 =
  let {a1' = id a1} in 
  archiveReadSupportFilterCompress'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 646 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFilterGzip :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFilterGzip a1 =
  let {a1' = id a1} in 
  archiveReadSupportFilterGzip'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 647 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFilterGrzip :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFilterGrzip a1 =
  let {a1' = id a1} in 
  archiveReadSupportFilterGrzip'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 648 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFilterLrzip :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFilterLrzip a1 =
  let {a1' = id a1} in 
  archiveReadSupportFilterLrzip'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 649 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFilterLz4 :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFilterLz4 a1 =
  let {a1' = id a1} in 
  archiveReadSupportFilterLz4'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 650 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFilterLzip :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFilterLzip a1 =
  let {a1' = id a1} in 
  archiveReadSupportFilterLzip'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 651 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFilterLzma :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFilterLzma a1 =
  let {a1' = id a1} in 
  archiveReadSupportFilterLzma'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 652 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFilterLzop :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFilterLzop a1 =
  let {a1' = id a1} in 
  archiveReadSupportFilterLzop'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 653 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFilterNone :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFilterNone a1 =
  let {a1' = id a1} in 
  archiveReadSupportFilterNone'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 654 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFilterProgram :: (ArchivePtr) -> (CString) -> IO ((ArchiveResult))
archiveReadSupportFilterProgram a1 a2 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  archiveReadSupportFilterProgram'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 655 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFilterProgramSignature :: (ArchivePtr) -> (CString) -> (Ptr a) -> (CSize) -> IO ((ArchiveResult))
archiveReadSupportFilterProgramSignature a1 a2 a3 a4 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  let {a3' = castPtr a3} in 
  let {a4' = coerce a4} in 
  archiveReadSupportFilterProgramSignature'_ a1' a2' a3' a4' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 656 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFilterRpm :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFilterRpm a1 =
  let {a1' = id a1} in 
  archiveReadSupportFilterRpm'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 657 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFilterUu :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFilterUu a1 =
  let {a1' = id a1} in 
  archiveReadSupportFilterUu'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 658 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFilterXz :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFilterXz a1 =
  let {a1' = id a1} in 
  archiveReadSupportFilterXz'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 659 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFormat7zip :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFormat7zip a1 =
  let {a1' = id a1} in 
  archiveReadSupportFormat7zip'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 660 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFormatAll :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFormatAll a1 =
  let {a1' = id a1} in 
  archiveReadSupportFormatAll'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 661 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFormatAr :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFormatAr a1 =
  let {a1' = id a1} in 
  archiveReadSupportFormatAr'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 662 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFormatByCode :: (ArchivePtr) -> (CInt) -> IO ((ArchiveResult))
archiveReadSupportFormatByCode a1 a2 =
  let {a1' = id a1} in 
  let {a2' = fromIntegral a2} in 
  archiveReadSupportFormatByCode'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 663 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFormatCab :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFormatCab a1 =
  let {a1' = id a1} in 
  archiveReadSupportFormatCab'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 664 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFormatCpio :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFormatCpio a1 =
  let {a1' = id a1} in 
  archiveReadSupportFormatCpio'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 665 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFormatEmpty :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFormatEmpty a1 =
  let {a1' = id a1} in 
  archiveReadSupportFormatEmpty'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 666 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFormatGnutar :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFormatGnutar a1 =
  let {a1' = id a1} in 
  archiveReadSupportFormatGnutar'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 667 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFormatIso9660 :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFormatIso9660 a1 =
  let {a1' = id a1} in 
  archiveReadSupportFormatIso9660'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 668 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFormatLha :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFormatLha a1 =
  let {a1' = id a1} in 
  archiveReadSupportFormatLha'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 669 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFormatMtree :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFormatMtree a1 =
  let {a1' = id a1} in 
  archiveReadSupportFormatMtree'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 670 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFormatRar :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFormatRar a1 =
  let {a1' = id a1} in 
  archiveReadSupportFormatRar'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 671 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFormatRar5 :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFormatRar5 a1 =
  let {a1' = id a1} in 
  archiveReadSupportFormatRar5'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 672 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFormatRaw :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFormatRaw a1 =
  let {a1' = id a1} in 
  archiveReadSupportFormatRaw'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 673 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFormatTar :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFormatTar a1 =
  let {a1' = id a1} in 
  archiveReadSupportFormatTar'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 674 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFormatWarc :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFormatWarc a1 =
  let {a1' = id a1} in 
  archiveReadSupportFormatWarc'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 675 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFormatXar :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFormatXar a1 =
  let {a1' = id a1} in 
  archiveReadSupportFormatXar'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 676 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFormatZip :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFormatZip a1 =
  let {a1' = id a1} in 
  archiveReadSupportFormatZip'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 677 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFormatZipStreamable :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFormatZipStreamable a1 =
  let {a1' = id a1} in 
  archiveReadSupportFormatZipStreamable'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 678 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadSupportFormatZipSeekable :: (ArchivePtr) -> IO ((ArchiveResult))
archiveReadSupportFormatZipSeekable a1 =
  let {a1' = id a1} in 
  archiveReadSupportFormatZipSeekable'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 679 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveReadSetFormat :: (ArchivePtr) -> (ArchiveFormat) -> IO ((ArchiveResult))
archiveReadSetFormat a1 a2 =
  let {a1' = id a1} in 
  let {a2' = (fromIntegral . fromEnum) a2} in 
  archiveReadSetFormat'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 681 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadAppendFilter :: (ArchivePtr) -> (CInt) -> IO ((ArchiveResult))
archiveReadAppendFilter a1 a2 =
  let {a1' = id a1} in 
  let {a2' = fromIntegral a2} in 
  archiveReadAppendFilter'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 682 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadAppendFilterProgram :: (ArchivePtr) -> (CString) -> IO ((ArchiveResult))
archiveReadAppendFilterProgram a1 a2 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  archiveReadAppendFilterProgram'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 683 "src/Codec/Archive/Foreign/Archive.chs" #-}

archiveReadAppendFilterProgramSignature :: (ArchivePtr) -> (CString) -> (Ptr a) -> (CSize) -> IO ((ArchiveResult))
archiveReadAppendFilterProgramSignature a1 a2 a3 a4 =
  let {a1' = id a1} in 
  (flip ($)) a2 $ \a2' -> 
  let {a3' = castPtr a3} in 
  let {a4' = id a4} in 
  archiveReadAppendFilterProgramSignature'_ a1' a2' a3' a4' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 684 "src/Codec/Archive/Foreign/Archive.chs" #-}


archiveErrno :: (ArchivePtr) -> IO ((ArchiveResult))
archiveErrno a1 =
  let {a1' = id a1} in 
  archiveErrno'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 686 "src/Codec/Archive/Foreign/Archive.chs" #-}


foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_zlib_version"
  archiveZlibVersion'_ :: (IO (C2HSImp.Ptr C2HSImp.CChar))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_liblzma_version"
  archiveLiblzmaVersion'_ :: (IO (C2HSImp.Ptr C2HSImp.CChar))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_bzlib_version"
  archiveBzlibVersion'_ :: (IO (C2HSImp.Ptr C2HSImp.CChar))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_liblz4_version"
  archiveLiblz4Version'_ :: (IO (C2HSImp.Ptr C2HSImp.CChar))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_libzstd_version"
  archiveLibzstdVersion'_ :: (IO (C2HSImp.Ptr C2HSImp.CChar))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_error_string"
  archiveErrorString'_ :: ((ArchivePtr) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_format_name"
  archiveFormatName'_ :: ((ArchivePtr) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_format"
  archiveFormat'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_clear_error"
  archiveClearError'_ :: ((ArchivePtr) -> (IO ()))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_set_error"
  archiveSetError'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ()))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_copy_error"
  archiveCopyError'_ :: ((ArchivePtr) -> ((ArchivePtr) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_file_count"
  archiveFileCount'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_version_number"
  archiveVersionNumber'_ :: (IO C2HSImp.CInt)

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_version_string"
  archiveVersionString'_ :: (IO (C2HSImp.Ptr C2HSImp.CChar))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_version_details"
  archiveVersionDetails'_ :: (IO (C2HSImp.Ptr C2HSImp.CChar))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_filter_count"
  archiveFilterCount'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_filter_bytes"
  archiveFilterBytes'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> (IO LaInt64)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_filter_code"
  archiveFilterCode'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_filter_name"
  archiveFilterName'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> (IO (C2HSImp.Ptr C2HSImp.CChar))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_new"
  archiveReadNew'_ :: (IO (ArchivePtr))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_excluded"
  archiveMatchExcluded'_ :: ((ArchivePtr) -> ((ArchiveEntryPtr) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_path_excluded"
  archiveMatchPathExcluded'_ :: ((ArchivePtr) -> ((ArchiveEntryPtr) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_exclude_pattern"
  archiveMatchExcludePattern'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_exclude_pattern_w"
  archiveMatchExcludePatternW'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr CWchar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_set_inclusion_recursion"
  archiveMatchSetInclusionRecursion'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_exclude_pattern_from_file"
  archiveMatchExcludePatternFromFile'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_exclude_pattern_from_file_w"
  archiveMatchExcludePatternFromFileW'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr CWchar) -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_include_pattern"
  archiveMatchIncludePattern'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_include_pattern_w"
  archiveMatchIncludePatternW'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr CWchar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_include_pattern_from_file"
  archiveMatchIncludePatternFromFile'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_include_pattern_from_file_w"
  archiveMatchIncludePatternFromFileW'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr CWchar) -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_path_unmatched_inclusions"
  archiveMatchPathUnmatchedInclusions'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_path_unmatched_inclusions_next"
  archiveMatchPathUnmatchedInclusionsNext'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr (C2HSImp.Ptr C2HSImp.CChar)) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_path_unmatched_inclusions_next_w"
  archiveMatchPathUnmatchedInclusionsNextW'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr (C2HSImp.Ptr CWchar)) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_time_excluded"
  archiveMatchTimeExcluded'_ :: ((ArchivePtr) -> ((ArchiveEntryPtr) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_include_time"
  archiveMatchIncludeTime'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> (CTime -> (C2HSImp.CLong -> (IO C2HSImp.CInt)))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_include_date"
  archiveMatchIncludeDate'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_include_date_w"
  archiveMatchIncludeDateW'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> ((C2HSImp.Ptr CWchar) -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_include_file_time"
  archiveMatchIncludeFileTime'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_include_file_time_w"
  archiveMatchIncludeFileTimeW'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> ((C2HSImp.Ptr CWchar) -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_exclude_entry"
  archiveMatchExcludeEntry'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> ((ArchiveEntryPtr) -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_owner_excluded"
  archiveMatchOwnerExcluded'_ :: ((ArchivePtr) -> ((ArchiveEntryPtr) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_set_open_callback"
  archiveReadSetOpenCallback'_ :: ((ArchivePtr) -> ((C2HSImp.FunPtr ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_set_read_callback"
  archiveReadSetReadCallback'_ :: ((ArchivePtr) -> ((C2HSImp.FunPtr ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr (C2HSImp.Ptr ())) -> (IO LaSSize))))) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_set_seek_callback"
  archiveReadSetSeekCallback'_ :: ((ArchivePtr) -> ((C2HSImp.FunPtr ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (LaInt64 -> (C2HSImp.CInt -> (IO LaInt64)))))) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_set_skip_callback"
  archiveReadSetSkipCallback'_ :: ((ArchivePtr) -> ((C2HSImp.FunPtr ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (LaInt64 -> (IO LaInt64))))) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_set_close_callback"
  archiveReadSetCloseCallback'_ :: ((ArchivePtr) -> ((C2HSImp.FunPtr ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_set_switch_callback"
  archiveReadSetSwitchCallback'_ :: ((ArchivePtr) -> ((C2HSImp.FunPtr ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_set_callback_data"
  archiveReadSetCallbackData'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_set_callback_data2"
  archiveReadSetCallbackData2'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CUInt -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_add_callback_data"
  archiveReadAddCallbackData'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CUInt -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_append_callback_data"
  archiveReadAppendCallbackData'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_prepend_callback_data"
  archiveReadPrependCallbackData'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_open1"
  archiveReadOpen1'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_open"
  archiveReadOpen'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.FunPtr ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))) -> ((C2HSImp.FunPtr ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr (C2HSImp.Ptr ())) -> (IO LaSSize))))) -> ((C2HSImp.FunPtr ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))) -> (IO C2HSImp.CInt))))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_open2"
  archiveReadOpen2'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.FunPtr ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))) -> ((C2HSImp.FunPtr ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr (C2HSImp.Ptr ())) -> (IO LaSSize))))) -> ((C2HSImp.FunPtr ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (LaInt64 -> (IO LaInt64))))) -> ((C2HSImp.FunPtr ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))) -> (IO C2HSImp.CInt)))))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_open_filename"
  archiveReadOpenFilename'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (CSize -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_open_filename_w"
  archiveReadOpenFilenameW'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr CWchar) -> (CSize -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_open_filenames"
  archiveReadOpenFilenames'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr (C2HSImp.Ptr C2HSImp.CChar)) -> (CSize -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_open_memory"
  archiveReadOpenMemory'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (CSize -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_open_fd"
  archiveReadOpenFd'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> (CSize -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_open_FILE"
  archiveReadOpenFILE'_ :: ((ArchivePtr) -> ((FilePtr) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_next_header"
  archiveReadNextHeader'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr (ArchiveEntryPtr)) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_next_header2"
  archiveReadNextHeader2'_ :: ((ArchivePtr) -> ((ArchiveEntryPtr) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_header_position"
  archiveReadHeaderPosition'_ :: ((ArchivePtr) -> (IO LaInt64))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_has_encrypted_entries"
  archiveReadHasEncryptedEntries'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_format_capabilities"
  archiveReadFormatCapabilities'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_data"
  archiveReadData'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (CSize -> (IO LaSSize))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_seek_data"
  archiveSeekData'_ :: ((ArchivePtr) -> (LaInt64 -> (C2HSImp.CInt -> (IO LaInt64))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_data_block"
  archiveReadDataBlock'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr (C2HSImp.Ptr ())) -> ((C2HSImp.Ptr CSize) -> ((C2HSImp.Ptr LaInt64) -> (IO C2HSImp.CInt)))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_data_skip"
  archiveReadDataSkip'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_data_into_fd"
  archiveReadDataIntoFd'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_set_format_option"
  archiveReadSetFormatOption'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> ((C2HSImp.Ptr C2HSImp.CChar) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_set_filter_option"
  archiveReadSetFilterOption'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> ((C2HSImp.Ptr C2HSImp.CChar) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_set_option"
  archiveReadSetOption'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> ((C2HSImp.Ptr C2HSImp.CChar) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_set_options"
  archiveReadSetOptions'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_add_passphrase"
  archiveReadAddPassphrase'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_set_passphrase_callback"
  archiveReadSetPassphraseCallback'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.FunPtr ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar))))) -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_extract"
  archiveReadExtract'_ :: ((ArchivePtr) -> ((ArchiveEntryPtr) -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_extract2"
  archiveReadExtract2'_ :: ((ArchivePtr) -> ((ArchiveEntryPtr) -> ((ArchivePtr) -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_extract_set_progress_callback"
  archiveReadExtractSetProgressCallback'_ :: ((ArchivePtr) -> ((C2HSImp.FunPtr ((C2HSImp.Ptr ()) -> (IO ()))) -> ((C2HSImp.Ptr ()) -> (IO ()))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_extract_set_skip_file"
  archiveReadExtractSetSkipFile'_ :: ((ArchivePtr) -> (LaInt64 -> (LaInt64 -> (IO ()))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_close"
  archiveReadClose'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_free"
  archiveReadFree'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_new"
  archiveWriteNew'_ :: (IO (ArchivePtr))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_bytes_per_block"
  archiveWriteSetBytesPerBlock'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_get_bytes_per_block"
  archiveWriteGetBytesPerBlock'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_bytes_in_last_block"
  archiveWriteSetBytesInLastBlock'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_get_bytes_in_last_block"
  archiveWriteGetBytesInLastBlock'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_skip_file"
  archiveWriteSetSkipFile'_ :: ((ArchivePtr) -> (LaInt64 -> (LaInt64 -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_add_filter"
  archiveWriteAddFilter'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_add_filter_by_name"
  archiveWriteAddFilterByName'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_add_filter_b64encode"
  archiveWriteAddFilterB64encode'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_add_filter_bzip2"
  archiveWriteAddFilterBzip2'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_add_filter_compress"
  archiveWriteAddFilterCompress'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_add_filter_grzip"
  archiveWriteAddFilterGrzip'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_add_filter_lrzip"
  archiveWriteAddFilterLrzip'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_add_filter_lz4"
  archiveWriteAddFilterLz4'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_add_filter_lzip"
  archiveWriteAddFilterLzip'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_add_filter_lzma"
  archiveWriteAddFilterLzma'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_add_filter_lzop"
  archiveWriteAddFilterLzop'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_add_filter_none"
  archiveWriteAddFilterNone'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_add_filter_program"
  archiveWriteAddFilterProgram'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_add_filter_uuencode"
  archiveWriteAddFilterUuencode'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_add_filter_xz"
  archiveWriteAddFilterXz'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_add_filter_zstd"
  archiveWriteAddFilterZstd'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format"
  archiveWriteSetFormat'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format_by_name"
  archiveWriteSetFormatByName'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format_7zip"
  archiveWriteSetFormat7zip'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format_ar_bsd"
  archiveWriteSetFormatArBsd'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format_ar_svr4"
  archiveWriteSetFormatArSvr4'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format_cpio"
  archiveWriteSetFormatCpio'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format_cpio_newc"
  archiveWriteSetFormatCpioNewc'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format_gnutar"
  archiveWriteSetFormatGnutar'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format_mtree"
  archiveWriteSetFormatMtree'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format_mtree_classic"
  archiveWriteSetFormatMtreeClassic'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format_pax"
  archiveWriteSetFormatPax'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format_pax_restricted"
  archiveWriteSetFormatPaxRestricted'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format_raw"
  archiveWriteSetFormatRaw'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format_shar"
  archiveWriteSetFormatShar'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format_shar_dump"
  archiveWriteSetFormatSharDump'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format_ustar"
  archiveWriteSetFormatUstar'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format_v7tar"
  archiveWriteSetFormatV7tar'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format_warc"
  archiveWriteSetFormatWarc'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format_xar"
  archiveWriteSetFormatXar'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format_zip"
  archiveWriteSetFormatZip'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format_filter_by_ext"
  archiveWriteSetFormatFilterByExt'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format_filter_by_ext_def"
  archiveWriteSetFormatFilterByExtDef'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_zip_set_compression_deflate"
  archiveWriteZipSetCompressionDeflate'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_zip_set_compression_store"
  archiveWriteZipSetCompressionStore'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_open"
  archiveWriteOpen'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.FunPtr ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))) -> ((C2HSImp.FunPtr ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (CSize -> (IO LaSSize)))))) -> ((C2HSImp.FunPtr ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))) -> (IO C2HSImp.CInt))))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_open_fd"
  archiveWriteOpenFd'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_open_filename"
  archiveWriteOpenFilename'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_open_filename_w"
  archiveWriteOpenFilenameW'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr CWchar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_open_FILE"
  archiveWriteOpenFILE'_ :: ((ArchivePtr) -> ((FilePtr) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_open_memory"
  archiveWriteOpenMemory'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (CSize -> ((C2HSImp.Ptr CSize) -> (IO C2HSImp.CInt)))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_header"
  archiveWriteHeader'_ :: ((ArchivePtr) -> ((ArchiveEntryPtr) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_data"
  archiveWriteData'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (CSize -> (IO LaSSize))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_data_block"
  archiveWriteDataBlock'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (CSize -> (LaInt64 -> (IO LaSSize)))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_finish_entry"
  archiveWriteFinishEntry'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_close"
  archiveWriteClose'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_fail"
  archiveWriteFail'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_free"
  archiveWriteFree'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_format_option"
  archiveWriteSetFormatOption'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> ((C2HSImp.Ptr C2HSImp.CChar) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_filter_option"
  archiveWriteSetFilterOption'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> ((C2HSImp.Ptr C2HSImp.CChar) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_option"
  archiveWriteSetOption'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> ((C2HSImp.Ptr C2HSImp.CChar) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_options"
  archiveWriteSetOptions'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_passphrase"
  archiveWriteSetPassphrase'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_set_passphrase_callback"
  archiveWriteSetPassphraseCallback'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.FunPtr ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar))))) -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_disk_set_options"
  archiveWriteDiskSetOptions'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_disk_new"
  archiveWriteDiskNew'_ :: (IO (ArchivePtr))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_disk_set_skip_file"
  archiveWriteDiskSetSkipFile'_ :: ((ArchivePtr) -> (LaInt64 -> (LaInt64 -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_disk_set_standard_lookup"
  archiveWriteDiskSetStandardLookup'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_disk_set_group_lookup"
  archiveWriteDiskSetGroupLookup'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.FunPtr ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (LaInt64 -> (IO LaInt64))))) -> ((C2HSImp.FunPtr ((C2HSImp.Ptr ()) -> (IO ()))) -> (IO C2HSImp.CInt)))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_disk_set_user_lookup"
  archiveWriteDiskSetUserLookup'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.FunPtr ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (LaInt64 -> (IO LaInt64))))) -> ((C2HSImp.FunPtr ((C2HSImp.Ptr ()) -> (IO ()))) -> (IO C2HSImp.CInt)))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_disk_gid"
  archiveWriteDiskGid'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (LaInt64 -> (IO LaInt64))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_write_disk_uid"
  archiveWriteDiskUid'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (LaInt64 -> (IO LaInt64))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_disk_new"
  archiveReadDiskNew'_ :: (IO (ArchivePtr))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_disk_set_symlink_logical"
  archiveReadDiskSetSymlinkLogical'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_disk_set_symlink_physical"
  archiveReadDiskSetSymlinkPhysical'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_disk_set_symlink_hybrid"
  archiveReadDiskSetSymlinkHybrid'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_disk_entry_from_file"
  archiveReadDiskEntryFromFile'_ :: ((ArchivePtr) -> ((ArchiveEntryPtr) -> (C2HSImp.CInt -> ((StatPtr) -> (IO C2HSImp.CInt)))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_disk_gname"
  archiveReadDiskGname'_ :: ((ArchivePtr) -> (LaInt64 -> (IO (C2HSImp.Ptr C2HSImp.CChar))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_disk_uname"
  archiveReadDiskUname'_ :: ((ArchivePtr) -> (LaInt64 -> (IO (C2HSImp.Ptr C2HSImp.CChar))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_disk_set_standard_lookup"
  archiveReadDiskSetStandardLookup'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_disk_set_gname_lookup"
  archiveReadDiskSetGnameLookup'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.FunPtr ((C2HSImp.Ptr ()) -> (LaInt64 -> (IO (C2HSImp.Ptr C2HSImp.CChar))))) -> ((C2HSImp.FunPtr ((C2HSImp.Ptr ()) -> (IO ()))) -> (IO C2HSImp.CInt)))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_disk_set_uname_lookup"
  archiveReadDiskSetUnameLookup'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.FunPtr ((C2HSImp.Ptr ()) -> (LaInt64 -> (IO (C2HSImp.Ptr C2HSImp.CChar))))) -> ((C2HSImp.FunPtr ((C2HSImp.Ptr ()) -> (IO ()))) -> (IO C2HSImp.CInt)))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_disk_open"
  archiveReadDiskOpen'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_disk_open_w"
  archiveReadDiskOpenW'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr CWchar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_disk_descend"
  archiveReadDiskDescend'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_disk_can_descend"
  archiveReadDiskCanDescend'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_disk_current_filesystem"
  archiveReadDiskCurrentFilesystem'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_disk_current_filesystem_is_synthetic"
  archiveReadDiskCurrentFilesystemIsSynthetic'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_disk_current_filesystem_is_remote"
  archiveReadDiskCurrentFilesystemIsRemote'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_disk_set_atime_restored"
  archiveReadDiskSetAtimeRestored'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_disk_set_behavior"
  archiveReadDiskSetBehavior'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_disk_set_matching"
  archiveReadDiskSetMatching'_ :: ((ArchivePtr) -> ((ArchivePtr) -> ((C2HSImp.FunPtr ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> ((ArchiveEntryPtr) -> (IO ()))))) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_disk_set_metadata_filter_callback"
  archiveReadDiskSetMetadataFilterCallback'_ :: ((ArchivePtr) -> ((C2HSImp.FunPtr ((ArchivePtr) -> ((C2HSImp.Ptr ()) -> ((ArchiveEntryPtr) -> (IO C2HSImp.CInt))))) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_free"
  archiveFree'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_include_gname_w"
  archiveMatchIncludeGnameW'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr CWchar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_include_gname"
  archiveMatchIncludeGname'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_include_uname_w"
  archiveMatchIncludeUnameW'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr CWchar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_include_uname"
  archiveMatchIncludeUname'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_include_gid"
  archiveMatchIncludeGid'_ :: ((ArchivePtr) -> (LaInt64 -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_match_include_uid"
  archiveMatchIncludeUid'_ :: ((ArchivePtr) -> (LaInt64 -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_filter_all"
  archiveReadSupportFilterAll'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_filter_bzip2"
  archiveReadSupportFilterBzip2'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_filter_compress"
  archiveReadSupportFilterCompress'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_filter_gzip"
  archiveReadSupportFilterGzip'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_filter_grzip"
  archiveReadSupportFilterGrzip'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_filter_lrzip"
  archiveReadSupportFilterLrzip'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_filter_lz4"
  archiveReadSupportFilterLz4'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_filter_lzip"
  archiveReadSupportFilterLzip'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_filter_lzma"
  archiveReadSupportFilterLzma'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_filter_lzop"
  archiveReadSupportFilterLzop'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_filter_none"
  archiveReadSupportFilterNone'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_filter_program"
  archiveReadSupportFilterProgram'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_filter_program_signature"
  archiveReadSupportFilterProgramSignature'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> ((C2HSImp.Ptr ()) -> (CSize -> (IO C2HSImp.CInt)))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_filter_rpm"
  archiveReadSupportFilterRpm'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_filter_uu"
  archiveReadSupportFilterUu'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_filter_xz"
  archiveReadSupportFilterXz'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_format_7zip"
  archiveReadSupportFormat7zip'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_format_all"
  archiveReadSupportFormatAll'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_format_ar"
  archiveReadSupportFormatAr'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_format_by_code"
  archiveReadSupportFormatByCode'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_format_cab"
  archiveReadSupportFormatCab'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_format_cpio"
  archiveReadSupportFormatCpio'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_format_empty"
  archiveReadSupportFormatEmpty'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_format_gnutar"
  archiveReadSupportFormatGnutar'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_format_iso9660"
  archiveReadSupportFormatIso9660'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_format_lha"
  archiveReadSupportFormatLha'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_format_mtree"
  archiveReadSupportFormatMtree'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_format_rar"
  archiveReadSupportFormatRar'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_format_rar5"
  archiveReadSupportFormatRar5'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_format_raw"
  archiveReadSupportFormatRaw'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_format_tar"
  archiveReadSupportFormatTar'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_format_warc"
  archiveReadSupportFormatWarc'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_format_xar"
  archiveReadSupportFormatXar'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_format_zip"
  archiveReadSupportFormatZip'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_format_zip_streamable"
  archiveReadSupportFormatZipStreamable'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_support_format_zip_seekable"
  archiveReadSupportFormatZipSeekable'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_set_format"
  archiveReadSetFormat'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_append_filter"
  archiveReadAppendFilter'_ :: ((ArchivePtr) -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_append_filter_program"
  archiveReadAppendFilterProgram'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_read_append_filter_program_signature"
  archiveReadAppendFilterProgramSignature'_ :: ((ArchivePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> ((C2HSImp.Ptr ()) -> (CSize -> (IO C2HSImp.CInt)))))

foreign import ccall safe "Codec/Archive/Foreign/Archive.chs.h archive_errno"
  archiveErrno'_ :: ((ArchivePtr) -> (IO C2HSImp.CInt))