sig
  module Current_libname :
    sig val set : string -> unit val unset : unit -> unit end
  module Entry :
    sig
      type 'a indexed_spec = {
        arg_name : string;
        arg_values : int list;
        thunk : int -> unit -> 'a;
      }
      type test_spec =
          Regular_thunk :
            (unit -> unit -> 'a) -> Benchmark_accumulator.Entry.test_spec
        | Indexed_thunk :
            'Benchmark_accumulator.Entry.indexed_spec -> Benchmark_accumulator.Entry.test_spec
      type t = private {
        unique_id : int;
        code : string;
        type_conv_path : string;
        name : string;
        filename : string;
        line : int;
        startpos : int;
        endpos : int;
        test_spec : Benchmark_accumulator.Entry.test_spec;
        bench_module_name : string option;
      }
      val compare :
        Benchmark_accumulator.Entry.t -> Benchmark_accumulator.Entry.t -> int
      val get_indexed_arg_name :
        Benchmark_accumulator.Entry.t -> string option
      val get_module_name_opt :
        Benchmark_accumulator.Entry.t -> string option
    end
  val add_benchmarks_flag : bool
  val lookup_lib : libname:string -> Benchmark_accumulator.Entry.t list
  val add_bench :
    name:string ->
    code:string ->
    filename:string ->
    type_conv_path:string ->
    line:int ->
    startpos:int ->
    endpos:int -> Benchmark_accumulator.Entry.test_spec -> unit
  val add_bench_module :
    name:string ->
    code:string ->
    type_conv_path:string ->
    filename:string ->
    line:int -> startpos:int -> endpos:int -> (unit -> unit) -> unit
end