sig   type t = Bos.Pat.t   val v : string -> t   val empty : t   val dom : t -> Astring.String.Set.t   val equal : t -> t -> bool   val compare : t -> t -> int   val of_string : string -> (t, [> Rresult.R.msg ]) Result.result   val to_string : t -> string   val pp : Format.formatter -> t -> unit   val dump : Format.formatter -> t -> unit   type defs = string Astring.String.Map.t   val subst : ?undef:(string -> string option) -> defs -> t -> t   val format : ?undef:(string -> string) -> defs -> t -> string   val matches : t -> string -> bool   val query : ?init:defs -> t -> string -> defs option end