sig
  type ('b, 'c) printer = {
    info : 'a. ('a, 'b, 'c, unit) Stdlib.format4 -> 'a;
    fail : 'a. ('a, 'b, 'c, unit) Stdlib.format4 -> 'a;
    err : 'a. ('a, 'b, 'c, unit) Stdlib.format4 -> 'a;
  }
  val print_std : (Stdlib.out_channel, unit) QCheck_base_runner.Raw.printer
  val callback :
    verbose:bool ->
    print_res:bool ->
    print:('a, 'b) QCheck_base_runner.Raw.printer ->
    string -> 'QCheck.Test.cell -> 'QCheck.TestResult.t -> unit
  type cli_args = {
    cli_verbose : bool;
    cli_long_tests : bool;
    cli_print_list : bool;
    cli_rand : Stdlib.Random.State.t;
    cli_slow_test : int;
    cli_colors : bool;
    cli_debug_shrink : Stdlib.out_channel option;
    cli_debug_shrink_list : string list;
  }
  val parse_cli :
    full_options:bool -> string array -> QCheck_base_runner.Raw.cli_args
end