sig
  type ('a, 'b) input =
      [ `Callback of
          'a * ('a, 'b) ArchiveLow.open_callback *
          'ArchiveLow.read_callback * 'ArchiveLow.skip_callback *
          'ArchiveLow.close_callback
      | `Filename of Archive.filename ]
  type ('a, 'b) t
  val create : ('a, 'b) Archive.Read.input -> ('a, 'b) Archive.Read.t
  val file_exists : ('a, 'b) Archive.Read.t -> Archive.filename -> bool
  val stat :
    ('a, 'b) Archive.Read.t -> Archive.filename -> Unix.LargeFile.stats
  val is_directory : ('a, 'b) Archive.Read.t -> Archive.filename -> bool
  val entry :
    ('a, 'b) Archive.Read.t -> Archive.filename -> ArchiveLow.Entry.t
  val with_file :
    ('a, 'b) Archive.Read.t ->
    Archive.filename ->
    (ArchiveLow.Entry.t -> 'c) ->
    ('-> string -> int -> 'c) -> ('-> 'd) -> 'd
  val content : ('a, 'b) Archive.Read.t -> Archive.filename -> string
  val readdir :
    ('a, 'b) Archive.Read.t -> Archive.filename -> Archive.filename array
end