sig
  module Test :
    sig
      type t
      val create : ?name:string -> (unit -> unit) -> Bench_main.Test.t
      val name : Bench_main.Test.t -> string option
    end
  module Column :
    sig
      type t =
          [ `Allocated
          | `Bootstrap_cycles
          | `Bootstrap_nanos
          | `Cycles
          | `GC
          | `Name
          | `Nanos
          | `Nominal_cycles
          | `Nominal_nanos
          | `Percentage
          | `Samples
          | `Speedup ]
      val t_of_sexp : Sexplib.Sexp.t -> Bench_main.Column.t
      val __t_of_sexp__ : Sexplib.Sexp.t -> Bench_main.Column.t
      val sexp_of_t : Bench_main.Column.t -> Sexplib.Sexp.t
    end
  val bench :
    ?limit_width_to:int ->
    ?columns:[ `Allocated
             | `Bootstrap_cycles
             | `Bootstrap_nanos
             | `Cycles
             | `GC
             | `If_not_empty of Bench_main.Column.t
             | `Name
             | `Nanos
             | `Nominal_cycles
             | `Nominal_nanos
             | `Percentage
             | `Samples
             | `Speedup ] list ->
    ?display:Textutils.Ascii_table.Display.t ->
    ?verbosity:[ `High | `Low ] ->
    ?no_compactions:bool ->
    ?save_sample_data:bool ->
    ?time_quota:Core.Std.Time.Span.t ->
    ?sampling_type:[ `Geometric of float | `Linear of int ] ->
    ?stabilize_gc_between_runs:bool -> Bench_main.Test.t list -> unit
  val make_command : Bench_main.Test.t list -> Core.Std.Command.t
end