sig   type 'a counter_ex = { instance : 'a; shrink_steps : int; }   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   type 'a t = {     mutable state : 'QCheck.TestResult.state;     mutable count : int;     mutable count_gen : int;     collect_tbl : (string, int) Hashtbl.t lazy_t;   } end