sig
  type 'a counter_ex = {
    instance : 'a;
    shrink_steps : int;
    msg_l : string list;
  }
  type 'a failed_state = 'QCheck.TestResult.counter_ex list
  type 'a state =
      Success
    | Failed of { instances : 'QCheck.TestResult.failed_state; }
    | Failed_other of { msg : string; }
    | Error of { instance : 'QCheck.TestResult.counter_ex; exn : exn;
        backtrace : string;
      }
  type 'a t = private {
    mutable state : 'QCheck.TestResult.state;
    mutable count : int;
    mutable count_gen : int;
    collect_tbl : (string, int) Stdlib.Hashtbl.t lazy_t;
    stats_tbl : ('QCheck.stat * (int, int) Stdlib.Hashtbl.t) list;
    mutable warnings : string list;
    mutable instances : 'a list;
  }
  val collect :
    'QCheck.TestResult.t -> (string, int) Stdlib.Hashtbl.t option
  val stats :
    'QCheck.TestResult.t ->
    ('QCheck.stat * (int, int) Stdlib.Hashtbl.t) list
  val warnings : 'QCheck.TestResult.t -> string list
  val is_success : 'QCheck.TestResult.t -> bool
end