sig
  val time : ?cout:Pervasives.out_channel -> ('a -> 'b) -> 'a -> 'b
  val sf : ?cout:Pervasives.out_channel -> string -> ('a -> 'b) -> 'a -> 'b
  val timesf :
    ?cout:Pervasives.out_channel -> string -> ('a -> 'b) -> 'a -> 'b
  val get_time : ('a -> 'b) -> 'a -> 'b * float
  val repeat : int -> ('a -> 'b) -> 'a -> 'b
end