`sig type file = string type source_provenance = File of Timings.file | Pack of string | Startup | Toplevel type compiler_pass = All | Parsing of Timings.file | Preprocessing of Timings.file | Typing of Timings.file | Transl of Timings.file | Generate of Timings.file | Assemble of Timings.source_provenance | Clambda of Timings.source_provenance | Cmm of Timings.source_provenance | Compile_phrases of Timings.source_provenance | Selection of Timings.source_provenance | Comballoc of Timings.source_provenance | CSE of Timings.source_provenance | Liveness of Timings.source_provenance | Deadcode of Timings.source_provenance | Spill of Timings.source_provenance | Split of Timings.source_provenance | Regalloc of Timings.source_provenance | Linearize of Timings.source_provenance | Scheduling of Timings.source_provenance | Emit of Timings.source_provenance | Flambda_pass of string * Timings.source_provenance val reset : unit -> unit val get : Timings.compiler_pass -> float option val time : Timings.compiler_pass -> ('a -> 'b) -> 'a -> 'b val accumulate_time : Timings.compiler_pass -> ('a -> 'b) -> 'a -> 'b val print : Format.formatter -> unit end`