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