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