sig
  type t
  val v3 : Uuidm.t -> string -> Uuidm.t
  val v5 : Uuidm.t -> string -> Uuidm.t
  val v4 : bytes -> Uuidm.t
  val v4_gen : Stdlib.Random.State.t -> unit -> Uuidm.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 nil : Uuidm.t
  val ns_dns : Uuidm.t
  val ns_url : Uuidm.t
  val ns_oid : Uuidm.t
  val ns_X500 : Uuidm.t
  val equal : Uuidm.t -> Uuidm.t -> bool
  val compare : Uuidm.t -> Uuidm.t -> int
  val of_bytes : ?pos:int -> string -> Uuidm.t option
  val to_bytes : Uuidm.t -> string
  val of_mixed_endian_bytes : ?pos:int -> string -> Uuidm.t option
  val to_mixed_endian_bytes : Uuidm.t -> string
  val unsafe_of_bytes : string -> Uuidm.t
  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 : Stdlib.Format.formatter -> Uuidm.t -> unit
  val pp_string : ?upper:bool -> Stdlib.Format.formatter -> Uuidm.t -> unit
  val print : ?upper:bool -> Stdlib.Format.formatter -> Uuidm.t -> unit
end