1(* ========================================================================= *) 2(* METERING TIME AND INFERENCES *) 3(* Copyright (c) 2001-2004 Joe Hurd. *) 4(* ========================================================================= *) 5 6signature mlibMeter = 7sig 8 9type 'a pp = 'a mlibUseful.pp 10 11(* Search limits *) 12type limit = {time : real option, infs : int option} 13val unlimited : limit 14val expired : limit 15val pp_limit : limit pp 16val limit_to_string : limit -> string 17 18(* mlibMeter readings *) 19type meter_reading = {time : real, infs : int} 20val zero_reading : meter_reading 21val add_readings : meter_reading -> meter_reading -> meter_reading 22val pp_meter_reading : meter_reading pp 23val meter_reading_to_string : meter_reading -> string 24 25(* mlibMeters record time and inferences *) 26type meter 27val new_meter : limit -> meter 28val sub_meter : meter -> limit -> meter 29val record_infs : meter -> int -> unit 30val read_meter : meter -> meter_reading 31val read_infs : meter -> int 32val check_meter : meter -> bool 33val pp_meter : meter pp 34 35end 36