`sig
type error = { typ : string; str : string; ofs : int; msg : string; }
val error_message : OBus_string.error -> string
val typ : OBus_string.error -> string
val str : OBus_string.error -> string
val ofs : OBus_string.error -> int
val msg : OBus_string.error -> string
type validator = string -> OBus_string.error option
exception Invalid_string of OBus_string.error
val assert_validate : OBus_string.validator -> string -> unit
type t = string
val validate : OBus_string.validator
end`