sig
  val string_of_file : string -> string
  val file_of_string : file:string -> string -> unit
  val iter_lines : (string -> unit) -> Pervasives.in_channel -> unit
  val iter_file_lines : (string -> unit) -> string -> unit
  val value_of_file : string -> 'a
  val file_of_value : string -> '-> unit
  val load_file : (Pervasives.in_channel -> 'a) -> string -> 'a
  val store_file :
    (Pervasives.out_channel -> '-> unit) -> string -> '-> unit
  val safe_remove_file : string -> unit
  val create_file : string -> unit
  val in_channel_is_file : Pervasives.in_channel -> bool
  val out_channel_is_file : Pervasives.out_channel -> bool
  module Find :
    sig
      type filter =
          Maxdepth of int
        | Type of Unix.file_kind
        | Follow
        | Regexp of Str.regexp
        | Atime of Sfile.Find.interval
        | Predicate of (string -> bool)
      and interval = Le of int | Eq of int | Ge of int
      type mode =
          Ignore
        | Stderr
        | Failure
        | Custom of (Unix.error * string * string -> unit)
      val find :
        Sfile.Find.mode ->
        string list -> Sfile.Find.filter list -> (string -> unit) -> unit
      val find_list :
        Sfile.Find.mode ->
        string list -> Sfile.Find.filter list -> string list
    end
  val subdirs : string -> string list
end