sig   module Fpath :     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       module Map :         sig           type meta = t           type t = B0.Meta.Fpath.Map.meta B0.Fpath.map           val empty : B0.Meta.Fpath.Map.t           val mem : B0.Fpath.t -> 'a key -> B0.Meta.Fpath.Map.t -> bool           val add :             B0.Fpath.t ->             'a key -> '-> B0.Meta.Fpath.Map.t -> B0.Meta.Fpath.Map.t           val rem :             B0.Fpath.t ->             'a key -> B0.Meta.Fpath.Map.t -> B0.Meta.Fpath.Map.t           val find : B0.Fpath.t -> 'a key -> B0.Meta.Fpath.Map.t -> 'a option           val get : B0.Fpath.t -> 'a key -> B0.Meta.Fpath.Map.t -> 'a           val get_all :             B0.Fpath.t -> B0.Meta.Fpath.Map.t -> B0.Meta.Fpath.Map.meta         end     end   module Pkg :     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 Unit :     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 end