sig
  type t
  type version = [ `V3 of Uuidm.t * string | `V4 | `V5 of Uuidm.t * string ]
  val v : Uuidm.version -> Uuidm.t
  val create : Uuidm.version -> Uuidm.t
  val v3 : Uuidm.t -> string -> Uuidm.t
  val v5 : Uuidm.t -> string -> Uuidm.t
  val v4_gen : Random.State.t -> unit -> Uuidm.t
  val nil : Uuidm.t
  val ns_dns : Uuidm.t
  val ns_url : Uuidm.t
  val ns_oid : Uuidm.t
  val ns_X500 : Uuidm.t
  val compare : Uuidm.t -> Uuidm.t -> int
  val equal : Uuidm.t -> Uuidm.t -> bool
  val of_bytes : ?pos:int -> string -> Uuidm.t option
  val to_bytes : Uuidm.t -> string
  val unsafe_to_bytes : Uuidm.t -> string
  val of_string : ?pos:int -> string -> Uuidm.t option
  val to_string : ?upper:bool -> Uuidm.t -> string
  val pp : Format.formatter -> Uuidm.t -> unit
  val pp_string : ?upper:bool -> Format.formatter -> Uuidm.t -> unit
  val print : ?upper:bool -> Format.formatter -> Uuidm.t -> unit
end