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 'QCheck.TestResult.failed_state
    | Error of 'QCheck.TestResult.counter_ex * exn * string
  type 'a t = {
    mutable state : 'QCheck.TestResult.state;
    mutable count : int;
    mutable count_gen : int;
    collect_tbl : (string, int) Hashtbl.t lazy_t;
    stats_tbl : ('QCheck.stat * (int, int) Hashtbl.t) list;
  }
  val collect : 'QCheck.TestResult.t -> (string, int) Hashtbl.t option
  val stats :
    'QCheck.TestResult.t -> ('QCheck.stat * (int, int) Hashtbl.t) list
end