sig
  type archive_entry =
      Directory_entry of Zip.entry
    | Package_entry of Zip.entry * string
    | Class_entry of Zip.entry * string
    | Bare_entry of Zip.entry * string
  class type archive_mapper =
    object
      method bare_entry : Zip.entry -> Zip.entry
      method class_definition : ClassDefinition.t -> ClassDefinition.t
      method class_entry : Zip.entry -> Zip.entry
      method comment : string -> string
      method data : string -> string
      method directory_entry : Zip.entry -> Zip.entry
      method entries : Zip.entry list -> ArchiveTraversal.archive_entry list
      method entry : Zip.entry -> ArchiveTraversal.archive_entry
      method package_definition : PackageDefinition.t -> PackageDefinition.t
      method package_entry : Zip.entry -> Zip.entry
    end
  class default_archive_mapper : Zip.in_file -> archive_mapper
  class type archive_iterator =
    object
      method bare_entry : Zip.entry -> unit
      method class_definition : ClassDefinition.t -> unit
      method class_entry : Zip.entry -> unit
      method comment : string -> unit
      method data : string -> unit
      method directory_entry : Zip.entry -> unit
      method entries : Zip.entry list -> unit
      method entry : Zip.entry -> unit
      method package_definition : PackageDefinition.t -> unit
      method package_entry : Zip.entry -> unit
    end
  class default_archive_iterator : Zip.in_file -> archive_iterator
  class type archive_folder =
    object ('a)
      method bare_entry : Zip.entry -> 'a
      method class_definition : ClassDefinition.t -> 'a
      method class_entry : Zip.entry -> 'a
      method comment : string -> 'a
      method data : string -> 'a
      method directory_entry : Zip.entry -> 'a
      method entries : Zip.entry list -> 'a
      method entry : Zip.entry -> 'a
      method package_definition : PackageDefinition.t -> 'a
      method package_entry : Zip.entry -> 'a
    end
  class default_archive_folder : Zip.in_file -> archive_folder
  val map :
    ArchiveTraversal.archive_mapper -> Zip.in_file -> string -> Zip.out_file
  val iter : ArchiveTraversal.archive_iterator -> Zip.in_file -> unit
  val fold :
    ArchiveTraversal.archive_folder ->
    Zip.in_file -> ArchiveTraversal.archive_folder
  val map_file :
    (Zip.in_file -> ArchiveTraversal.archive_mapper) ->
    string -> string -> unit
  val iter_file :
    (Zip.in_file -> ArchiveTraversal.archive_iterator) -> string -> unit
  val fold_file :
    (Zip.in_file -> ArchiveTraversal.archive_folder) ->
    string -> ArchiveTraversal.archive_folder
end