sig
  module Test :
    sig
      type t = Deprecated_bench.Test.t
      val create : ?name:string -> ?size:int -> (unit -> unit) -> t
      val name : t -> string option
      val size : t -> int
    end
  module Result :
    sig
      module Stat :
        sig
          type t =
            Deprecated_bench.Result.Stat.t = {
            run_cycles : int;
            compactions : int;
            minor_allocated : int;
            major_allocated : int;
            promoted : int;
          }
          val empty : t
        end
      type t = string option * int * Stat.t array
      val mean : Stat.t array -> Stat.t
      val min : Stat.t array -> Stat.t
      val max : Stat.t array -> Stat.t
      val compactions_occurred : Stat.t array -> bool
    end
  type 'a with_benchmark_flags =
      ?verbosity:[ `High | `Low | `Mid ] ->
      ?gc_prefs:Core.Std.Gc.Control.t ->
      ?no_compactions:bool ->
      ?trials:[ `Auto | `Num of int ] -> ?clock:[ `Cpu | `Wall ] -> 'a
  type column =
      [ `Allocated
      | `Cycles
      | `Input_size
      | `Name
      | `Nanos
      | `Normalized_cycles
      | `Warnings ]
  type 'a with_print_flags =
      ?limit_width_to:int ->
      ?columns:[ `Allocated
               | `Cycles
               | `If_not_empty of column
               | `Input_size
               | `Name
               | `Nanos
               | `Normalized_cycles
               | `Warnings ] list ->
      ?display:Textutils.Ascii_table.Display.t -> 'a
  val bench : (Test.t list -> unit) with_benchmark_flags with_print_flags
  val bench_raw : (Test.t list -> Result.t list) with_benchmark_flags
  val print : (Result.t list -> unit) with_print_flags
end