val is_seg : string -> bool
val is_rel_seg : string -> bool
val add_seg : t -> string -> t
val (/) : t -> string -> t
val split_volume : t -> string * t
val segs : t -> string list
val is_dir_path : t -> bool
val is_file_path : t -> bool
val filename : t -> string
val split_base : t -> t * t
val basename : t -> string
val rem_empty_seg : t -> t
val is_prefix : t -> t -> bool
val find_prefix : t -> t -> t option
val rem_prefix : t -> t -> t option
val relativize : root:t -> t -> t option
val is_rooted : root:t -> t -> bool
val is_current_dir : ?prefix:bool -> t -> bool
val is_parent_dir : ?prefix:bool -> t -> bool
val is_dotfile : t -> bool
val equal : t -> t -> bool
val compare : t -> t -> int
val to_string : t -> string
val of_string : string -> (t, [ `Msg of string ]) result
val get_ext : ?multi:bool -> t -> ext
val has_ext : ext -> t -> bool
val mem_ext : ext list -> t -> bool
val exists_ext : ?multi:bool -> t -> bool
val add_ext : ext -> t -> t
val rem_ext : ?multi:bool -> t -> t
val set_ext : ?multi:bool -> ext -> t -> t
val split_ext : ?multi:bool -> t -> t * ext