sig   val dir_sep : string   val is_seg : string -> bool   val is_rel_seg : string -> bool   type t = B0.fpath   val v : string -> B0.Fpath.t   val of_string : string -> B0.Fpath.t B0.result   val to_string : B0.Fpath.t -> string   val add_seg : B0.Fpath.t -> string -> B0.Fpath.t   val append : B0.Fpath.t -> B0.Fpath.t -> B0.Fpath.t   val ( / ) : B0.Fpath.t -> string -> B0.Fpath.t   val ( // ) : B0.Fpath.t -> B0.Fpath.t -> B0.Fpath.t   val is_dir_path : B0.Fpath.t -> bool   val is_file_path : B0.Fpath.t -> bool   val to_dir_path : B0.Fpath.t -> B0.Fpath.t   val filename : B0.Fpath.t -> string   val filename_equal : B0.Fpath.t -> B0.Fpath.t -> bool   val basename : B0.Fpath.t -> string   val basename_equal : B0.Fpath.t -> B0.Fpath.t -> bool   val parent : B0.Fpath.t -> B0.Fpath.t   val is_rel : B0.Fpath.t -> bool   val is_abs : B0.Fpath.t -> bool   val is_root : B0.Fpath.t -> bool   val equal : B0.Fpath.t -> B0.Fpath.t -> bool   val compare : B0.Fpath.t -> B0.Fpath.t -> int   type ext = string   val get_ext : ?multi:bool -> B0.Fpath.t -> B0.Fpath.ext   val has_ext : B0.Fpath.ext -> B0.Fpath.t -> bool   val mem_ext : B0.Fpath.ext list -> B0.Fpath.t -> bool   val add_ext : B0.Fpath.ext -> B0.Fpath.t -> B0.Fpath.t   val rem_ext : ?multi:bool -> B0.Fpath.t -> B0.Fpath.t   val set_ext : ?multi:bool -> B0.Fpath.ext -> B0.Fpath.t -> B0.Fpath.t   val split_ext : ?multi:bool -> B0.Fpath.t -> B0.Fpath.t * B0.Fpath.ext   val ( + ) : B0.Fpath.t -> B0.Fpath.ext -> B0.Fpath.t   val ( -+ ) : B0.Fpath.t -> B0.Fpath.ext -> B0.Fpath.t   val pp : B0.Fpath.t B0.Fmt.t   val dump : B0.Fpath.t B0.Fmt.t   val uniquify : B0.Fpath.t list -> B0.Fpath.t list   type set   module Set :     sig       val empty : set       val is_empty : set -> bool       val mem : t -> set -> bool       val add : t -> set -> set       val singleton : t -> set       val remove : t -> 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 : (t -> unit) -> set -> unit       val fold : (t -> '-> 'a) -> set -> '-> 'a       val for_all : (t -> bool) -> set -> bool       val exists : (t -> bool) -> set -> bool       val filter : (t -> bool) -> set -> set       val partition : (t -> bool) -> set -> set * set       val cardinal : set -> int       val elements : set -> t list       val min_elt : set -> t       val max_elt : set -> t       val choose : set -> t       val split : t -> set -> set * bool * set       val find : t -> set -> t       val of_list : t list -> set       val pp :         ?sep:unit B0.Fmt.t -> B0.Fpath.t B0.Fmt.t -> B0.Fpath.set B0.Fmt.t       val dump : B0.Fpath.set B0.Fmt.t       type t = B0.Fpath.set     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 min_binding : 'a map -> t * 'a       val max_binding : 'a map -> t * 'a       val choose : 'a map -> t * 'a       val split : t -> 'a map -> 'a map * 'a option * 'a map       val find : t -> 'a map -> 'a       val map : ('-> 'b) -> 'a map -> 'b map       val mapi : (t -> '-> 'b) -> 'a map -> 'b map       val dom : 'B0.Fpath.map -> B0.Fpath.set       val of_list : (B0.Fpath.t * 'a) list -> 'B0.Fpath.map       val pp :         ?sep:unit B0.Fmt.t ->         (B0.Fpath.t * 'a) B0.Fmt.t -> 'B0.Fpath.map B0.Fmt.t       val dump : 'B0.Fmt.t -> 'B0.Fpath.map B0.Fmt.t       type 'a t = 'B0.Fpath.map     end   module Meta :     sig       module Key :         sig           type 'a typed           type 'a info = unit           type t = V : 'a typed -> t           val v :             ?loc:Def.loc ->             ?doc:string -> string -> 'Conv.t -> 'a info -> 'a typed           val conv : 'a typed -> 'Conv.t           val info : 'a typed -> 'a info           val of_typed : 'a typed -> t           val value_kind : string           val name : t -> string           val loc : t -> Def.loc           val doc : t -> string           val equal : t -> t -> bool           val compare : t -> t -> int           val compare_by_name : t -> t -> int           val find : string -> t option           val get : string -> t           val get_or_suggest : string -> (t, string list) result           val list : unit -> t list           val pp_name_str : string Fmt.t           val pp_name : t Fmt.t           val pp_synopsis : t Fmt.t           val pp_info : t Fmt.t           val pp_info_ext : t Fmt.t -> t Fmt.t         end       type 'a key = 'Key.typed       type t       val empty : t       val is_empty : t -> bool       val mem : 'a key -> t -> bool       val add : 'a key -> '-> t -> t       val add_tag : bool key -> t -> t       val singleton : 'a key -> '-> t       val rem : 'a key -> t -> t       val find : 'a key -> t -> 'a option       val get : 'a key -> t -> 'a       val get_or_suggest : 'a key -> t -> ('a, string list) result       val flag : ?absent:bool -> bool key -> t -> bool       type binding = B : 'a key * '-> binding       val iter : (binding -> unit) -> t -> unit       val fold : (binding -> '-> 'a) -> t -> '-> 'a       val for_all : (binding -> bool) -> t -> bool       val exists : (binding -> bool) -> t -> bool       val filter : (binding -> bool) -> t -> t       val cardinal : t -> int       val any_binding : t -> binding option       val get_any_binding : t -> binding       val pp : t Fmt.t       type encode_error = string * [ `Msg of string ]       val encode : t -> (string * string) list * encode_error list       type decode_error = string * [ `Msg of string | `Unknown ]       val decode : (string * string) list -> t * decode_error list     end   module Meta_map :     sig       type t = B0.Fpath.Meta.t B0.Fpath.map       val empty : B0.Fpath.Meta_map.t       val mem :         B0.fpath -> 'B0.Fpath.Meta.key -> B0.Fpath.Meta_map.t -> bool       val add :         B0.fpath ->         'B0.Fpath.Meta.key ->         '-> B0.Fpath.Meta_map.t -> B0.Fpath.Meta_map.t       val rem :         B0.fpath ->         'B0.Fpath.Meta.key -> B0.Fpath.Meta_map.t -> B0.Fpath.Meta_map.t       val find :         B0.fpath -> 'B0.Fpath.Meta.key -> B0.Fpath.Meta_map.t -> 'a option       val get : B0.fpath -> 'B0.Fpath.Meta.key -> B0.Fpath.Meta_map.t -> 'a       val get_all : B0.fpath -> B0.Fpath.Meta_map.t -> B0.Fpath.Meta.t     end end