sig   val exists : Fpath.t -> (bool, [> Rresult.R.msg ]) Bos.OS.result   val must_exist : Fpath.t -> (Fpath.t, [> Rresult.R.msg ]) Bos.OS.result   val move :     ?force:bool ->     Fpath.t -> Fpath.t -> (unit, [> Rresult.R.msg ]) Bos.OS.result   val delete :     ?must_exist:bool ->     ?recurse:bool -> Fpath.t -> (unit, [> Rresult.R.msg ]) Bos.OS.result   val stat : Fpath.t -> (Unix.stats, [> Rresult.R.msg ]) Bos.OS.result   module Mode :     sig       type t = int       val get :         Fpath.t -> (Bos.OS.Path.Mode.t, [> Rresult.R.msg ]) Bos.OS.result       val set :         Fpath.t ->         Bos.OS.Path.Mode.t -> (unit, [> Rresult.R.msg ]) Bos.OS.result     end   val link :     ?force:bool ->     target:Fpath.t -> Fpath.t -> (unit, [> Rresult.R.msg ]) Bos.OS.result   val symlink :     ?force:bool ->     target:Fpath.t -> Fpath.t -> (unit, [> Rresult.R.msg ]) Bos.OS.result   val symlink_target : Fpath.t -> (Fpath.t, [> Rresult.R.msg ]) Bos.OS.result   val symlink_stat :     Fpath.t -> (Unix.stats, [> Rresult.R.msg ]) Bos.OS.result   val matches :     ?dotfiles:bool ->     Fpath.t -> (Fpath.t list, [> Rresult.R.msg ]) Bos.OS.result   val query :     ?dotfiles:bool ->     ?init:Bos.Pat.defs ->     Fpath.t ->     ((Fpath.t * Bos.Pat.defs) list, [> Rresult.R.msg ]) Bos.OS.result   type traverse =       [ `Any | `None | `Sat of Fpath.t -> (bool, Rresult.R.msg) Bos.OS.result ]   type elements =       [ `Any       | `Dirs       | `Files       | `Sat of Fpath.t -> (bool, Rresult.R.msg) Bos.OS.result ]   type 'a fold_error =       Fpath.t ->       ('a, Rresult.R.msg) Bos.OS.result ->       (unit, Rresult.R.msg) Bos.OS.result   val log_fold_error : level:Logs.level -> 'Bos.OS.Path.fold_error   val fold :     ?err:'Bos.OS.Path.fold_error ->     ?dotfiles:bool ->     ?elements:Bos.OS.Path.elements ->     ?traverse:Bos.OS.Path.traverse ->     (Fpath.t -> '-> 'a) ->     '-> Fpath.t list -> ('a, [> Rresult.R.msg ]) Bos.OS.result end