sig
  type res =
    QCheck2.Test.res =
      Success
    | Failure
    | FalseAssumption
    | Error of exn * string
  type 'a event =
    'QCheck2.Test.event =
      Generating
    | Collecting of 'a
    | Testing of 'a
    | Shrunk of int * 'a
    | Shrinking of int * int * 'a
  type 'a cell = 'QCheck2.Test.cell
  type 'a handler = 'QCheck2.Test.handler
  type 'a step = 'QCheck2.Test.step
  type 'a callback = 'QCheck2.Test.callback
  type t = QCheck2.Test.t
  val fail_report : string -> 'a
  val fail_reportf :
    ('a, Stdlib.Format.formatter, unit, 'b) Stdlib.format4 -> 'a
  val make_cell :
    ?if_assumptions_fail:[ `Fatal | `Warning ] * float ->
    ?count:int ->
    ?long_factor:int ->
    ?max_gen:int ->
    ?max_fail:int ->
    ?small:('-> int) ->
    ?name:string ->
    'QCheck.arbitrary -> ('-> bool) -> 'QCheck.Test.cell
  val get_law : 'QCheck.Test.cell -> '-> bool
  val get_name : 'QCheck.Test.cell -> string
  val set_name : 'QCheck.Test.cell -> string -> unit
  val get_count : 'QCheck.Test.cell -> int
  val get_long_factor : 'QCheck.Test.cell -> int
  val make :
    ?if_assumptions_fail:[ `Fatal | `Warning ] * float ->
    ?count:int ->
    ?long_factor:int ->
    ?max_gen:int ->
    ?max_fail:int ->
    ?small:('-> int) ->
    ?name:string -> 'QCheck.arbitrary -> ('-> bool) -> QCheck.Test.t
  exception Test_fail of string * string list
  exception Test_error of string * string * exn * string
  val print_instance : 'QCheck.Test.cell -> '-> string
  val print_c_ex :
    'QCheck.Test.cell -> 'QCheck.TestResult.counter_ex -> string
  val print_fail :
    'QCheck.Test.cell ->
    string -> 'QCheck.TestResult.counter_ex list -> string
  val print_fail_other : string -> msg:string -> string
  val print_error :
    ?st:string ->
    'QCheck.Test.cell ->
    string -> 'QCheck.TestResult.counter_ex * exn -> string
  val print_test_fail : string -> string list -> string
  val print_test_error : string -> string -> exn -> string -> string
  val check_cell :
    ?long:bool ->
    ?call:'QCheck.Test.callback ->
    ?step:'QCheck.Test.step ->
    ?handler:'QCheck.Test.handler ->
    ?rand:Stdlib.Random.State.t ->
    'QCheck.Test.cell -> 'QCheck.TestResult.t
  val check_cell_exn :
    ?long:bool ->
    ?call:'QCheck.Test.callback ->
    ?step:'QCheck.Test.step ->
    ?rand:Stdlib.Random.State.t -> 'QCheck.Test.cell -> unit
  val check_exn :
    ?long:bool -> ?rand:Stdlib.Random.State.t -> QCheck.Test.t -> unit
end