sig type t val gen : ?size:int -> Random.State.t -> t val to_string : t -> string val compare : t -> t -> int end