sig
  val ls : FileUtil.filename -> FileUtil.filename list
  val filter :
    FileUtil.test_file -> FileUtil.filename list -> FileUtil.filename list
  val test : FileUtil.test_file -> FileUtil.filename -> bool
  val which :
    ?path:FileUtil.filename list -> FileUtil.filename -> FileUtil.filename
  val mkdir : ?parent:bool -> ?mode:int -> FileUtil.filename -> unit
  val touch : ?create:bool -> FileUtil.filename -> unit
  val find :
    ?follow:FileUtil.action_link ->
    FileUtil.test_file ->
    FileUtil.filename -> ('-> FileUtil.filename -> 'a) -> '-> 'a
  val rm :
    ?force:FileUtil.interactive ->
    ?recurse:bool -> FileUtil.filename list -> unit
  val cp :
    ?follow:FileUtil.action_link ->
    ?force:FileUtil.interactive ->
    ?recurse:bool -> FileUtil.filename list -> FileUtil.filename -> unit
  val mv :
    ?force:FileUtil.interactive ->
    FileUtil.filename -> FileUtil.filename -> unit
  val readlink : FileUtil.filename -> FileUtil.filename
  val pwd : unit -> FileUtil.filename
  val cmp :
    ?skip1:int ->
    FileUtil.filename -> ?skip2:int -> FileUtil.filename -> int option
  val du :
    FileUtil.filename list ->
    FileUtil.size * (FileUtil.filename * FileUtil.size) list
  val stat : FileUtil.filename -> FileUtil.stat
end