sig
  module Probe :
    sig
      type counter
      val ctr :
        ?unit:string ->
        ?desc:string -> string -> Unmark.Measurement.Probe.counter
      val name : Unmark.Measurement.Probe.counter -> string
      val desc : Unmark.Measurement.Probe.counter -> string
      val unit : Unmark.Measurement.Probe.counter -> string option
      val pp_ctr : Unmark.Measurement.Probe.counter Unmark.fmt
      type probe
      val probe :
        counters:Unmark.Measurement.Probe.counter list ->
        (float array -> int -> unit) -> Unmark.Measurement.Probe.probe
      val nothing : Unmark.Measurement.Probe.probe
      val ( ++ ) :
        Unmark.Measurement.Probe.probe ->
        Unmark.Measurement.Probe.probe -> Unmark.Measurement.Probe.probe
      val counters :
        Unmark.Measurement.Probe.probe ->
        Unmark.Measurement.Probe.counter list
      val pp : Unmark.Measurement.Probe.probe Unmark.fmt
      val gc_q_stat : Unmark.Measurement.Probe.probe
      val gc_counters : Unmark.Measurement.Probe.probe
      val rdtsc : Unmark.Measurement.Probe.probe
    end
  type runnable
  val runnable : (unit -> 'a) -> Unmark.Measurement.runnable
  type sample = float array
  val sample :
    probe:Unmark.Measurement.Probe.probe ->
    iters:int -> Unmark.Measurement.runnable -> Unmark.Measurement.sample
  val measure :
    ?probe:Unmark.Measurement.Probe.probe ->
    ?min_t:float ->
    ?min_s:int ->
    Unmark.Measurement.runnable -> Unmark.Measurement.sample list
  val warmup : ?seconds:float -> unit -> unit
  val core_counters : Unmark.Measurement.Probe.counter list
end