sig
  type structure =
      [ `Directory of string * Ketrew_pure.Target.Volume.structure list
      | `File of string ]
  type t = {
    host : Ketrew_pure.Host.t;
    root : Ketrew_pure.Path.t;
    structure : Ketrew_pure.Target.Volume.structure;
  }
  val create :
    host:Ketrew_pure.Host.t ->
    root:Ketrew_pure.Path.t ->
    Ketrew_pure.Target.Volume.structure -> Ketrew_pure.Target.Volume.t
  val file : string -> Ketrew_pure.Target.Volume.structure
  val dir :
    string ->
    Ketrew_pure.Target.Volume.structure list ->
    Ketrew_pure.Target.Volume.structure
  val all_paths : Ketrew_pure.Target.Volume.t -> Ketrew_pure.Path.t list
  val log_structure :
    Ketrew_pure.Target.Volume.structure -> Internal_pervasives.Log.t
  val log : Ketrew_pure.Target.Volume.t -> Internal_pervasives.Log.t
  val markup :
    Ketrew_pure.Target.Volume.t -> Internal_pervasives.Display_markup.t
  val to_string_hum : Ketrew_pure.Target.Volume.t -> string
end