sig   val dir_sep : string   val is_seg : string -> bool   val is_rel_seg : string -> bool   type t   val v : string -> Fpath.t   val add_seg : Fpath.t -> string -> Fpath.t   val ( / ) : Fpath.t -> string -> Fpath.t   val append : Fpath.t -> Fpath.t -> Fpath.t   val ( // ) : Fpath.t -> Fpath.t -> Fpath.t   val split_volume : Fpath.t -> string * Fpath.t   val segs : Fpath.t -> string list   val is_dir_path : Fpath.t -> bool   val is_file_path : Fpath.t -> bool   val to_dir_path : Fpath.t -> Fpath.t   val filename : Fpath.t -> string   val split_base : Fpath.t -> Fpath.t * Fpath.t   val base : Fpath.t -> Fpath.t   val basename : Fpath.t -> string   val parent : Fpath.t -> Fpath.t   val rem_empty_seg : Fpath.t -> Fpath.t   val normalize : Fpath.t -> Fpath.t   val is_prefix : Fpath.t -> Fpath.t -> bool   val find_prefix : Fpath.t -> Fpath.t -> Fpath.t option   val rem_prefix : Fpath.t -> Fpath.t -> Fpath.t option   val relativize : root:Fpath.t -> Fpath.t -> Fpath.t option   val is_rooted : root:Fpath.t -> Fpath.t -> bool   val is_rel : Fpath.t -> bool   val is_abs : Fpath.t -> bool   val is_root : Fpath.t -> bool   val is_current_dir : ?prefix:bool -> Fpath.t -> bool   val is_parent_dir : ?prefix:bool -> Fpath.t -> bool   val is_dotfile : Fpath.t -> bool   val equal : Fpath.t -> Fpath.t -> bool   val compare : Fpath.t -> Fpath.t -> int   val to_string : Fpath.t -> string   val of_string : string -> (Fpath.t, [ `Msg of string ]) Result.result   val pp : Format.formatter -> Fpath.t -> unit   val dump : Format.formatter -> Fpath.t -> unit   type ext = string   val get_ext : ?multi:bool -> Fpath.t -> Fpath.ext   val has_ext : Fpath.ext -> Fpath.t -> bool   val mem_ext : Fpath.ext list -> Fpath.t -> bool   val exists_ext : ?multi:bool -> Fpath.t -> bool   val add_ext : Fpath.ext -> Fpath.t -> Fpath.t   val rem_ext : ?multi:bool -> Fpath.t -> Fpath.t   val set_ext : ?multi:bool -> Fpath.ext -> Fpath.t -> Fpath.t   val split_ext : ?multi:bool -> Fpath.t -> Fpath.t * Fpath.ext   val ( + ) : Fpath.t -> Fpath.ext -> Fpath.t   val ( -+ ) : Fpath.t -> Fpath.ext -> Fpath.t   type path = Fpath.t   type set   module Set :     sig       val empty : set       val is_empty : set -> bool       val mem : path -> set -> bool       val add : path -> set -> set       val singleton : path -> set       val remove : path -> set -> set       val union : set -> set -> set       val inter : set -> set -> set       val diff : set -> set -> set       val compare : set -> set -> int       val equal : set -> set -> bool       val subset : set -> set -> bool       val iter : (path -> unit) -> set -> unit       val fold : (path -> '-> 'a) -> set -> '-> 'a       val for_all : (path -> bool) -> set -> bool       val exists : (path -> bool) -> set -> bool       val filter : (path -> bool) -> set -> set       val partition : (path -> bool) -> set -> set * set       val cardinal : set -> int       val elements : set -> path list       val split : path -> set -> set * bool * set       type t = Fpath.set       val min_elt : Fpath.set -> Fpath.path option       val get_min_elt : Fpath.set -> Fpath.path       val max_elt : Fpath.set -> Fpath.path option       val get_max_elt : Fpath.set -> Fpath.path       val choose : Fpath.set -> Fpath.path option       val get_any_elt : Fpath.set -> Fpath.path       val find : Fpath.path -> Fpath.set -> Fpath.path option       val get : Fpath.path -> Fpath.set -> Fpath.path       val of_list : Fpath.path list -> Fpath.set       val pp :         ?sep:(Format.formatter -> unit -> unit) ->         (Format.formatter -> Fpath.path -> unit) ->         Format.formatter -> Fpath.set -> unit       val dump : Format.formatter -> Fpath.set -> unit     end   type +'a map   module Map :     sig       val empty : 'a map       val is_empty : 'a map -> bool       val mem : t -> 'a map -> bool       val add : t -> '-> 'a map -> 'a map       val singleton : t -> '-> 'a map       val remove : t -> 'a map -> 'a map       val merge :         (t -> 'a option -> 'b option -> 'c option) ->         'a map -> 'b map -> 'c map       val union : (t -> '-> '-> 'a option) -> 'a map -> 'a map -> 'a map       val compare : ('-> '-> int) -> 'a map -> 'a map -> int       val equal : ('-> '-> bool) -> 'a map -> 'a map -> bool       val iter : (t -> '-> unit) -> 'a map -> unit       val fold : (t -> '-> '-> 'b) -> 'a map -> '-> 'b       val for_all : (t -> '-> bool) -> 'a map -> bool       val exists : (t -> '-> bool) -> 'a map -> bool       val filter : (t -> '-> bool) -> 'a map -> 'a map       val partition : (t -> '-> bool) -> 'a map -> 'a map * 'a map       val cardinal : 'a map -> int       val bindings : 'a map -> (t * 'a) list       val split : t -> 'a map -> 'a map * 'a option * 'a map       val map : ('-> 'b) -> 'a map -> 'b map       val mapi : (t -> '-> 'b) -> 'a map -> 'b map       type 'a t = 'Fpath.map       val min_binding : 'Fpath.map -> (Fpath.path * 'a) option       val get_min_binding : 'Fpath.map -> Fpath.path * 'a       val max_binding : 'Fpath.map -> (Fpath.path * 'a) option       val get_max_binding : 'Fpath.map -> string * 'a       val choose : 'Fpath.map -> (Fpath.path * 'a) option       val get_any_binding : 'Fpath.map -> Fpath.path * 'a       val find : Fpath.path -> 'Fpath.map -> 'a option       val get : Fpath.path -> 'Fpath.map -> 'a       val dom : 'Fpath.map -> Fpath.set       val of_list : (Fpath.path * 'a) list -> 'Fpath.map       val pp :         ?sep:(Format.formatter -> unit -> unit) ->         (Format.formatter -> Fpath.path * '-> unit) ->         Format.formatter -> 'Fpath.map -> unit       val dump :         (Format.formatter -> '-> unit) ->         Format.formatter -> 'Fpath.map -> unit     end end