sig
  type t = [ `Read ] ArchiveLow.archive
  external create : unit -> ArchiveLow.Read.t = "caml_archive_read_create"
  external support_filter_all : ArchiveLow.Read.t -> unit
    = "caml_archive_read_support_filter_all"
  external support_format_all : ArchiveLow.Read.t -> unit
    = "caml_archive_read_support_format_all"
  external open_filename :
    ArchiveLow.Read.t -> ArchiveLow.filename -> int -> unit
    = "caml_archive_read_open_filename"
  external open2 :
    ArchiveLow.Read.t ->
    ('a, 'b) ArchiveLow.open_callback ->
    'ArchiveLow.read_callback ->
    'ArchiveLow.skip_callback -> 'ArchiveLow.close_callback -> '-> unit
    = "caml_archive_read_open2_bytecode" "caml_archive_read_open2_native"
  external next_header2 : ArchiveLow.Read.t -> ArchiveLow.Entry.t -> bool
    = "caml_archive_read_next_header2"
  external data_skip : ArchiveLow.Read.t -> unit
    = "caml_archive_read_data_skip"
  external data : ArchiveLow.Read.t -> string -> int -> int -> int
    = "caml_archive_read_data"
  external close : ArchiveLow.Read.t -> unit = "caml_archive_read_close"
end