sig
  type 'a gen = unit -> 'a
  val fg : float Quickcheck.gen
  val cg : char Quickcheck.gen
  val nng : int Quickcheck.gen
  val uig : int Quickcheck.gen
  val pg : 'Quickcheck.gen -> 'Quickcheck.gen -> ('a * 'b) Quickcheck.gen
  val tg :
    'Quickcheck.gen ->
    'Quickcheck.gen -> 'Quickcheck.gen -> ('a * 'b * 'c) Quickcheck.gen
  val lg :
    'Quickcheck.gen ->
    ?size_gen:int Quickcheck.gen -> 'a list Quickcheck.gen
  val sg :
    ?char_gen:char Quickcheck.gen ->
    ?size_gen:int Quickcheck.gen -> string Quickcheck.gen
  val always : '-> 'Quickcheck.gen
  val laws : int -> 'Quickcheck.gen -> ('-> bool) -> 'a option
  val laws_exn : string -> int -> 'Quickcheck.gen -> ('-> bool) -> unit
  val repeat : int -> ('-> unit) -> 'Quickcheck.gen -> unit
end