sig
  type minmax = {
    mutable min : Clock.Interval.t * string;
    mutable max : Clock.Interval.t * string;
  }
  val make_minmax : Clock.Interval.t -> string -> Metric.Timed.minmax
  val update_minmax :
    Metric.Timed.minmax -> Clock.Interval.t -> string -> unit
  type t = {
    name : string;
    start : Metric.Atomic.t;
    stop : Metric.Atomic.t;
    mutable tot_duration : Clock.Interval.t;
    mutable minmax : Metric.Timed.minmax option;
    mutable simult : int;
    mutable max_simult : int;
  }
  val all : (string, Metric.Timed.t) Batteries.Hashtbl.t
  val make : string -> Metric.Timed.t
  val start : Metric.Timed.t -> Clock.Time.t
  val stop : Metric.Timed.t -> Clock.Time.t -> string -> unit
  val print : 'BatInnerIO.output -> Metric.Timed.t -> unit
end